Sign in to follow this  
RajanSky

How long will it take to code this demo?

Recommended Posts

Hi, I am working on an employment demo right now, for a junior level programming job in the game industry... The only games I've finished so far were all 2D, but I think 2D won't impress employers. So my goal is to create a simple car racing game, and the deadline is 1 month from now. I was wondering if someone would be kind enough to give me some feedback or suggestions about the idea and its feasibility? I already have most of the basic junk coded like skyboxes, animations, 3D sound, interface system, etc. Also I already have all the models, art, music, and sound effects. So, in the next month, I just need to code the following: * Terrain... probably 512x512 heightmap, plus some optimization such as quadtree w/ frustum culling. To make it "pretty", multitexturing and lightmapping * 3DS models for the cars and objects (trees, etc.) * Semi-realistic physics... (I have some articles I saved on vehicle dynamics and so on). * Probably I will have to write a terrain editor too... I mean, I could just use a paint program or terragen to make a heightmap but then it's too difficult to sculpt the exact look of the terrain * All the game logic and AI That's it... And, it'll just have one level they can play through, short and sweet. I'll probably spend 6-8 hours a day on this project, so over 30 days it'll come to about 200 hours of work. I think it sounds like a reasonable goal, but it's hard to know what to expect, since this is my first 3D game I'm making by myself... So any wisdom from some more experienced coders out there would be much appreciated :) Thanks very much in advance! Raj

Share this post


Link to post
Share on other sites
well im not sure exactly, but i strongly reccomend just to use paint for your terrain generation, although this wont be as easy as "sculpting" the terrain with an editor, writing the editor itself is a massive waste of time unless you are planning on making many many terrains, which your not.

Share this post


Link to post
Share on other sites
IMO, that sounds like it will take about 2 months of solid coding. Don't forget to plan for weird bugs that will totally eat up your time. Also, tying up the AI with a physical collision detection/response system will probably be a bit tricky (and by 'a bit' I mean 'very'...)

Good luck anyway tho!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
When just_haps says 2 months of solid coding I'm fairly sure he's implying "on top of design time". This sort of project, just like most, will need a fair amount of thinky-thinky time before you sit down and code.

With a bit of luck, you'll narrow those 'weird bugs' down to just the completely esoteric ones. ;)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
if you don't do optimization on the terrain (or verry minimalistic) you can hgave the terrain engine wuie fast but 512*512 is quite at the limit of what is possible without optimization esspüecialylly if your modells are detailed... (so you could have your terrain engine in a couple of hours if you are experienced in 3d programming...
I suggest using lot's of librarays premade stuff if it is not somehow forbidden in your contract or so...

What will be the most difficult i suppose is getting your physics and ai right... If you really work night and day on it you might be able to do it in one month but only if you don't encounter some nasty heavy to debug bug....

Terrain editor is not really needed there are some free ones out there (or you can use the farcry one for example it outputs uncompressed 16 bit heightfield...)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
They'll also be interested in the quality of your code, not just the output. So I'd write the simplest level renderer possible - brute-force, but so you can later fix it if you have the time. At the most, build it in chunks and use a quadtree as this is very easy. Do NOT build an editor as it's totally un-needed. Except perhaps a very simple console program which generates a random map. Editing a level is a lot of work to get to a point where what you want to do with the editor is possible!
The physics is the big thing. You can simulate a box on springs and a force for engine/brakes/air resistance reasonably easily, but were you planning on realistic wheels, engine, gears etc? There is also a LOT of tuning needed for physics, a very simple script for your vehicle will save compiling every time you change - it's also something good to mention since scripting is used a lot. As for AI, I would be tempted to ditch that and have 1 car round a track. Leave it till last anyway and at least you can try to throw together something. Even at months of development, proper AI can screw up if not tuned for each track.

Good luck - I think it's achievable but only if you stay motivated and very clearly prioritise every task you have to do in a big list. Don't get carried away tweaking ANYTHING as you want a rough demo with everything in.

Share this post


Link to post
Share on other sites
Thanks for the suggestions!

OK I will ditch the terrain editor.

Yeah... I'm still not sure if a 512x512 heightmap is a good idea... So I guess like d000hg said, I'll write it to handle a 256x256 heightmap with brute force for now. If there's time later, I'll optimize it so it can do more detail.

Good suggestion about libraries... It seems like the physics is gonna be a b**** to code so I'll see if there's some good free physics library that can simplify things. It'll probably be just simplified physics (box+springs+wheels). I mean, I just want the "feel" of the physics to be right, realism isn't important.

I feel a bit better about this now.. At least now I have some idea of what to expect. Thanks again :)

Raj

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Has any company asked for a demo?

I work at a leading game company, and I'm not sure we even look at demos.

Share this post


Link to post
Share on other sites
The two games jobs I applied for out of university were both very interested in my demo and asked quite a few techy questions about it. These were junior jobs - for people with previous industry experience I doubt it's much of a deal.
BTW, I was offered both jobs... for your 1st game programming position I'd say a demo is crucial!

Share this post


Link to post
Share on other sites
Start from an existing engine. This gives you two major advantages. First, starting from something that already draws models on screen means you can start adding game play from day 1. You'll be much more likely to get to an impressive demo this way. Secondly, it will show that you can learn and work with an existing code base. For a junior programmer position this is vital.

