Jump to content
  • Advertisement
Sign in to follow this  
Element9

Checklist for writing a game

This topic is 3341 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi! I want learn to program games. Surprised? :) Ok seriously now. What I need to know and where can I learn it. I decided to use C++ and Visual C++ 2008 Express Edition and I working in Windows. I much of a C++ programmer, but I hope to become better. What do I need next? How do I show something to the screen. I want to work fairly low level. So, no SDL and that stuff. Is DirecxtX (or OpenGL) a graphic API? Do I need to know Win32 API to get events?

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by Element9
I decided to use C++ and Visual C++ 2008 Express Edition and I working in Windows. I much of a C++ programmer, but I hope to become better.
If you don't have a strong background in C++, I would recommend an easier language, such as C# or Python. It is, however, entirely your choice.
Quote:
I want to work fairly low level. So, no SDL and that stuff.
SDL is low level - all it does is blit individual pixels to the screen. You don't get a whole lot lower level than than.

What it does do is insulate you from the bothersome details of the platform windowing and event API (Win32 in your case).

Share this post


Link to post
Share on other sites
Thanks for reply. I didn't realize that SDL is that low level. I'll look more into it. That would solve lot of things because, if I'm correct, SDL has lots of extensions.

I don't have real work experience with C++, but I'm comfortable working with it. On the other hand I don't know anything about C# and Python.

Share this post


Link to post
Share on other sites
Quote:
Original post by Element9
Thanks for reply. I didn't realize that SDL is that low level. I'll look more into it. That would solve lot of things because, if I'm correct, SDL has lots of extensions.

I don't have real work experience with C++, but I'm comfortable working with it. On the other hand I don't know anything about C# and Python.

I knew C++ before too, but got Python up to par really fast, it's really easy to learn. However, I'm also coding my games in C++.
SDL really just creates a window for you in a cross-platform way, gives you some BMP loader and cross-platform input and other window manager event, handling, as wel as some very basic sound features. If you want to go more low-level you're entering platform-dependent code. I personally don't find that to be interesting.
In SDL you'll still have to code rotations of sprites on your own, sprite sheets and animations aswell. There's SDL_gfx to take care of mirroring/rotating however.
It's also possible to use OpenGL, however, then SDL really just does the window management for you.

Share this post


Link to post
Share on other sites
Quote:
Original post by Element9
Hi! I want learn to program games. (...) I want to work fairly low level. So, no SDL and that stuff. Is DirecxtX (or OpenGL) a graphic API? Do I need to know Win32 API to get events?

You want to build houses, but you want to do it brick by brick? :) There's masonry, the low level aspects, but there's also architecture, more high-level. And interior design - polishing and tweaking a game.

If you want to know what it is to build a game, then pick a high-level language and some useful libraries and focus on building a game. There's a lot to be learned there. Alternately, if you're more interested in graphics or sound or physics, then focus on that. It'll probably produce tech demos rather than games, but it's equally educative. You'll just learn different things.

So yeah, what are you interested in more? The technical aspects or the game-development part? :)

Share this post


Link to post
Share on other sites
Quote:
Original post by Captain P
Quote:
Original post by Element9
Hi! I want learn to program games. (...) I want to work fairly low level. So, no SDL and that stuff. Is DirecxtX (or OpenGL) a graphic API? Do I need to know Win32 API to get events?

You want to build houses, but you want to do it brick by brick? :) There's masonry, the low level aspects, but there's also architecture, more high-level. And interior design - polishing and tweaking a game.

If you want to know what it is to build a game, then pick a high-level language and some useful libraries and focus on building a game. There's a lot to be learned there. Alternately, if you're more interested in graphics or sound or physics, then focus on that. It'll probably produce tech demos rather than games, but it's equally educative. You'll just learn different things.

So yeah, what are you interested in more? The technical aspects or the game-development part? :)


I couldn't have said it better. Element9, you said you are not very familiar with C++. I am not sure you are familiar with how much work it is to start with DirectX and build a full-featured game with it. I would take Captain's advice and decide what you want to do. If you want to learn how to make games, you should go with something like Allegro or Ogre 3D. If you want to learn graphics programming, then you go with DirectX or OpenGL. Commercial studios typically don't even start their games in raw DirectX. That would be re-making the wheel, and it is not necessary with nice rendering engines like Ogre and other proprietary engines.

Share this post


Link to post
Share on other sites
Quote:
Original post by Captain P
You want to build houses, but you want to do it brick by brick? :) There's masonry, the low level aspects, but there's also architecture, more high-level. And interior design - polishing and tweaking a game.

So yeah, what are you interested in more? The technical aspects or the game-development part? :)


Good point. I do want to make games more than technical demos. I wanted to use libraries for physics, input and other stuff, I just didn't find a suitable 2d graphics/animation library and wanted to try to write my own (not very good idea since I'm not expirienced I guess). Any suggestions for such library? I really like the graphics and animation library in actionscript 3.0.

Share this post


Link to post
Share on other sites
Quote:
Original post by Element9
Good point. I do want to make games more than technical demos. I wanted to use libraries for physics, input and other stuff, I just didn't find a suitable 2d graphics/animation library and wanted to try to write my own (not very good idea since I'm not expirienced I guess). Any suggestions for such library? I really like the graphics and animation library in actionscript 3.0.

I use Python + Pygame a lot for prototyping and tools and I'm really happy with how fast I can build things with it. There's also Pyglet, though I haven't used that (yet). For 3D games, take a look at the Panda 3D engine.

I also use Flash quite a bit, good choice for games. The Flash IDE is mostly graphics-oriented, I didn't like it much for programming (and it's pretty expensive, heh), so I've taken a more programming-oriented approach (using haXe instead of Actionscript, though using the same API - both can be used for Flash development without ever touching the Flash IDE). FlashDevelop is a good IDE for this. But whatever approach you take, it's still relatively easy to build games with Flash.

Share this post


Link to post
Share on other sites
Yes, I have used FlashDevelop. I even programmed Actionscript stuff in Emacs. :)

Is there a graphics framework for C++ that work like Flash framework. Classes similar to Actionscript's DisplayContaner, Sprite, Graphics...

Share this post


Link to post
Share on other sites
I don't have any experience with ActionScript, but SFML is a really nice C++ game library. http://www.sfml-dev.org/

I would highly recommend using C# with XNA. It's really nice, quick, and easy to get games going.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!