Wednesday, October 30, 2013

Weekly Inspiration from Will Smith

I figured that I would try something new this week by posting to you some of the same motivational videos that I surround myself in. Motivational material is extremely important and will keep your desire burning even when you are on your last limb. You are listening to the same great advice that I am listening to, so therefore you are practically getting a dose of the same lifestyle that I have!
This week I found a great video that focuses on the hugely successful career of Will Smith. Note: in the video, he makes it blatantly obvious that he is a workaholic and spends most of his time training and perfecting his craft and getting better and finding opportunities. I also have mentioned this in my book, because when you think you're working too much and everyone else doesn't understand you, that's when you are on the right track!
I know, it's sometimes hard to swallow but there is so much competition out there and tons of people are trying to get into video games because it's seen as a fun career. If you are busting your ass more than the other person and doing your best to push your limits as far as forcing yourself to do bigger and better tasks than you've done in the past, networking and talking to as many people as you can and sharing your work with them and letting your work and your words speak highly of yourself (without gloating, of course), then it is inevitable that someone will notice and you will seize opportunity rather than sitting aimlessly hoping for it to come your way (hint: it won't!).

http://www.youtube.com/watch?v=pfWGoLj1JCM&noredirect=1

-Ken

Friday, October 18, 2013

Why All Game Developers Should Understand Programming

I'm an artist and I have a technical knack. This is because I spent time taking programming classes in school which used C++. Artists are agreed to be the least programming-savvy members of a given game development team. This is why technical artists are so important--because someone has to bridge the communication barrier between artists and programmers. But, just like a producer is not going to enable you to do better work but rather give you a good amount of time to be able to do good work yourself, a technical member on the team may be able to water-down technical information and processes about your workflow but you ultimately must pay the price in not understanding the information yourself.

In this recent article on Gamasutra an editor and former programmer, Chris Heckler, speaks of the benefits for all game developers to learn programming. He is not advocating that they be amazing at it and is mainly stating that at least understanding the concepts and limitations of programming would be essential to helping when communicating ideas to a programmer to implement.

http://www.gamasutra.com/view/news/200155/Yes_you_should_understand_code__even_if_youre_not_a_programmer.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+GamasutraNews+%28Gamasutra+News%29&utm_content=Netvibes

For artists, this means having to do grueling and tedious work copying all of certain type of prop, like a lamp post for instance, and then scaling them by a certain amount and making sure every file that was using the specific lamp post material is updated to use a new material in a different directory. For a normal artist, this would mean hours of tedious work. For those that are more technical, though, this task could simply be solved by writing a simple script that completes the desired commands instantly for the artist, in a short amount of time. The planning is where the time is spent but the actual work is very little and will take less time and effort in the long run. Most artists will chose what they know rather than learning to be more technical, and from an artists perspective--they are too busy learning new tools like Zbrush and dDo to make the art look more convincing for next-gen capable hardware.

For designers, knowing programming is a lot more essential, as the premise behind creating systems or events is more logical. Many modern engines, like UDK/Unreal, contain visual scripting packages which make scripting for designers much easier and faster. The issue is that these systems are limited and the designer is not able to create pure freedom in their designs. They will ultimately require help from a programmer who can make a new mechanic or gameplay feature possible for them. If they took the time to learn U-Script, though, they would be able to create their own custom functions that would be accessible right from the vis-script editor. I know, because I have toyed around with this myself for the Unreal Editor but did not get very far as I was losing time from focusing on my artwork. Each time you do something your brain becomes more used to it and it is more familiar and easier the next time, though, so as long as designers are practicing their coding skills they will eventually be able to expand their own arsenal of design tricks. For older game engines, they require heavy coding such as using LUA. I worked for Disney in the past and the whole design team was always writing lots of text all day. This was different from what I expected, but they had to make the tools let them do things that the tools were not originally built for. Also, the tools were pretty simple and did not have a bunch of pre-built packages like visual scripting. So, the more a designer knows about programming, the more polished their ideas will be from conception in their head to execution in game. It is like a race car driver knowing about car mechanics. If you take a driver who does not know about mechanics, they will have to pay a mechanic to do work to their car and be limited by time and cash and also may not know what will effect their driving the best. The driver who knows about mechanics, though, will be able to tune their car to exactly what they want and be able to drive the hell out of it and the more they do each, the better they become at both because the skills compliment each other and accelerate the progression of their talent.

The biggest complaint I've heard from programmers is that designers tend to ask for too much and not consider the repercussions that a somewhat innocent idea will have on the entire project. Designers like to not be limited and want to force the programmers what to do, but programmers only have so much time and at the end of the day a designer must choose what is the most feasible rather than what may be the coolest or most interesting design. A lot of time will be spent from the designer and programmer communicating back and forth as to the best way to implement a certain feature or gameplay idea, but it may not result in what the designer originally had hoped for. So, it is definitely best if designers know programming and I suggest that all developers know their share--from artists to sound designers. The more technical everyone becomes, the more plausible a game will become and won't end up being a disaster or a water-down version of the original vision. Programming is the future and we should all know it anyway, so why not sooner rather than later?