If you start from scratch and only end up with a hightmap you can drive around thats not very likely to impress. You can download 20 demos of the same thing from the internet. An actualy playable game, with a front end menu where you can select a car, select from a couple of tracks and race against even the simplest AI would be a very impressive demo.

Alan

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
With such a short space of time I'd recommend you to very carefully sit down and design and modell(mathematics and so on) very well. I would even recommend you to invest some time in technical briefing so that you are sure of your options from the beginning. All source hackzor business is very time expensive. And also be sure to write some kind of requirment spec so you don't get stuck on some "cool" feature that isn't even that importent. If time is critical the first thing you'll need is structure in your work. A month is very rapid development but I'd focus on the design so you don't run in to any bigger walls and build-ins. Of course depending on you programming experience. The suggestion to use prefab libraries for parts you have less time for is also a good way to jumpstart the development phase. BUT REMEMBER TO THINK BEFORE COMPILER ABUSE!

Share this post


Link to post
Share on other sites
efficient terrain rendering can take a lot of time. And a 512x512 will give a very rough terrain. I'm not sure if a terrain would be the solution, if you plan on demonstrating a car racing engine. If you just want some wacky off-road stuff, it should be fine, although bumpy. A.I. should not be too tricky if it's a free roaming terrain. Simple waypointing, obstacle avoidance is not that hard, but it takes time :)

Since you apply for a junior position, or not a specific position, they'll also be interested in how you cope with using some else's code. You'll have to be very flexible. So using an ready-made engine makes sense. Torque seems to have all the bells and whisles you need, and would probably make a good driving simulator. I don't know how it would cope when Novodex or Newton are plugged in.

But since you've already started, whatever rocks your boat... Anyway, it will be a good experience, even if you fail to produce anything. At least you'll improve your understanding of things like A.I., terrains, Physics, maths, networking (if you are so lucky), sound and graphics interface, GUIs, ect... All bonus for the interview. A month might be short for a demo though. You'll be amazed how quickly it goes.

Being a Junior, they can't really ask you anything very technical, just to see if you have a good understanding of game coding, which you seem to have already. They'll most likely give you a C/C++ test, one hour or half an hour. Nothing really hard.

Of course, if you have experience in console programming, say PS2 Linux development, that will be the killer. And if you are a god in Win32 programming or Tools development (Max or Maya plug-ins), they'll appreciate that, but then you might get thrown into the Tools section, which can be boring (compared to the rest, of course). Tell them about it if you are desperate to join the company.

If you apply for graphics programming or boast about your skills in a specific field, then you will get grilled.

Share this post


Link to post
Share on other sites
You might want to just focus on one aspect of the demo. If you know you'll be doing graphics work, then create a really good terrain renderer, and don't worry about anything else. If you think the position will involve AI, then add some really advanced AI to one of the 2D demos.

Share this post


Link to post
Share on other sites
Quote:
Original post by Onemind
You might want to just focus on one aspect of the demo. If you know you'll be doing graphics work, then create a really good terrain renderer, and don't worry about anything else. If you think the position will involve AI, then add some really advanced AI to one of the 2D demos.


I've talked to a few people who hire at game companies about what makes a good demo. The general consensus was a demo that does only one thing but does it REALLY well is what impresses the most. So I'd have to agree with Onemind.

Share this post


Link to post
Share on other sites
As far as coding time goes, I'd have to say "If you have to ask... dont make any other plans for a while"

The best way to get estimates for these things is to actually start coding and see how many brick walls you run into setting out the framework...
In my life, I've started 3 game engine projects, my current one is the only one that can successfully render...not because I cant make things render(thats easy), but because I hit a problem somewhere else in the engine and eventually gave up(First engine - had to replace the GL pop/pushing with actual matrix math, throughout, second engine - Aimed for photorealistic physics, ended up with a problem with over-application of torque, never managed to fix it, third engine - still working on it)

Generally, if you're still in the stage where you're keeping tutorials and articles to learn, you're gonna have to code them 2 or 3 times before you'll really understand where they fit...

I'd say the main "brick wall" would be with 3D physics in this case... It is a huge topic, and it takes a long time just to learn how the plane equation(Ax+By+Cz+D=0) works.
If you were to shortcut by checking the height of each tire vs the height at that point on the height map, you could make the demo in that time frame, but to actually learn all the physics involved, or code more than a linear AI, you'd get stuck, or get stressed.

Share this post


Link to post
Share on other sites
Quote:
Original post by AlanKemp
Start from an existing engine. This gives you two major advantages. First, starting from something that already draws models on screen means you can start adding game play from day 1. You'll be much more likely to get to an impressive demo this way. Secondly, it will show that you can learn and work with an existing code base. For a junior programmer position this is vital.

If you start from scratch and only end up with a hightmap you can drive around thats not very likely to impress. You can download 20 demos of the same thing from the internet. An actualy playable game, with a front end menu where you can select a car, select from a couple of tracks and race against even the simplest AI would be a very impressive demo.

Alan
This is a good point - you can get a heightmap with models in it in a week if you know your theory and D3D ok. However physics WILL eat up your time and even simple things like adding decent input and simple sound/music too (I'd be impressed by sound since so few people here have it in their demos). The only thing is, learning another engine can take a long time too. If you really do do it in a month that's something to make companies aware of - it shows staying power and how fast you can work IMO.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this