Not logged in, Join Here! or Log In Below:  
News Articles Search    

 Home / General Programming / Core aspects of a game Account Manager
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

March 29, 2005, 07:39 PM

Hello, I'm fairy new to game programming and have 3 month's experience in C++ programming. So I have a few questions.

Is there a hassle-free way to create windows without the use of an extenal library or engine like Direct-X? How?

What would be the bulk or skeleton of an AI support? Such as, what factors should be accounted for and how should they be handled? I'm not asking for an engine link, I just need to know things like, how should it be structured for Shooter support and how wouldthose features be implemented?

How do I handle physics? Like how would I control jump functions or falling, or object being thrown?

Is the only way to parse a 3D model file by reading the file strings? Like reading in the data and then outputing the image? Is there a way to place an .obj file DIRECTLY in the program and have it displayed without the hassle of reading individual data?

Would it be easier and better to control game-specific code through scripts? Like health, shields, ammo, speed, weight, etc.

I don't want a link to a game engine. Perhaps an example, or a link to a page with detailed info on what I'm asking for.


March 30, 2005, 01:10 AM

Creating windows without library -> Just to display some GFX ? You will gain time by using a simple library like SDL.
AI skeleton -> AI is a big subject, with many approaches. You must read some tutorials on the subject. You will see that your question is... quite naive !
Handle physics -> A real pain if you do all by yourself. You must use a physics library : ODE, Tokamak, Novodex, and so on...
Script -> Depends what you need to do.
3D obj directly in executable -> Could be done for a little tutorial program, like the famous 'Spining cube' demo and such. This made the code a bit crappy.


March 30, 2005, 03:25 PM

SDL? I looked into it, I guess I could try it for a bit. Is it Visual Studio 2003 .NET compatible?

AI, naive? I know it is complex... but all the AI engines that, through screeshots or demostrations, either run in a different programming language, or would cost me my computer. If I had to choose a game engine to use, just one and I couldn't change my descision and had to use it on every project... I would take CryEngine, it is the best. Too bad I can't afford it.

Physics: I actually considered using Havok because of its excelent review by Bungie, but how much does it cost? Anyways, I know physics are hard to do by my self, so I'll try making my own in about 5 years after I get enough experience. Good choice, right?

3D objects in exe: Well, I was thinking objects from 1000 to 50000(actual levels) verticies. Probably several hundred object when you take in characters, guns, vehicles, scenery, etc. I just hate the thought of writing a parser. I saw how much work it is, and it requires the file to be in a directory within the exe file, and I don't want to give up my models for stealing.

Scripts: I just need them to control the game related things, like how much weight an object, the speed of a car or rocket or bullet or person, ammo of a gun, health, shields, and possibly cutscene scripts. Just relativelly small things so I don't need to recompile the program. I got a Lua package for Dev C++ just for testing, but when I ran its own generated sample, I got tons of errors.

I don't know what it is, but I just don't want to use a package where it does more than 30% of the job for me. But now something that needs me to set every little inch. Because it might get tenetious to set hardware configs for every graphic card in existance.

Still, I appreciate any help in any of that stuff.


March 30, 2005, 03:33 PM

3D objects in exe: Well, I was thinking objects from 1000 to 50000(actual levels) verticies. Probably several hundred object when you take in characters, guns, vehicles, scenery, etc. I just hate the thought of writing a parser. I saw how much work it is, and it requires the file to be in a directory within the exe file, and I don't want to give up my models for stealing.

That statement makes no sense.
How do you create these objects ? You use some modeller, of course. What is its output ? Some files of course. You need to parse them, no way out. But writing a parser is much less work than writing the models into the source code.
It ridiculous, sorry to say that.
And it has nothing to do with preventing data from being stolen. If your data is plain readable text, it'll also be readable in the exe. If it's not, you can as well store in in binary form in an external file. Anyone who can read your model files could also read the respective part of the executable.

To be honest, I think your talking and aiming at things that are yet beyond your abilities. Don't bother yourself with scripting and preventing data from getting stolen. Don't bother yourself with physics when model loading is unclear.
Don't look for an engine to buy while at the same time you say that it'll probably take you five years to learn and understand everything.

Take SDL, read some tutorials about OpenGL graphics programming, get a little shooter done. It's way more work that you might think it to be. Keep it simple, and once it works, gradually improve it. Start small. It's most important to get started at all.


March 30, 2005, 04:22 PM

?! You seems to be quite ambitious ! With only 3 month of C++ in your bagpack, you're a very light trooper. The Rambo-like game designer... ;)

- SDL --> Works with any C compiler with Windows or Unix. It's a low-level library. If you need more hight level stuffs, you have CLAN lib, very complete, a good base for industrial quality products. If you want 3D, OGRE engine is really cool with a big community. You can build your own demo in hours with it. All this is free, and you can read and modify sources.

- AI --> Not a naive subject, sure ! I'am a Phd student on AI, I have little idea about it. You have many tools to perform different task : neural network, bayesian network, simulated genetic evolution, HMM, multi-agent approaches, logical programmation, classifiers, fuzzy logic, etc... Those stuffs, like a knife, can cut the meat, or your own finger. You must have a strong idea of you want to do with AI, before coding anything.

