what's in a demo

Started by
2 comments, last by aquaman 20 years ago
I am currently a Ph.D. student in physics, but have decided, after years of thinking on it, to pursue video game development. I applied for a job as a programmer for a video game company and they graciously told me I needed more programming skill and I should have a demo. Fine. As a computational physicist I have done a fair amount of programming but my training is not formal and my coding speed is not fast yet. What''s in a demo though? Is it a full introduction of a real game plus the first five minutes of game play? Is it just an out of context five minute sample of some game? I guess I am not sure what I should work on to develop a demo. I know I should demonstrate AI, collision detection, graphics development ability, and things such as this. Hoever, I am not a writer, or an artist so what does a company look for in a demo from a programming applicant? Also can anyone recommend to me some books on AI development, suggest scripting languages and books? I know Lua and Java are fairly popular for scripting but I don''t know which I should use. I will be coding the demo in C++, and using OpenGL for rendering. I also will be using a Mac (Is that taboo in game development?). Any advice would be greatly appreciated.
Advertisement
Game development is quite specialized these days. You have to have some idea of what you want to do:

- graphics?
- physical simulation? ("rigid body dynamics" is the current state of the art)
- enemy planning? ("AI")
- gameplay?
- networking?

There are more (back-end, web integration, tools, etc) but you gotta pick one.

Then write something that''s useful and/or fun, and demonstrates that one particular skill. For AI, write an Unreal Tournament bot. For graphics, write a dynamic lighting with per-pixel spherical harmonics viewer, that lets you walk through a level and move lights. For networking, write a peer-to-peer file sharing application. Etc.

If you feel it needs to be a game, then snarf an engine of some sort, and use that to build a game, focusing specifically on what you want to specialize in (throw out whatever''s in the engine, if it''s too complete :-) (Btw: Showing that you can quickly get up to speed in someone elses code and be productive is something we''re looking for when interviewing.)

Write code that results in something that someone would actually want to use. Ideally, that someone should be the people you''re trying to get to hire you.
enum Bool { True, False, FileNotFound };
Think of a demo as a piece of your resume. What you''re after isn''t something necessarily practical in and of itself, but something that shows your ability to write clean working code, understand modern coding concepts, and make a complete program.

One thing to keep in mind when developing a demo is that quality counts WAY more than quantity. Make sure that ever feature you''re including is polished, not just in there for the sake of saying that you had it in there.

Given your background, I''d definitely focus on physics in your demo, collision detection, etc. Basically, you just need to come up with an idea that seems cool that demonstrates your abilities in a good light Hope that helps ya and good luck!
"Game Programming" in an of itself does not exist. We learn to program and then use that knowledge to make games.
This is what I''d consider a "demo"
Basically the finished game (with all the physics, ai, gameplay, etc) implemented, as well as a few levels to showcase what your game is capable of.

Since you''re not an artist, focus on the code. No one''s expecting beautifully modelled & textured environments. It doesn''t have to be a fully functional GAME - make a killer physics demo (seems like thats your forte) with something like fluid dynamics or whatever. Maybe something like objects being dropped into water. You could also send them what you have already made in school, if that''s applicable. Showcase what you can do best.

As for books, afraid I can''t help you much there. But yes, Lua is used a lot for scripting, as is Python. (havent heard of java being used... perhaps you''re confusing it with javascript, which is something else entirely?)

This topic is closed to new replies.

Advertisement