Chaos Project

General => Chat => Topic started by: Magus on October 31, 2010, 03:40:24 pm

Title: People, who create games using C++ (programming)
Post by: Magus on October 31, 2010, 03:40:24 pm
Those people are bad-asses. I won't have any knowledge until my c++ class takes off. But I do have a quick question..

Creating a game using pure programming... how do you even start. Do you first build your own level editor or .... urgh.

I'm curious to know how it all begins..
Title: Re: People, who create games using C++ (programming)
Post by: winkio on October 31, 2010, 04:33:30 pm
Blizz could probably tell you something more official, but this is what I went through:

0.  Plan.
1.  Find/make libraries.  These could be graphics libraries, data libraries, game object libraries, etc.  They are basically the framework in which you create your game.  Lots of these are reused/shared from project to project.  Choose formats for files (maps, save data, etc.) and write code to connect the file formats to the framework.
2.  Prototype.  Create a prototype level with prototype content.
3.  Program game logic.  Make gravity, or collisions, or fireballs, or jumping, or whatever.  Put a character in the prototype level.  Make menus.  Etc.
4.  Re-plan.  Reassess your plan and your prototype, make sure that your plan is possible, and plan out what you need to add to your prototype to make it into the game you want.
5.  Extend your prototype.  Build in all of the features you want.
6.  Test.  Bugs happen, very often.
7.  Demo.  Let other people playtest the game to make sure that nothing is confusing or bad.
8.  repeat 4-5-6-7 until desired game is complete.

EDIT: something slightly more official: http://gpwiki.org/index.php/Lone_developer (http://gpwiki.org/index.php/Lone_developer)
Title: Re: People, who create games using C++ (programming)
Post by: Blizzard on November 01, 2010, 02:47:10 pm
winkio pretty much summed it up. I can link you to the multi-purpose libraries that we made and are using. We have a high-level types library (based on STL), a geometry types library (used mostly by the rendering library), a rendering library, a font rendering library (using the rendering library), a GUI library (using the rendering library and font rendering library) and an audio library. They are more or less dependent on each other and are meant to work with each other, though, you can take just one library and make it work with something else. The rendering library currently can run on DirectX and on OpenGL so it's multi-platform (Window, Mac OS, Linux, iOS).