Tell me more ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've always wanted to write games, and recently the chance has come up to do so in a couple of different ways for the Android OS using OpenGL (and I figure once I learn OpenGL on one platform I can transfer those skills to other platforms).

I've been a developer for many years and I've learned a good many languages in my time, and I know that experience counts for everything. In the short time I've been looking at game development, I've learned a few things which made me open my eyes a bit. So, while I'm still eager and not jaded I want to jump on this with everything I've got. But I also wouldn't mind doing so in a slightly more intelligent fashion than "both feet first." With that in mind...

  1. What do you know now that you wish you'd known when you'd started? What advice would you give a younger you?
  2. What tips would you give a technically competent developer just starting game development?
  3. What's the hardest lesson you've learned?
share|improve this question
Not using accessors is new to me. Why would you not use them? – Gagege Aug 11 '11 at 16:04
1  
Apparently in Android the use of getter/setters is 3 times slower than accessing class members directly (developer.android.com/guide/practices/design/…). who would have thunk!? I know this is very platform specific - ideally I'm looking for more general advice but specific advice is helpful too! – Martyn Aug 11 '11 at 16:10
I see. At first I thought you were saying to make everything public! Haha.I do that in C++ anyway. Just makes sense that if you're in the class you shouldn't use public accessors. – Gagege Aug 11 '11 at 16:18
Simply because a function call is more expensive than variable access. See here and here – bobobobo Mar 28 at 16:18

closed as not constructive by Tetrad Oct 21 '11 at 19:34

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

2 Answers

up vote 23 down vote accepted

If I could give my younger self advice from my current self, I would probably say the following.

  1. Don't make it perfect, younger me spent way too much time developing code for any possible case, which meant I got bored and gave up on some games I shouldn't have.
  2. During development, programmer art is more than sufficient, even many games have been released with "programmer art." Know your weakness (maybe you're a good artist and programmer so this may or may not apply). I struggle with building assets for my games, so I know that is going to take a large portion of my development time. I try to start out with basic art, and when I get stuck trying to solve a coding problem, I take a break and jump into fixing up my assets and making them a little bit better.
  3. Aim high but be realistic. Set a high goal, then break it down in to managable chunks and knock each one out one at a time. Don't spread yourself too thin.
  4. Don't be afraid to use code (ideas, concepts, etc) you found on-line. Don't suffer from not-invented-here synrdome. Its easy to want all the code in your game to be from scratch, but then you'll never finish your game. When you make a cake, you don't harvest the grain, gather the eggs, grind the flour, you buy them at the store and mix them together to make something great. Just make sure you attribute correctly.
  5. Take a feature driven approach. Break each bit of your design into a "feature" and build it up one feature at a time until you have something fun.
  6. Get something into a playable state as soon as possible, this works wonders for keeping enthused about the project.
  7. Get as many people playing as possible, as early into development as possible. As you continue to playtest yourself, you'll master it quickly. So your idea of "Easy, Medium, Hard" might be someone elses, "Insane, Ungodly, Unplayable." Maybe thats what you are going for, but make sure you know it up front.
  8. Don't worry about multiplayer on your first game(s). Its hard to do right, its even harder to do well. Make your game fun in single player first. If thats successful, either refactor that code so it can be networked, or start a new project with multiplayer in mind.
  9. Know that your game will not be in the same class World Of Warcraft, Elder Scrolls, Half-Life, Call Of Duty, and that is OK. There is plenty of money to be made making games in the Angry Birds, Fruit Ninja, Plants vs. Zombies class. There is equal fun in both (I presume, I've only worked on the latter type).
  10. If you're not enjoiny the project, take a break, but set a goal with yourself of when you are going to return, and what you're going to acomplish first upon your return to the project.

If I could pick one of those to put the most emphasis on, it would be the feature driven approach. Make each feature a managable size, and take a standard methotical approach to finishing each one. Once its finished, do not go back and re-work it unless a subsequent feature requires it.

share|improve this answer
1  
To #7: It is amazing how many things you learn the first time you watch some else play your game. – Gagege Aug 11 '11 at 16:25
best parts summarized: don't get stuck, copy! make sure you are getting a progress – SHiNKiROU Aug 11 '11 at 17:10
Absolutly. I didn't make a TLDR bit, but I'm a bit self-centered, and think everyone should read my full answers, I do a tldr for long questions I ask :) – Nate Aug 11 '11 at 20:45
  • Start writing games

  • Stop obsessing with optimizing which technology you're going to use. Just choose the easiest one and get started (which is GLUT / OpenGL in my opinion).

  • Your first game should be 2D, and complete

  • Don't waste forever developing an engine

  • You will throw away/totally refactor 90% of your first game engine anyway

  • Don't fixate on cross-platform stuff. Just choose a game, choose a platform, choose a technology, and complete a game in it.

share|improve this answer
So, basically, the quote "Real artists ship"? – Aeo Aug 11 '11 at 16:47
+1, I would focus on "Don't develop an engine before first game is truly done" – Krom Stern Aug 12 '11 at 11:39
+1 for complete a game in it – legends2k Mar 28 at 13:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.