Friday, December 13, 2013

John Paul Ownby: Is the game industry right for you?

                For the early parts of John-Paul Ownby’s life he thought he was going to be a musician. He has played piano for most of his life. Ownby was told that he was great and should pursue this career path. When he was deciding what he wanted his major to be in college, he decided that music was the clear choice. A few years later, he works in the game industry. He works at Disney at Avalanche Software.

                The point of that was to give an example that you may not end up working where you expect to work. And to illustrate that just because you like something goes not mean you are fit to make that something your profession. When perusing his musical career, Ownby did not like to practice playing the piano for more than two hours. This was a clear sign that music was not the career path for him. So just because you like to play games goes not mean you should get into the game industry.

                If you do decide that the game industry is for you, you first must know some of the negatives. Crunch is a very prominent thing in the game industry. You will work long hour regularly and it may burn you out. Having a career in the game industry is not a very secure thing, companies go under often. This field is very competitive, so just know that you are replaceable. You will get paid well, but you could get paid better elsewhere. And In these sense you could get a better job elsewhere. Other tech companies will pay you better, provide better security, and are less competitive. If those negatives do not scare you then let’s check on some of the positives.

                The main reason to join the game industry is because it is creatively fulfilling. Making games is one of the most creatively fulfilling jobs out there because there is so much that goes into making games. When making games there are an always new things to be learning. If you like solving problems and doing things that have not been done before then maybe making games it for you. 

Friday, December 6, 2013

Joe Barnes - What he looks for in a new hire

Joe Barnes has been in the game industry for 22 years. He was worked on games that have come out on the Super Nintendo and Sega Genesis. Barnes enjoys working on low level engine programming. When Barnes is looking for a new employee here are things he looks for in them.

First thing he looks for is if the person has strong C++ skills. If you are going to be an engine programmer you are going to use C++ as your primary language. So having strong C++ skills and being comfortable with the language will do you well. Barnes also likes to know that you are interested in the language because having an interest in C++ will lead to learning quicker. Understanding the ramifications of code you write is also a big deal because you knowing what your code is doing extremely important. You will be working in a team, so knowing how your code can and may affect the project as a whole will save the team lots of time from debugging.

Next thing Barnes looks for is if the potential employee is a team player. Making games is a team effort, so enjoying who you work with is key. Especially when you are working 60+ hour work weeks, you will hope the people you work with are likable. Being a team player also means being able to ask for help and working well with others. As the new guy you will want to ask to help constantly, so you understand what is going on in this company’s code base. You do not want to waste time trying to figure out something when somebody else already knows the answer. 

Some questions you may be asked in the interview process are what is the difference between const char * p and char * const p. Also seeing if you are able to reverse a string in place. And being able to tell what is wrong with this method, Vector Cast( Vector Direction). 

Thursday, November 28, 2013

Singleton Design Pattern

Singleton is a simple design pattern.  It is used when you want one global object that can be used throughout the entire project. An example when you may want to do this is when using debug tools like a logger. You would only like one logger in your project so that one logger is logging your projects information out to the same file, so you do not end up with multiple files.
In order to have one instance of the object you need to control when the object gets initialized. One way to do this is to do the initialization of the class in itself and to disallow the any coping or assignment of the class. So first you make the constructor private and disallow copy and assignment.  The reason for disallowing copy and assignment is so we do not let ourselves or anybody else to make another instance of the object.  You should end open with something like this:

             




            

                Next you need to declare your instance of the class, so declare a static instance of the class as private. Now we need a way to give access of that instance to other classes. So make a public static function that return an address of the class. Next define the function so it returns the static instance that you just declared.  Now to call the single instance of the object in another class you scope into the class and call the function that returns the class like so, “YourClass::GetTheInstance()”. And that all this is to the Singleton design pattern.
 

Friday, November 22, 2013

Del Campbell: The Cons of Working in the Game Industry

Del Campbell, currently working at Avalanche Software, has been in the game industry for about the same amount time as I have been alive.  He has spent all those years with continued passion for what he does.  Over those years he has learned that there are a few negative sides in working in the game industry.

Cons:
                Hours – If you work in the game industry it is not rare that you work 40+ hour weeks. This is just the norm, so it is something you should get used to. Part of the reason people work so many hours is game industry is also no stranger crunch. During crunch, employees are expected to work at least 60+ weeks and that includes working on weekends. Working all those crazy hours can and will wear out people out. This will lead to many people getting a divorce.