- 3D objects in executable --> Forget it !!! It's good for a little demo, to define a cube or a pyramid. If you want something like cars, monsters, you need a 3 modeler, that give you a file. So you will need a parser. Not the hell to write (Flex & Bison are my favourite parsers generators). It's a good exercise for any programmer to write a script interpret.

Or you must use generative approaches... All your objects are generated by L-Systems (Google will give you many links about it) and CSG, the textures and landscapes by using 2D & 3D functions combinaisons (See Ken Perlin site, a good reference). It's a well suited approach for a scripting system.

- Physics --> ODE is free ! And I was able to make my own 'falling cubes' demo in less than one hour... I use it for mechanical simulation, it works well.

- To finish --> Chris tell the truth. Wrote a VERY simple fps : a guy in a single level that shoot only one type of monsters with just a laser gun. No lights effects, no physics just plain textures. You will see that's not so easy (I'am currently doing this). Then had a system to plug new monsters, weapons, scenarios, and eye candy (sky, light, physics). Well programmed... One year of job !


March 30, 2005, 05:45 PM

What you are really asking here is the big question: how do i make a game. That can't be answered in a forum post. You need to educate yourself, and the best way to get started doing that is by reading books.

You need to learn some basics like how to get 3D objects drawn on the screen, how to move (animate) them, how to texture them, etc.

Then you need to take that knowledge and put it in a larger framework incorporating user input, a 3D "world space", file i/o, and object heirarchies ("models").

Then you take that larger framework and start thinking of it as a game, with actions and goals, "AI", sound, etc.

Start small and build. A lot of people put them down, but for a beginner who needs to grasp basic concepts like 3D math and what are the "parts" of a game, I think the PrimaTech books are very helpful.

The question "how do I make a game" has a HUGE answer - through self-education, and that starts with the basics and builds from there.


March 30, 2005, 06:26 PM

One other important aspect of game creation is, of course, knowing what makes a game fun! Graphics, AI, physics, blah blah blah..... No one cares if your game is no fun. One of my favorite discussions on this topic is a paper written in 1981 (Malone, T. W, 1981. Toward a Theory of Intrinsically Motivating Instruction. Cognitive Science, Vol 4, Pg 333-369). What do people from 1981 have to say about modern GPU reinforced uber-games of today? Read it and find out!

With regards to the technical things you initially asked: You have a lot yet to learn if you've only been programming for 3 months! As soon as possible take a Computer Science course in Graphics, that will start you out. The fact of the matter is, there are no easy examples, tutorials or online demoes that can replace a solid fundation in the theory. If you cannot find classes read books. Go to MIT, Stanford, or UIUC's website, find out what books their classes use and buy them. Stay away from anything that promises to teach you "in 24 hours".



March 30, 2005, 08:34 PM

Hey Qndrez, that paper sounds interesting. Would you happen to have a link to the exerpt from the article?



March 30, 2005, 09:10 PM

I'm not asking "how do I make a game". And I'm not alone. I've got a friend who is somewhat fluent in C++ and he wrote his own 3D modeler program.

What are the PrimaTech books? I've never heard of them. How much do they cost?

I will go to the collage webs and look up the books they use, if they are not too expensive, and if they are not those big, fat, textbooks that drone on and on till you drop dead.

About Open-GL, I actually did try open-gl... but the site was kind of jumbled and when I attemplted to track down links for the open-gl headers and all, they seemed to be different versions that didn't fit. I have atleast 4 different gl.h files. I looked at (i think) and it had great tutorials and examples, but there was no single package with straight forward files for open-gl.

And I have books on 3D game programming, but the authors themselves seem odd. The book "All in one 3D game programming" used Torque. Which I don't see much use out of it, because it required me to use the trial of Ultra-Edit. The book seemed more of an advertisement opurtunity for companies because every tool included was a trial. I've tried a number of books, but they all don't do a very good job. The book "3D Game Engine Programming" taught me the basics of an engine, but 50 pages in, the author makes a referance to a source file that he hadn't even mentioned, let alone instructed me how to write it. So right now I'm trying to find a book with great reviews but a low cost (below $50).

As for Direct-X, practically no good tutorials on it. The API referance barely tells me what code to put in for a certain funtion.

To sum up, I'm not asking "How do I make a game". I just need to know about the certain specifics of it. So the PrimaTech boks, what are they and how much do they cost?


March 30, 2005, 09:32 PM

Marmakoide wrote: ?! Well programmed... One year of job !

That's assuming he understands everything.
Seriously dude, take their advice and start small.


March 30, 2005, 10:53 PM

If you want a good book on real-time 3D rendering I suggest "Real-Time Rendering" by Tomas Akenine-Moller and Eric Hanes. It does not teach specifics of OpenGL or Direct3D, rather it teaches the principles that they are built on. Decent examples for coding OpenGL can be found at On the left you will find many tutorials.



March 30, 2005, 11:08 PM

Unfortunately I do not have any links to that paper online. If you cannot find it you may beable to find this book:

Malone, T.W. & Lepper, M.R. Making learning fun: A taxonomy of intrinsic motivations for learning. In R.E. Snow and M.J. Farr (Eds.), Aptitude, Learning and Instruction III: Conative and Affective Process Analyses. Hillsdale, N.J.: Erlbaum, 1987

Malone and Lepper wrote a chapter on the subject. From what I understand they also updated their theories.


This thread contains 12 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.