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.