Sunday, April 27, 2014

The Start of a New Game

Three friends and I have started the process of making a game on our free time. We try to meet Monday through Thursdays after school for an hour of two. For the first week we did a lot of brain storming. We wrote many ideas on the white board, seeing what we liked the best. After spending about an hour on taking turns with our game ideas, we decided on an idea we all liked. When we decided on the idea on making a rouge-like game for android devices, it was time to go more in-depth on what the game was going to be. While doing that we also decided what the core mechanics of the game are. 


We did this drawing a bull’s-eye to mark in the center what is important to get done first before we get distracted on working on the non-essential parts of the game.


Sunday, February 9, 2014

 I know I have not written in my blog for a long time, but I will plan on writing at least one entry a week.
So for the past 5 weeks, I have been working on a game. I’ve been working with my classmates, so we are a total of 11 people working on this game for our game engine implementation class. This game is called Lycan(https://www.dropbox.com/s/wn2tbejoudwbx1u/Lycan.exe). Lycan is currently being built on the Unity game engine. This is the first time I have been part of a team larger than 4 people and that has made working on this game an interesting experience. So the way the team got split up was 2 people on coding game play, 1 on AI, 1 on networking, 1 on UI, 1 on audio, 2 as level designers, 2 animators and modelers, and me on art. Everyone in the class is a programmer first, so it was different for some of us to not work mainly in the code base.
                As an artist I mainly worked on textures. I actually worked on all the textures in the game. I have some experience with using Photoshop, so I think I was the best candidate to the job. The textures I worked on ranged from tileable textures like wood and the dirt on the ground to the skybox the players see to the texture on the Werewolf and the human player.


                The textures on the players were the most challenging textures to make. Mainly because I need to UV the models. That was very time consuming because I wanted to get the UV just right, in order to make my job of making the texture easier. I also I forgot how to UV a model, so plenty of time of spent on learning from mistakes, but I think I learned how to me a good UVer and I am comfortable doing that job.


                In the end I think I learned a lot on what it means to be in an artist when working on a game. Being an artist is probably a different experience in industry from what I experienced, but I think the principles are similar. Anyway, when I communicate with an artist on my team in the future I’ll have an idea on how to talk to him and know the artist’s point of view. 


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.