The First Step Into Game Development

Beginner developers wonder the first step to game development: What language to pick? Should they learn C++? Should they build their own engine? Where can you find good books? The list continues.

I personally think that I wouldn’t plan so much about the first step. Naturally I would look for choices, but I think with game development it’s better to jump in the lake, and test whether you hit into a rock or not (No I don’t recommend jumping into lakes or selling your house or taking debts to jump into game business – I’m talking about the very first steps after you’ve got your “grand game idea” and think what to do now).

With that being said – I really don’t think it’s necessary to spend much or any money when starting your game development. In fact, much of what you need is either free or inexpensive.

I started my game development using Commodore 64 and writing lines of code (those were the days) and the first programming tool that had graphics was Multimedia Fusion (we had the first version, not the 2nd edition). It was bit pricey, but it worked fine on those days.

Some people recommend becoming top notch programmers and building their own engine. I personally don’t think that’s a good choice for game developer: if you spend your time on building the engine then you are more like an “engine developer” rather than a “game developer”. I really think that any indie game producer needs to learn programming – I would see it as a requirement. We all have great ideas, but ideas are worth nothing if they aren’t produced any further.

Instead of trying to make your own engine, pick some ready made. There’s a great advanced search available at Devmaster.net where you can choose price range and features you need.

Here’s some of my picks:

  • Ogre3D: Proven, stable graphics engine with loads of tools, add-ons available. (See also Irrlicht)
  • Panda3D: C++ engine – design emphasis is on supporting a short learning curve and rapid development.
  • Torque Game Engine: Good for network gaming – You can mod the engine free before buying
  • Blitz3D / BlitzMax: I’ve been using Blitz3D in my products and it’s worked fine so far.
  • TrueVision: Fast & simple 3D game development.

There’s plenty of more choices, so make some research and then pick one. I don’t recommend taking a very complex tools in the beginning. It’s much better to start with something simple – and if the tools start to feel too easy, you can always move to more advanced stuff in the future.

For example: I know nothing about DirectX programming and have never programmed stencil shadows or dealt with antialiasing functions. Some really top notch programmers I’ve talked have sometimes mentioned me how “They just managed to get Anisotropic filtering work by tweaking the module” and I’m like “Huh?”. Then I’ve googled for a second and found out what it means. I really don’t need to know how Anisotropic filtering is programmed in an engine – I know there’s people much smarter than me who do know – and do that work. Many times these guys do all completely free, and sometimes it might cost very little. Why should I spend weeks programming Anisotropic filtering to an engine, if I can buy that feature (and many other features) with little costs and focus on game development? And if some features are too expensive – I can simply find out another way to deal with them.

I think programming an engine from a scratch is a great if that’s what you want to do. I’m simply saying that I’d rather spend some bux on tested engine and focus on producing the game, rather than the engine.

Some suggestions:

  • Check out modding tools – there’s plenty of games that can be modded
  • Check out Devmaster.net – there’s plenty of engines that can help you to build your dream game.
  • Check out Experimental Gameplay – these guys make games in 7 day periods, and they are doing a great job.

If you are just starting game development, pick some engine and build from small. Take the first steps. Get a box rendered on a screen – move that box using arrow keys. Program it little by little – but it’s really important to start as soon as possible. Don’t spend too much time on planning or thinking of what you should do – jump in the development. If things don’t work out – try something else.