It Actually Work – People think that getting into the game industry is all fun and games since we are making games. But they are in for a rude awaking because making games is hard and requires lots work. Many smart people work extremely hard to make a game, so making a game is not the same as playing games.

Stability – The game industry is not a very stable industry to work in. It is possible that you may work for weeks without getting paid and you will do it because you are passionate for the product you are making. Smaller companies are especially scary because you may have a job one day and the next you do because work is low. Also if the company releases a game that is not successful the company has a high likelihood of shutting down. And if you are the new guy working at a place that just shipped a product, there is a chance of you getting laid off while the work load is low. 

Friday, November 15, 2013

Ryan McBride: What to Look For In New Employees


Ryan McBride has been in the game industry since 1995. So he has been in the business for 18 years. He has had experience on with working as a QA manager, designer and programmer. During that time, has also helped with the hiring process. McBride shared what he looked for in a new employee.
                First and most importantly McBride would ask himself, “Can I work with this person?”  If you are going to make something as big as a game that requires a lot of interactions with others, it is important to be able to work with those people to make meaningful progress. This question also answers how well the person can communicate.  Communication is key because game making is a collaborative project. You need someone that will be able to talk to other parts of the team and be able to explain what they want. Talking to others is also important when asking for help. You are more valuable getting a feature done in a day with help rather than getting that feature done months later with no help.
                The next thing McBride would do is figure out how to you think. Learning how somebody thinks is important because you will figure out if you are right for the team. Also learning how somebody thinks is more important to learning what the person already knows. You could teach the person the specifics of what they need to know for the job, but it is harder to teach people how to critically think. This process also shows how a person solves a problem.
                After he checks for both of these factors he looks at their projects, schooling, and code. He sees the person’s portfolio and seeing how good their work is. It is important to have you projects publicly viewable. This way employers can see it at any time. Also have the code viewable so they could see how you work. And it is important to have experience in working in groups and with some sort of revision control. And do not be afraid to move in order to find a job. 

Saturday, November 2, 2013

Shane Smit: Being a Programmer in the Video Game Industry

Shane Smit has been in the game industry for 12 years now. He has released multiple games on multiple platforms including consoles and mobile. In his career, he has had worked for many companies:  RED Interactive Agency, Avalanche Software, and Smart Bomb Interactive to name a few.  After his talk I feel I like have a better idea what it is like to be a programmer in the video game industry.
Being a programmer in the video game industry is not going to be me programming the fun parts in a game, but more of me programming tools for others to use. The main job of game programmers is going to be creating tools for the artist and designers to use.  These tools should be created to enable the artist and designers; making their jobs simpler. Artist have the responsibility to make the game look pretty, designers are responsible for making the game fun, and programmers are responsible for performance, security, and making all sure all the pieces fit.  When an artist or a designer ask for something we the programmers will be there to help them be successful.

The satisfaction in being a programmer in this industry will comes in helping others create awesome games and also in constantly learning new things.  While in school it is important that I learn how to learn because that will be a large part of working in the industry. Game programmers are responsible to be leaders in technology. It is going to be very helping learning multiple languages because they will all be used at one point or another.  

Friday, October 25, 2013

Victor Chelaru : A simpler game making process

                Have you ever played a game of Telephone? You know that game where one person comes up with a phrase. Then that person say the phrase to another person and then that person says what they heard to the next person; and so on, until the last person say the phrase out loud. The phrase the last person says if usually very different to what the first person came out with. A bunch of information is lost in each transition from one person to another.  Victor Chelaru argues that this is very similar to the game making process.

                When making a game, information travels down from execs to the audience.  And the same way information gets lost in a game of Telephone, information will get lost on its way down. Many people are required to make a game, allowing for information to get lost more often.
               

                But what if we try to eliminate the middle man? Get rid of the programmers so the artists and designers would not need a programmer to be able to make a game. To do this we would need to empower the artists and designers with tool that get rid of the programmer. That is what Victor Chelaru is trying to do with FlatRedBall tool.

Saturday, October 19, 2013

