Donnerstag, 28. Juli 2011

Development Diary #1

Topics:
  • How to Start Game Development
  • The "right" programming language
  • The "right" engine

How great, I am a game developer!
And you can become one too in a few minutes!! ;)

I found the first steps and arguments, how to start gamedevelopment, written in a nice form in this article:
How Do I Make Games ?

Tetris -> Breakout -> Pacman -> Super Mario -> Ferrari
This way sounds very promising to learn some important parts of gamedevelopment, which won't loose validity in future.

Some other ressources i want to recommend:
  • gdmag.com - very cool magazine for (wannabe) gamedevelopers, good articles and a reasonably priced digital download
  • gamedev.net - Interesting articles and a very broad board with many members
  • gamasutra.com - Business-News about games
  • makinggames.de - Perhaps the most important german magazine with a great "job offer" category and a free test issue
  • gameinformer.com - Great US-magazine with some exclusive news from the games industry


Well, I'm not a total beginner, because during my study of computer science (4 years already oO) I and a partner have programmed a Bomberman-Clone with Flash (with ActionScript2 and a fancy AI for the enemy), a "Ludo"-game with Java3D and not to forget a Pokemon-like game with JavaME.
Yeah, that's better than none, but let's be honest: What for a state of things are Flash, Java3D and JavaME ?!?

Here comes the urgent question for the right/most wise programming language to develope games and gain experience for the industry...
The short answer is C/C++, no matter how you look at it. That's clear when you look at job offers from the important game-companies. The great exceptions are - of course - the browser- and smartphone-games, which are mainly developed with Flash(e.g.Facebook-games), Objective-C(Iphone) and Java(Android,Minecraft). They are great and some ideas are very successful. But I think these languages are very specific in comparison to C++ and I do not have a great Android Phone at the moment and no experience with Objective-C - so i will start with desktop-games for Windows and Mac.

Okay, after deciding on the programming language you should find an Engine , if you want to safe the time of creating an own one. The effort to create an engine (Displaying objects, handling of collisions, physics, sound, ...) with OpenGL/DirectX commands on your own is - like the learning curve - very high! I want to concentrate on the game mechanisms - so I will skip this part at the moment :D

Here I found some promising OpenSource Game Engines:
  • Panda3D (Python)
    • was used by the Disney studios for a "Pirates of the Caribbean" online Game and shows good results in the 3D-examples
  • Irrlicht3D (C++)
    • widely 3D-Engine with cool demo-videos at Youtube and many tools, but i haven't managed to compile it yet xD
  • Ogre3D (C++, Python)
    • Torchlight was developed with pyOgre and the examples for this Python-Wrapper for PyOgre worked without problems - looks good!
  • SDL (C++)
    • a popular library for C++ to develope games in 2D - with some tools to draw images on the screen and get user input
  • Pygame (Python)
    • a working and well-liked engine for 2D-games for the script language Python
  • Pyglet (Python)
    • the next 2D/3D(?)-library for Python - seems to be more modern, but also inactive. Can use some tools of 3D-Cards.
    Why there are some Python engines at the bottom ?

    Because in sspite of the importance of C++ I want to use the first smaller projects as a opportunity to learn a new language. I mainly programmed in C++/Java and i heard of Python during the last year of my study. So I want to do some experiments with this easy(?) script language. My plan is to change from Python to C++ during my progress.
    Quick Guide for Python for people who already know object-oriented programming.

    This is enough for the preperations and I'm looking forward to the next issue of this format! ;)