11 thoughts on “The First Step Into Game Development

  1. [...] Once we know where we’ve been. Once we’ve explored that path, we need to cast an eye on the future. Look ahead. Cast our gaze up the road a piece and see where we think we’re going. Decide where our next steps should take us. Game Producer has some guidance, a few words of advice, if your next step is your First Step Into Game Development. [...]

  2. I totally recommend BlitzMax having programmed in tons of languages since Spec 48K and C64, including Assembly, C, C++, C#, Delphi, VB, Director etc. It’s very easy to get results from without having to get too technical. Also I’ve made a Game Framework: http://www.blitzbasic.com/Community/posts.php?topic=62953 which further reduces the amount of technical stuff that people have to know and gives them tons of ready-made types(classes) to get started with. They can just get straight on with the fun bit of making games and thus it has proved very popular.

  3. For those of you interested in creating in under a week, I collected a list of articles articles about rapid game prototyping.

  4. IMHO, Ogre3D and Blitz3D/BlitzMax are bad recommendations. Blitz3D/BlitzMax have no place in professional gamedev (Sure, useful for newcomers, but why learn how to use Blitz when you could learn any other engine just as easily, and keep it relevant).

    I bet you don’t even know how many hits were written in a Blitz language – you’d be very surprised.

  5. TrueVision added..

    @Lachlan: Kai-Peter – a guy I chat with now and then – used Ogre3D to build ShortHike – and he says about Ogre:

    “To the seasoned developer OGRE looks different. It is like the carbon steel knife my friend uses to cut sushi in his restaurant. Deceivingly simple, yet a very potent tool in the hands of a craftsman. A single blade, a single purpose. The Zen of 3D engines, if there ever was one.”

    It’s true that Ogre is a graphics engine – but the net is filled with add-ons, tools and exporters and software (like Irrlicht) that use it and make it a good choice for gaming.

    ROFL, anisotropic filtering can take between 60 seconds and 30 mins to implement, depending on how much configuration control you want to give to the user, unless you’re doing a software renderer… Then you’re probably crazy/genius and it takes less than a day XD

    I would have absolutely no idea how to do that in 60 seconds – or even in a week. That’s why I like to pay guys like you to do it :)

    IMHO, Ogre3D and Blitz3D/BlitzMax are bad recommendations. Blitz3D/BlitzMax have no place in professional gamedev (Sure, useful for newcomers, but why learn how to use Blitz when you could learn any other engine just as easily, and keep it relevant).

    Thanks for your opinions.

    I really honestly think that Technology itself plays absolutely no role in professional gamedev. If somebody goes to make games using Flash or uses DirectX10 – I couldn’t say which one is more “professional”. I look at the results. A “pros” can start a project using the “latest technology” and keep doing it for 9 years with million dollar budget while the Flash maker has done 50 games & made nice buxs on that time. If that would be the case then I wouldn’t care if Flash maker wasn’t considered a professional: if he is releasing more games and making more money while the “pros” are busy wasting their effort… I’d call that a success. (Bit exaggerated example, but you guys get the point: I honestly think that the technology doesn’t matter – it’s the released product that matters)

    Oh, and thanks for mentioning Irrlicht – I’ve heard good about it in the past, but forgot to mention it. I add that to the list.

    For my product I had a tricky problem about converting user timezones and showing them when they did something in their own timezone. I spent about a week trying to figure this out myself, but in the end I paid a smart programmer from greece about $20 at RentACoder who did this in a day. My time could be better spent at something else.

    @Ali: Yes, that’s exactly what I thought :)

  6. Lachlan Stuart

    > “Why should I spend weeks programming Anisotropic filtering to an engine, if I can buy that feature (and many other features) with little costs and focus on game development?”

    ROFL, anisotropic filtering can take between 60 seconds and 30 mins to implement, depending on how much configuration control you want to give to the user, unless you’re doing a software renderer… Then you’re probably crazy/genius and it takes less than a day XD

    IMHO, Ogre3D and Blitz3D/BlitzMax are bad recommendations. Ogre3D is only a rendering engine and Blitz3D/BlitzMax have no place in professional gamedev (Sure, useful for newcomers, but why learn how to use Blitz when you could learn any other engine just as easily, and keep it relevant).
    I’d like to point out that Irrlicht is a full game engine based on Ogre3D, with just as good documentation, opensourceness, freeness, etc.

  7. I love this article. Completely agree with the philosophy of rather focusing on the actual game development instead of trying to code the clever features yourself when smarter people than you have done that already.

    For my product I had a tricky problem about converting user timezones and showing them when they did something in their own timezone. I spent about a week trying to figure this out myself, but in the end I paid a smart programmer from greece about $20 at RentACoder who did this in a day. My time could be better spent at something else.

  8. I vote for truevision too, long long time ago I used it with Visual Basic, it was really good. :)

  9. Another excellent engine is TrueVision 3d.
    http://www.truevision3d.com/home.php

    A very inexpensive commercial license at $150 USD.

  10. Because I’m always keen to plug, I wrote a series of articles about how I got started and my advice on the whole situation.

    It’s far from being the only route, but it worked for me and I’m constantly getting emails from people saying how much use they were, and that they’re now on their way to making their first game and thank you (and, often, ‘why won’t my latest build compile; here’s 70 pages of code; thanks in advance’)

    They’re at http://www.gibbage.co.uk in the Best of section to the right. I recommend Phase One to start with, as How to Make a Game Part one was written for PCZone and as such is quite content-light. Phase One is meatier.