-Ken

Thursday, October 10, 2013

7 Tips For Young Graduates Starting Their First "Real" Job

An interesting top is knowing how much different a real job is compared to an internship or school. What worked in school may not necessarily work in an actual professional role, and an internship may be a stepping stone to realizing the discipline and organization level that is required in a real job, but it is still like riding a bike with training wheels. I just read an article recently on Glassdoor on this topic, and I wanted to share some key points that I agree with and that I think may have not been covered in that article.
  1. College may have been a faster-paced work environment than you're used to, but it wasn't as much of life-changing experience as a real job. In college, you can still go out with your friends and skip a certain class or be late on a project if you want to.  In a real job, you won't be able to be going out to movies every day or sleep in late. You will be on a strict schedule and will, at many times, have to sacrifice your personal life for long hours working to finish a deadline. This is why it is good to start making friends with other professionals or people who have real careers, as they will understand how busy your schedule is and choose activities that will work around your schedule.
  2. Nearly every studio has it's own tools and game editor. This is troublesome when most of the time you've spent in college was using the Unreal/UDK editor or Unity or some other popular and streamline toolset. There are many bad and convoluted and archaic editors that some studios still prefer to use, because it is cheaper for them to develop them in-house and programmers prefer having ownership and knowing the tools better than having to learn one of the other mainstream packages. So, much of your time in a new video game job will be learning to troubleshoot issues and how to access features that you know are in other packages. Your workflow may have been catered around a specific set of features that will not exist in a proprietary toolset, so you will have to change your work practice drastically and learn new hotkeys and methods to do your work. It is basically reinventing the wheel.
  3. There is not as much pressure to please your professor like their is to perform well for your boss/lead, so you probably didn't have your professor constantly telling you to finish your work or making sure you knew when you made a mistake. You have to expect this from a boss, especially if you haven't work an "real" job before (meaning service industries like a grocery or technology store). The best way to deal with this is to double and triple-check your work, even if it takes a little bit longer to turn in. It will look better in the long run that you didn't have to be corrected every time and your work has a reputation of being clean. One of the worst things you can do in a big AAA development project is breaking a build. If your check-in is so bad that it prevents other developers from doing their work, then it costs the studio a lot of money and makes those people unhappy and you will be put on high alert and will probably be given less important tasks until you can prove that you won't break another build in the future.
  4. When you enter a full time job the intensity of working is cranked up about three levels. The work is faster, you have to learn skills that you probably didn't even consider as part of your job description, and everything you do is put on a time limit. This means that prioritization and problem solving are two of the biggest requirements of your daily routine. Problem solving is more important than being creative, since the people who are more veteran and the leadership is usually in charge of coming up with the ideas, and most of the time you will be solving problems with tools or making sure a quest is not broken with the latest code check-in or that the existing art isn't over the memory budget, etc. You want to add your creativity when you see a solution when others don't, but you shouldn't be opinionated and trying to run the show at meetings or complaining about aspects of the game that you don't like openly. The general rule is to provide solutions, not complaints.
  5. Get ready to take full responsibility for your work. You can't use the excuse of "I don't know how to do this" as frequently as when a student or intern. People understand if you don't know how to use the tools, but if it is an essential skill that you should know (like Zbrush for an artist or scripting for a designer) then you should be researching online yourself to find out the solution. It's great that a lot of information is free or even on Youtube now, so leverage this and learn things that you know you're weak at. This will look even better upon you because those around you will think that you've known the skill the whole time rather than having to learn it on the spot. Also, this is a good example why developers should be doing practice work at home, because you have a lot of time to fail and use trial-and-error, that way you can sharpen your sword and be prepared with heightened-efficiency at work.
  6. You have to take initiative in order to meet people. In school, there are introduction classes and team projects when you are encouraged to work with others. In a big studio, there are tons of busy people with their heads down and comfortable doing their job the way they have without interruption. You have to introduce yourself or find a common ground with them or invite them to lunch. This means that you have to be more social than you have been in your life. If not, you will easily be ignored and eventually when you find yourself jobless you won't have a very big network to leverage or use for inside job information.
  7. You can't pick your boss or the people you work with. Additionally, if you talk badly about someone it may mean trouble for you and also affect your career or the amount of opportunity you have. In school, if you didn't like a professor you could easily pick a new one for the new semester. If you didn't like a classmate, you could just avoid and not talk to them. In a professional environment, you have to be able to get along with anyone, no matter how annoying or demanding you think they are. You can pick a different place to work, but this is complicated and will take a lot more time than waiting for a new semester to roll around, so you should not be complaining about people and just deal with your boss. Your boss will be used as your first reference when seeking a new job, so you want a good review or it will be difficult to keep momentum in your career. This is why "butt-kissing" is so effective, and you may not necessarily agree with this style of working, as I don't either, but you should still be friendly and pleasant around your boss instead of demanding and hard to deal with.
I could probably add many more points here but I think that this is a good amount for now. I hope that is helpful and make sure check out this article also:

-Ken