I can hardly believe it's been two months since my last post. Where does the time go?!? I haven't been posting lately but have a feeling that will change soon. And I have a lot of exciting announcements I couldn't wait to share!
First, and I know I promised not to use this blog as a personal forum, but I simply must share that my wife and I are expecting our first child! She is actually due to arrive today, so please cross your fingers, wish us luck, and if you are inclined to do so, pray for us and our baby girl. If you're interested in more updates please feel free to add me as a friend on Facebook.
Second, I just discovered today on the IGDA NC forum that EA is hiring software engineers for full-time and contract positions. The NC branch of EA is located in Morrisville, so if you're a game developer living anywhere near the Triangle click the link above and submit your resume.
Third, I learned recently that Ian Schreiber is doing another summer online course, this time focusing on Game Balance. If you enjoyed his Game Design Concepts course you will most likely be interested in checking out Game Balance Concepts.
Fourth, check out Darius Kazemi's GameLoop unconference. It looks like an awesome time to learn about all things game-related, so you should totally check it out if you live anywhere near Cambridge, MA.
Finally, I've been working on a tower defense game that I alluded to way back in January and I'm happy to say my team and I are making outstanding progress. But a number of things have changed. Instead of it being a 2D game, we're now doing 3D (and understand why 2D isometric tower defense is near-impossible). We've also switched our platform from XBox 360 to the PC, and are making some dramatic changes to our original art style. It's amazing to see what our graphic artists can do, and I plan to post some screenshots soon. Tentative plan is to have something we can demo at an upcoming conference in September.
So there's a lot going on, which hopefully explains the fewer posts, but I have been learning a ton of cool stuff that should make for some interesting tutorials right here on GDJ. Until next time...
It's not the end result, but rather the journey that matters most!
Learning the Art of Game Programming
Thursday, July 1, 2010
Saturday, May 1, 2010
IGDA Takes a Stand on Censorship
I just read an awesome post on GameDev.net titled
IGDA Condemns Video Game Censorship and think it's awesome to see the IGDA taking a stand on censorship like this. I totally agree it is the responsibility of parents, NOT the government, to determine what children should and should not play.
So yeah, check out the post on GameDev.net, cuz it's awesome.
So yeah, check out the post on GameDev.net, cuz it's awesome.
Friday, March 19, 2010
Happy (Belated) Birthday, GDJ!
It's hard for me to believe this blog is one year old this week. I started writing last March 14th, not quite sure where the journey would take me, and now it seems a whole year has passed so quickly. One thing is for sure, I have learned a LOT about the game industry through numerous news feeds I now read almost daily and from the extremely bright folks over at the Game Career Guide forums. I've dedicated a large amount of effort to learning how to write games, have gotten involved in my local IGDA chapter, and have met some really cool people in the process.
I created a very basic Pong Clone in 24 hours, worked in a team to create the puzzle game Befuddled at the Global Game Jam in a single weekend, and am currently working with some amazing artists to create an exciting tower defense game. This latest project is one of my biggest and best endeavors yet, so I'm very excited to see the end result within a couple months.
I created a very basic Pong Clone in 24 hours, worked in a team to create the puzzle game Befuddled at the Global Game Jam in a single weekend, and am currently working with some amazing artists to create an exciting tower defense game. This latest project is one of my biggest and best endeavors yet, so I'm very excited to see the end result within a couple months.
Tuesday, March 9, 2010
On the Eve of GDC...
I figure it only fair to post a comment stating my jealousy of those attending Game Developer Conference in San Francisco this year. You will, no doubt, flood the web-waves with your tweets, blogs, facebook posts, and other streams with tremendous amounts of information that no human being could possibly absorb within the scope of a single day, week, or even a year. You will meet countless industry professionals, students, amateurs, and hobbyists alike, hopefully by the end having learned something about the way others think, approach problems, and resolve them in ways you might never have conceived. My hope for you is that you understand the opportunity before you; that you grasp the amount of knowledge with which you will be surrounded; and of course that you share it on afore-mentioned media so those of us at home can live through your experiences vicariously.
Tuesday, February 16, 2010
XNA Frustrations
I've been working on a tower defense game in XNA (C#) lately. I like that XNA simplifies a lot of tasks, which means I can write less code than I typically would in a C++ game. For example, I can make a simple spriteBatch draw call to get a texture on the screen without creating my own vertex/index buffers. Or I can create the view and projection transformation matrices with a single utility method. XNA handles window creation and setup with very minimal code and generally makes the process of creating a 2D game a very simple task.
However, creating a 3D game with XNA is a completely different beast. One thing I've beaten my head against is lack of support for animation out-of-the-box. XNA apparently has some classes at a very low level, as described by my buddy Priyank over at eNtropology Games. XNA Animation Component Library looks promising, though I have yet to play with it. And then there is the XNA Creators Club skinning sample that implements runtime animation classes for a skinned model.
But my latest frustration concerns the lack of something much more basic than animation; I can't create a sphere in XNA! Some folks have created their own classes to implement a sphere as a game "component" object, but what I really need right now is a class that can be instantiated dynamically so I can preview my bounding boxes for collision detection. Naturally C++ has simple utility methods for creating the basic meshes: cubes, spheres, cylinders... even doughnuts and teapots! But no such luck with XNA yet, and the most annoying part is that I'm wasting time trying to render a sphere when I should be doing more important tasks, like making sure my models can avoid walking through each other.
It seems XNA is more of a toy than a tool for serious game development, and I think in the future I will be limiting my use of it to more basic projects. But for now I press on, forced to create innovative solutions (translation: hacks) to make it work... grrr....
However, creating a 3D game with XNA is a completely different beast. One thing I've beaten my head against is lack of support for animation out-of-the-box. XNA apparently has some classes at a very low level, as described by my buddy Priyank over at eNtropology Games. XNA Animation Component Library looks promising, though I have yet to play with it. And then there is the XNA Creators Club skinning sample that implements runtime animation classes for a skinned model.
But my latest frustration concerns the lack of something much more basic than animation; I can't create a sphere in XNA! Some folks have created their own classes to implement a sphere as a game "component" object, but what I really need right now is a class that can be instantiated dynamically so I can preview my bounding boxes for collision detection. Naturally C++ has simple utility methods for creating the basic meshes: cubes, spheres, cylinders... even doughnuts and teapots! But no such luck with XNA yet, and the most annoying part is that I'm wasting time trying to render a sphere when I should be doing more important tasks, like making sure my models can avoid walking through each other.
It seems XNA is more of a toy than a tool for serious game development, and I think in the future I will be limiting my use of it to more basic projects. But for now I press on, forced to create innovative solutions (translation: hacks) to make it work... grrr....
Sunday, February 14, 2010
Carolina Games Summit 2010
"Making a game is like shooting a movie while you're building the camera."
-Shaun Peoples, Ubisoft's Red Storm Entertainment
Since our arrival in North Carolina six months ago I've had the pleasure of attending three game industry events: an IGDA meeting, the Global Game Jam, and the Carolina Games Summit (henceforth referred to simply as CGS). Participating in these events (not simply attending) is particularly exciting for me because it means I'm making progress on that whole networking thing I admitted I needed to work on a while ago. But this post isn't about networking; Darius Kazemi already has an amazing blog to help you out with that. I figured I'd take a few minutes to describe my experience at CGS, which took place February 6th at Wayne Community College in Goldsboro.
The day started off rough. I woke up late and, giving the expected minor snowfall I almost considered not going. Since it rarely snows here, people spaz out when it does and the news folk generally recommend not driving at all. But in addition to wanting to go, I had my friends Wes and Andrew counting on me, so I rushed over to pick them up. To my happy surprise, Wes offered to drive and the snow held off. We arrived a little before noon, when the first speaker session started. Numerous game tournaments were scheduled throughout the day on the second floor, but we were there primarily for the educational sessions.
The first session at noon titled "Wow, That Was Cool! Wait, What Was That?" was presented by technical artist Jason Connell and software engineer (programming) Shaun Peoples of Ubisoft's Red Storm Entertainment (Rainbow Six, Ghost Recon). Unfortunately due to a scheduling snafu (more on this later) there was a delay while the coordinators attempted to find our speakers, so we were treated instead to a Q&A by Ben and Stefan from Electronic Arts. Responses of interest to me were the importance of being good at something specific but also being agile and also the fact that even a giant like EA outsources some art/engineering.
As the session proceeded, the scheduling glitch was somehow resolved, as Jason and Shaun stepped in to give their now-quickened presentation, which gave good insights on the daily life of an artist or programmer in the industry. I took a lot of notes here but will summarize the key points for programmers:
The next session we attended, titled "Landing a Job in the Game Industry", was presented by Ryan Stradling, the Senior Development Director at EA in North Carolina. I found it interesting that EA NC only has nine employees, and they've worked primarily on NASCAR titles at this point. This session covered most things I've heard before: create a complete game, be a team player, get experience any way you can, etc. But I learned some new stuff too. For example, did you know the game industry reels in $8.7 billion each year in the US alone and $24 billion worldwide? Ryan also gave these insights to making it 10+ years in the game industry:
Mr. Stradling was very down-to-earth and willing to chat with attendees after his session. So I was able to meet him, ask a couple questions, thank him for his presentation and shake his hand. His advice to me directly, as a programmer, was to "Know your stuff!". This was definitely the highlight of my day.
My friends and I attended two more presentations, one by an indie developer on the challenges of starting a game company and another by a lawyer on the top legal pitfalls of game companies. I took more notes but will save those details for a later date since this post is getting long already.
Unfortunately the CGS did not seem well-organized, due to the initial presentation confusion and meager dining options. We went with the barely-warm Chick-fil-A over the $2 per slice of Papa John's pizza. Also the fact that all sessions were in the same room and scheduled every hour on the hour (with no breaks in between) meant some sessions ran over and others had to start late. But for the sake of education and networking opportunities, I'd still have to say it was a worthwhile experience.
Next up? The Triangle Game Conference is coming April 7-8th...
-Shaun Peoples, Ubisoft's Red Storm Entertainment
Since our arrival in North Carolina six months ago I've had the pleasure of attending three game industry events: an IGDA meeting, the Global Game Jam, and the Carolina Games Summit (henceforth referred to simply as CGS). Participating in these events (not simply attending) is particularly exciting for me because it means I'm making progress on that whole networking thing I admitted I needed to work on a while ago. But this post isn't about networking; Darius Kazemi already has an amazing blog to help you out with that. I figured I'd take a few minutes to describe my experience at CGS, which took place February 6th at Wayne Community College in Goldsboro.
The day started off rough. I woke up late and, giving the expected minor snowfall I almost considered not going. Since it rarely snows here, people spaz out when it does and the news folk generally recommend not driving at all. But in addition to wanting to go, I had my friends Wes and Andrew counting on me, so I rushed over to pick them up. To my happy surprise, Wes offered to drive and the snow held off. We arrived a little before noon, when the first speaker session started. Numerous game tournaments were scheduled throughout the day on the second floor, but we were there primarily for the educational sessions.
The first session at noon titled "Wow, That Was Cool! Wait, What Was That?" was presented by technical artist Jason Connell and software engineer (programming) Shaun Peoples of Ubisoft's Red Storm Entertainment (Rainbow Six, Ghost Recon). Unfortunately due to a scheduling snafu (more on this later) there was a delay while the coordinators attempted to find our speakers, so we were treated instead to a Q&A by Ben and Stefan from Electronic Arts. Responses of interest to me were the importance of being good at something specific but also being agile and also the fact that even a giant like EA outsources some art/engineering.
As the session proceeded, the scheduling glitch was somehow resolved, as Jason and Shaun stepped in to give their now-quickened presentation, which gave good insights on the daily life of an artist or programmer in the industry. I took a lot of notes here but will summarize the key points for programmers:
- Knowing the hardware helps you write more efficient code and stay competitive.
- Be passionate... but also realize you will never make "your" game.
- Knowing engines helps you understand what your competition is doing.
- Expect constant changes during the development process; you will work on different things from day to day.
The next session we attended, titled "Landing a Job in the Game Industry", was presented by Ryan Stradling, the Senior Development Director at EA in North Carolina. I found it interesting that EA NC only has nine employees, and they've worked primarily on NASCAR titles at this point. This session covered most things I've heard before: create a complete game, be a team player, get experience any way you can, etc. But I learned some new stuff too. For example, did you know the game industry reels in $8.7 billion each year in the US alone and $24 billion worldwide? Ryan also gave these insights to making it 10+ years in the game industry:
- Accept change
- Accept that fun is an elusive target
- Be motivated and passionate.
- Continually learn, pushing yourself and others
- Love what you do, and do what you love!
Mr. Stradling was very down-to-earth and willing to chat with attendees after his session. So I was able to meet him, ask a couple questions, thank him for his presentation and shake his hand. His advice to me directly, as a programmer, was to "Know your stuff!". This was definitely the highlight of my day.
My friends and I attended two more presentations, one by an indie developer on the challenges of starting a game company and another by a lawyer on the top legal pitfalls of game companies. I took more notes but will save those details for a later date since this post is getting long already.
Unfortunately the CGS did not seem well-organized, due to the initial presentation confusion and meager dining options. We went with the barely-warm Chick-fil-A over the $2 per slice of Papa John's pizza. Also the fact that all sessions were in the same room and scheduled every hour on the hour (with no breaks in between) meant some sessions ran over and others had to start late. But for the sake of education and networking opportunities, I'd still have to say it was a worthwhile experience.
Next up? The Triangle Game Conference is coming April 7-8th...
Tuesday, February 2, 2010
Global Game Jam 2010
I had the unique opportunity to participate in the Global Game Jam this past weekend, January 29-31. The GGJ is a 48-hour, world-wide game creation marathon. Creating a game is no easy task, let alone doing it in such a shortened timeframe. But we did create games, many of us in small groups across the world, and it was truly an amazing experience to be part of this global event!
The Triangle Game Developers division of the Global Game Jam started off at Icarus game studio in Cary, NC on Friday the 29th at 4:30pm. Unfortunately, due to snowy weather we were not able to remain at the studio location for the entire weekend as planned. We had just a few hours to get together, meet our peers, view the keynote speech, and then get started by discussing game ideas and forming teams. After a short period of discussing our game with our new team members, we left for the evening with everyone's contact information in hand, and that's when the real fun began.
This year's theme was Deception. We had to think up game ideas incorporating some means of deception and, as an additional requirement, had to include one of the following three items in the game: a pet, a set, or a net. The idea our group settled on was a type of Bejeweled clone where players secretly choose the gems they use to score points and can also sabotage each other! Our game is called Befuddled and can be downloaded here, along with other games from the Triangle Game Developers.
One thing I learned from this event is that it takes a LOT of work to complete a game. And a lot of communication. In fact, I think that's one of the things my group did particularly well. One of our team members set up an IRC channel so we could all communicate real-time, and we were mostly connected the entire 48 hours for making design decisions, asking questions, and just chatting in general. Another thing we did really well was picking a simple game idea. It started very basic, but we were able to add on to it, giving it new visual styles and gameplay features as we went along.
One problem we had throughout was, with a basic game, trying to add the right things to make it fun. We know it still needs more playtesting and iteration to figure out the missing "fun" factor. But the best and most exciting part of it all is having something we can call a complete working game. Of course nobody stayed up the full 48 hours, but some of sure did try, and we're all very proud of our successes on this project!
Be sure to check out Befuddled and a ton of other Global Game Jam games by visiting the Global Game Jam website. You can also search Twitter for #GGJ to see posts about GGJ games.
Subscribe to:
Posts (Atom)