Aaron Walker Presentation: Working Hard

                Aaron Walker has been in the gaming industry for thirteen years. He has worked on games for the N64, PS2, GC, Xbox, Wii, X360, and PS3. Most of his career has been spent working on sport and kids friendly games. And I think the most important thing to take away from his experience is to work hard.
                This may seem like something obvious but, I think working hard is extremely important if I want to make a career out of making games.  Walker mainly got into the industry and stayed in the industry because he was willing to work hard. He knew nothing about making games when he first started but had the passion to learn. He tried to always do what he was told to show the people above him that he was willing to work hard. And in the end it is worth it.  Also it is important to learn what one’s personal niche is, so they could provide something ones in the team cannot or do not want to. For Walker, his niche became working on UI.

                Another reason it is important to work hard is because of crunch. Crunch can be soul crushing and crunch is something most games go through in development. Crunch will require workers to work around sixty hour weeks. During these times, it is important to figure out what makes crunch worth it.

Saturday, October 12, 2013

Rich Reagan: Insight Into Social Games

                I would like to start off by thanking Rich Reagan for taking time to present his presentation to my class.
                Social games are not a fad and have changed the way people experience games. As a “hardcore” gamer who want to get into the video game industry, it is important for me to get used to that fact. This is important because it is important to be able to make games for everyone, not just me.
                Change in the gaming space is not a new phenomenon. Similar changes also happened to the music industry. Music went from the radio to records to cassettes/CDs to digital. Throughout those changes music still came out and was successful, but the way people wanted to experience music has changed. Content was and will always be king. The same goes for video games; video games are now mainly available portably through digital means. For example, the Ios store has more games available then all the games that have been released on console.
                A road-map to creating an engaging and successful game is: customer engagement, simple choice, potential & existing users, add value, and learn & evaluate.  In simple choice, do not make the game too hard. The player has not yet paid any money to they are not deeply invested yet. But constantly reward the play to keep them engaged. Every once in so often give the player a hard stop. The player could only continue through in-app purchases, waiting, or friend gate. The friend gate will allow the player to invite potential and existing players to also come play the game. Through playing the game the player must learn how the game structure works. This way the player could properly evaluate their purchase.
                At the end of the day what I am really after is a great business upon a great game!


Wednesday, May 1, 2013

Particles, Particles Everywhere


   One of my tasks in the past week was to add particles when a player finds a piece of gold. The final result can be found here: Bomb Diggity. My team decided that adding these particle effects is important; showing the player that they received gold and making them feel good about it at the same time.

   To achieve the particle effects that I got I used three different tools. I used Starling Particle Systems which can be downloaded here: Particle System. The tool I used to make my own particle effects was this particle editor. There you could export a .pex file which Starling utilizes. To achieve the particles moving from one spot to another I used the Tweenlite library. Now let's get to the code!


   First thing I did was embedding the particle effect.
[Embed(source="../media/particles/GoldRevealParticle.pex", mimeType="application/octet-stream")]
public static var GoldRevealParticle:Class;
   
   With the particle now embedded, I am able to use the particle in the program. I have made a method that initializes the particle effect and adds the particle to the screen when the method is called.
private function goldReveal(xPosition:int, yPosition:int):void
{
goldRevealParticle = new PDParticleSystem(XML(new                                AssetsParticles.GoldRevealParticle()), Texture.fromBitmap(new AssetsParticles.ParticleTexture()));
Starling.juggler.add(goldRevealParticle);
goldRevealParticle.x = xPosition;
goldRevealParticle.y = yPosition;
goldRevealParticle.scaleX = 0.09;
goldRevealParticle.scaleY = 0.09;
goldRevealParticle.start(0.5);
addChild(goldRevealParticle);
}
   After the particle is initialized, I use Starling's juggler in order to animate the particle when the particle is added on screen.  Then I position the particle with the parameters passed through, which would be the location of the gold. Next thing I do is scale the scale the particle to be the size of the gold. After this, I start the particle and give it half second duration on screen. At the end of the method I add the particle to the screen when the method is called.


   Now that I have shown an example on how to spawn a particle. I am going to show how move a particle from one place to another. This is where TweenLite is used.

goldTrail(map[row][column].positionX, map[row][column].positionY);
TweenLite.to(goldTrailParticle, 2.5,{x:goldMoveX , y:goldMoveY , delay:1});
 
   The first thing I did was call the method that spawns the particle I am going to move. This method is very similar to the example I used above. Then using TweenLite, I use the 'to' call which moves an object from point 'a' to point 'b'. The parameters that are being pass are the object that is going to be moved. Second, how long it takes to get to point 'b'.  And third, you passing where location 'b' is. Doing all this will move the starting location of the particle to the location where the gold counter is, showing the player that they have collected gold.