Tag: advice
10,000 Hours
by Paolo on Apr.23, 2009, under Meanderings, Reviews
My day starts kind of late. I wake up at about 8:30 on the couch. My youngest son is usually wrapped around my arm sleeping cozily and I gently let myself out of his grasp to take a shower. I get ready for work, kiss my wife and eldest son good-bye for the day and head to work. I usually work from 9:30-6:30, but typically in a week, I go till 7-7:30 at least once and even take home some work at night like tonight. I am also on 24/7 support call rotation because our installations are critical systems.
As soon as I get home and have a bit for dinner and some conversation with my wife, I spend some time with my sons, usually wrestling, sword-fighting or playing some video games together while my wife catches a break and does some cleaning up. I bathe my sons and put them to bed. My eldest usually goes to bed around 9:30-10:30. My youngest usually sleeps at about 10:30-11 because he’s had multiple naps during the day. If I’m lucky, I get a chance to spend some time with my wife before she heads to bed around 11:30, unless she is tired and sleeps early. My wife has the toughest job – taking care of us, the house and they yard all by herself, so I’m more than happy to take care of the kids at night. Especially because I’m a night owl and I have learned how to sleep in less than a blink of an eye.
My Saturdays are spent with my boys. I take them to the park, to museums, or exploring in the backyard while my wife has some time alone to catch up on chores that are difficult to do with small children underfoot. My Sundays start with going to Church and my sons and I play some more, but on a more relaxed pace than a typical Saturday outing.
As it is, my days and weeks are typically very busy. Making time to be social with friends is already an ordeal because my wife works pretty hard to take care of me, the boys and the house and I understand that leaving to see friends is imposing more time on her on top of unfinished chores. Even more difficult is making time to go on a date because we have to find and pay a babysitter to take care of our two small rambunctious boys and we fall even further behind on chores.
Any reasonable person would say that what I have is enough. It already is a full-load and there isn’t any reason I should want more. I have a beautiful wife, two healthy growing sons, a good job and we live in a great neighborhood. Why should I pursue more?
Because I cannot not pursue my dreams.
Ever since I realized that I could punch lines of BASIC on an Apple II+ when I was 7 years old, I’ve wanted to make games. And I’ve grown tired of making excuses why I can’t make them:
- That I’m not smart enough.
- That I don’t have the right education.
- That I don’t have the right game programming book.
- That there is some secret technique that I don’t know.
- That I lack talent.
- That I lack skill.
- And most of all, that I lack time.
Now, with a typical week like I described above, when did I make time to work on my own projects?
From about 11PM to 3AM every night, I work on my own projects.
Sometimes it is take-home stuff from my day job. Sometimes its my own game projects or freelancing job I picked up for extra cash to pay off some debts. Sometimes it is my own art work. But more often than not, I am working on something in the middle of the night. Around 2-3 in the morning, my youngest son stirs from his sleep and calls for me to comfort him. So I hold him for a bit to let him settle down. And more often than not, I don’t make it to bed. I fall asleep on the couch with him and wake five hours later to my beautiful wife gently shaking me, and to the aroma of coffee close behind.
I am told that to truly be successful, you have to put in at least 10,000 hours of blood, sweat, and tears into it. That is the difference between the merely pedestrian and those that the world would call a “genius.” If that’s the case, then I will have to manage to put in that time now. Otherwise, I will never realize my dreams.
I am often asked if I should be catching up on sleep. What I love to say in response is, “I could either be asleep and be dreaming or I can be awake and be building them.”
Above all, it is most important to remember that no dream is worth building without being able to share it with someone. I must accomplish this without compromising that which is truly important – my wife and children. This is why I wait till everyone is asleep before I do my damnedest.
If you think 10,000 hours is just too much then you don’t want it badly enough. And don’t begin to tell me that you can’t find the time.
The Difference
by Paolo on Apr.16, 2009, under Meanderings
A discussion opened up in the Flash Game Developers group on LinkedIn where the original poster was frustrated on how many people give up trying to learn Flash Game Programming no matter who he teaches.
Here was my response:
I hope that I don’t come across as elitist, but I’ve come to understand that there are “those who program” and then there are “programmers.” You can teach someone how to program, but you can’t make them into a programmer.
A programmer is someone who doesn’t just code 9-5. They are thinking about how to solve problems, learning new technologies and scoping out the latest design techniques and coding samples in their spare time. Sometimes they are even writing tutorials and sometimes engaging in technology flame wars. People who just happen to program, are just in it for the day job and the pay – but not for the sake of the art and craft. Working as a consultant in both public and private industries, you meet both sorts all the time.
Programming is an art – like painting. And it takes a certain interest, passion and discipline to really learn the craft. Computer Game Programming is an even smaller niche because it aims not to solve day-to-day problems, but to amuse, entertain and perhaps even educate.
Everyone says they want to make a computer game. And then once they start getting knee deep into the code, mucking with design decisions, creating level designs, spitting out art assets, finding appropriate music and sounds… They give up. I almost did on my very first game.
I can’t tell you all the mental roadblocks I hit for putting out my very first Flash Game for a MochiAds contest and put something together in my spare time at night:
http://www.mochiads.com/games/strike-eagle_v1/
I almost gave up so many times and I don’t think I would have made it if I didn’t start with small bites and worked my way slowly to finishing it. I logged my progress on my blog with iterative builds, but there were so many times I would have just given up:
http://www.gamedevigner.com/tag/strike-eagle/
Programming, moreso Game Programming, and even moreso *Flash* Game Programming is really only meant for the brave and the bold. It really is a test of passion and mettle and if you come through it is something to be proud of. Not everyone is cut out for it. And I wouldn’t want it any other way.
Advice on how to become a Game Developer
by Paolo on Feb.08, 2009, under Meanderings
My letter to a highschool junior who expressed interest and asked for advice on how to become a Game Developer.
Dear Eugene,
Video game programming is a field that is all about passion. You do it because you love making games. There really is no other field like it in the computer industry, and there is no other place I’d rather be. That is why I spend late nights after the kids are asleep, trying to put together my own games, even free games, for the passion of the field itself. To be a computer game programmer you need five things:
1) Courage
2) Technical Expertise
3) Passion for Technology
4) Communication Skills
5) A Thirst for Life
Courage
To be perfectly honest, this is where I have floundered for many years. I thought that I wasn’t smart enough or good enough to be a computer game programmer. I thought that I needed some special training or some unique technology to become one of those rare individuals called “game developers.” This is simply not true. It is a trap and a horrible mental block.
With the tools and technology you have now, it is very possible for a single individual to create the next big innovative game. Games like “Cave Story”, “Everyday Shooter”, “Geometry Wars”, and “Braid” were all made by single individuals. Some of them have admitted that they weren’t the best of programmers, but they did what it took, learned whatever they needed to, to create something the loved. And in doing so, they found that thousands, if not hundreds of thousands, also loved what they created.
Technical Expertise
Don’t think that you can’t already start learning now how to program games and building technical expertise – especially at your young age. Computer programming is very much a hands-on technical field. You may know some people who put together and take apart complex machines like cars or electronics in their spare time. And you may already know some people who can carve impressive furniture or sculptures in woodshop. Some of the best mechanics and engineers in the world started tinkering with machines at an early age. Computer programming is very much in the same vein. You just have to get the right tools, roll up your sleeves, and get your hands dirty.
There is already plenty of resources available on the Internet and on Books to get started in programming video games. Between browser-based games like Adobe Flash or fully realized 3D games in Dark Basic, Blitz, Torque Game Engine and Unity – and with free compilers from Microsoft, you already have everything at your disposal to try things out and to get started. Some of these game engines are a little expensive (or even less expensive) than the next big PS3 or XBox 360 game. It would be well worth your time to explore some of them.
I suggest looking at current game engines to try out:
http://darkbasic.thegamecreators.com/
http://www.blitzmax.com/
A lot of these game engines come with a very strong community as well who can help you with your programming projects. Having a set of game prototypes that you’ve made in your spare time while in high school would already distinguish you during college interviews and may even make you eligible for scholarships. This is especially true if you are applying for a college that specializes in game programming.
There is no reason why you can’t already start building technical expertise now as you go into college.
Passion for Technology
What I’ve learned is what makes a good programmer is the willingness to explore new technologies on their own personal time to develop their technical expertise. No amount of training classes or college credits can substitute for hands-on exploration and experience. The three best programmers I’ve ever met do not even have a computer science degree. One graduated as an architect, one was a fine arts major in pottery, and another only had an associates degree in Business. What all three had in common was a passion for technology, and the willingness to make the time apart from their work and personal life to really tinker with and play with technology.
The best programmers I know don’t program 9-5. They program all the time. Programming is their job as well as their hobby. Even for myself, after a long day at work, I go home, take care of my wife and family. When everyone is in bed, I’m back on the computer trying to make my own game.
Communication Skills
What college can do for you is refine and give you direction in how you grow your technical expertise, but it will also give you experience on how to communicate well in teams and work with each other’s strengths and weaknesses. Very little can be done on a single-person project and if you are looking to joining a large computer game company, it is important to not only have solid technical skills, but communication skills as well.
For myself, I have a Computer Science degree because I needed the kind of guidance to learn the necessary skills to be an effective programmer. But even so, the classes I did take did help refine a lot of other skills I needed working in the field – from understanding the software development process, how to write clear designs, and working well with other people. In a number of interviews I’ve done, next to technical expertise there is no substitute for good communication skills. Being able to express your thoughts and opinions in a clear manner has been a key factor in deciding to gets hired. So if you wish to work at some of the bigger game companies, a good college experience will help in creating good communication skills along with your technical prowess.
A Thirst for Life
Though it can be said that gaming is an “escapism” I can reasonably argue that the reverse is true. Gaming is more about the real world than people think. I love telling stories and the classes I had in English and Sociology both in high school and in college were as important to me as my technical classes. Most directly related are my classes in Physics and Mathematics for understanding how you can emulate the real world within a computer. Ideas from History and Anthropology permeate all the role-playing games that I want to create and the stories I tell both in the video games I want to create and in my table-top Dungeons and Dragons sessions I still play.
There really isn’t anything out there in the world that couldn’t be used in a game and made to be fun. I can’t help but laugh when I see my wife play “Cooking Mama” on the DS or watching my son try to catch bugs and fish in “Animal Crossing.” All of these things are elements of real life that can be abstracted and made to be fun in a game.
In short, what I would suggest is that between now and your summer vacation is to pick up a game engine and start tinkering with it now. There is no reason for you to wait till college to get started and building the necessary technical skills. Once you get your feet wet in making a game, even one as simple as my Asteroids-like clone, you will see what it takes to make a game and what you would need to learn in college or from some technical class. Also, any game you make on your own will be a great portfolio piece for getting yourself into college – especially the competitive game programming colleges which try to enroll the best prospective students.
I hope this helps you Eugene. Please feel free to ask any more questions or if you’d like something more specific.
Sincerely yours,
Paolo