Plan: to become a games programmer over the summer.

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
So I found out about this "dare to be digital" summer competition held in Dundee every year. As a maths student primarily I don't know if I'll really "qualify", but they're holding a presentation nearby on the 1st which I plan to go along to to clarify stuff.

In any case, I'm not convinced that my programming skills are leet enough yet to really give me any chance of getting in a team and getting accepted - but it's something I really, really want to do, if not this year, then the next. I'm reasonably well-versed in quite a few programming languages, and have made a lot of experimental DOS quasi-games, but I don't really have any experience with 3D programming, windows applications, or overall complex game design.

As per the title, my plan is to read up and practise my programming over the summer (assuming I don't get in this year - which I probably won't) to give me a better chance next year, and I'd like some advice on where to start. I need textbooks (and online tutorials I guess - but textbooks ideally) to work through to give me a good depth of knowledge about modern game design, preferably in C++. Recommendations?
 

smurkin

Can't get enough of FH
Joined
Dec 22, 2003
Messages
561
programming is not really my thing...I'm more interesting in mapping and assets...but I'd recommend www.doom3world.org if you want to go down the Id route...plenty of toots there
 

leggy

Probably Scottish
Joined
Dec 23, 2003
Messages
3,838
It's in Dundee!

Good luck. If you need any advice on the sort of weapons you'll need then I'm your man. I know this is absolutely no help whatsoever but ... DUNDEE!

:)
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
You may have a point there that I had not fully considered, especially given I am about as southern a southerner as can be.

On the other hand, it is a good thing that I don't actually go or do anything outside ever or else that might be more of a problem.
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
So there's noone experienced with C++ for gaming related purposes?
 

Chilly

Balls of steel
Joined
Dec 22, 2003
Messages
9,047
Danya is a professional games programmer, dab hand at C++ I gather. For the most part its all theory you need to know in terms of the speed of code - ie you need to know what type of sort you should be using in what situation and different data structures etc...
 

Moo

Fledgling Freddie
Joined
Dec 22, 2003
Messages
1,106
games programming aint a great place to start if you're new to C/CPP IMO. Mainly because its a pretty unforgiving environment - if your code isn't efficient in some areas then your game will be slow and horrible.


Of course i am immedatly assuming you mean 3d games, afterall pretty much every game these days is 3d :p even online poker is 3d!
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
I'm not "new" to c/c++ exactly, I'm just new to the theory/practice of games programming. And I LIKE learning how to make my code efficient, which is something that rather differentiates me from all the people I've met on the informatics course I'm currently taking (as an outside subject) - all they care about is whether it works or not, even if it's fucking horribly written, whereas I get a kick out of making my code robust and elegant.

I'm really just after some recommendations for where I can learn this stuff on my own time. I guess I'll send Danya a PM or something.
 

Chilly

Balls of steel
Joined
Dec 22, 2003
Messages
9,047
perhaps try making a very simple mod for halflife 2 or unreal? Gentle introduction to the field, and you can do as little or as much as you like without having to build the whole system. Failing that I'm sure theres a billion and one sites dedicated to it, also several unis teach it as a course, maybe try to grab some lecture notes/course specs from their sites. Even something as simple as a module list would be helpfulas itd be the main topics you could start with?
 

Cask

Fledgling Freddie
Joined
Dec 27, 2003
Messages
653
Noticed that the Coding4Fun website was finally updated with some content including game tutorials. Don't know if they're any good but at least it's all free and should be fairly current.

The only computer gaming related module I did was computer graphics where we used Visual C++ 6.0 and glut to render a scene in OpenGL like the one in this snowman tutorial. Had to study the OpenGL Red Book which goes on about matrix transformations and normals which is sort of interesting but only for graphics and lighting I think.
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
Oh cool, thanks. Matrix transformations and normals, eh? Sounds like stuff I ought to be familiar with from linear algebra and geometry.
 

Cask

Fledgling Freddie
Joined
Dec 27, 2003
Messages
653
Show off. I need to improve my maths (esp. calculus) this year and am practically going back to primary school level to try and pick things up.

P.S. :fluffle:
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,465
Hmm, books. Can't think of anything I'd recommend as a "games" introductory text really. Most of the entry level games books are garbage (usually written by people who've never written a game).

I can recommend a few books in specific areas:
Introduction to Algorithms is very good, don't let the name throw you, it's pretty comprehensive and technical.
Foley is pretty much the bible of 3d rendering. Not all of it is that useful in these days of hardware accelerators (very useful if you want to write a raycaster or such though).
Real-time Rendering is a very good book covering various aspects of the rendering process from the point of view of using modern hardware accelerators. Probably your best bet to get started and as a reference.
Anything from the Shader X line of books if good for specific techniques using shaders (mainly graphics, but the later books have some GPGPU stuff too). Shader X3 is particularly good IMO.
The Gems line of books is also good for specific techniques, Graphics Gems and GPU Gems are the better lines of books.
For optimization I find a set of intel manuals useful at times, though it depends how in depth you want to go with that sort of thing.

Other than that, you can learn a lot by just experimenting. A copy of the documentation for OGL or D3D (whichever you decide to use) is always an essential tool of course. :)

Being good a maths is a definite boon for 3D work - it's a lot more mathematical than most programming fields. You don't tend to stray that much out of geometry for the most part, but linear algebra and calculus have their uses. If you're after highly mathematical aspects of games to look into Physics and AI are probably the big two.

Hope that lot helped. :O
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
Niceness, yeah. That helped quite a bit. And I did rather suspect that would be the case with overall game-design textbooks.

It looks like learning 3D will be reasonably straightforward (in the sense of quantity/quality of reference material), but what about general design paradigms? Basically, I really don't know, at the moment, how to plan out a complicated project at its topmost level of abstraction. Even in a 2D setting, once it gets to a certain level of complexity I just become completely unable to keep everything ordered in my head. It seems like the key is modularity, it's just that often I can't seem to separate the concepts into sections that are discrete enough to make any kind of sense or progress.

I realise I'm talking very vaguely here, but right now I can't think of any good examples to back this up. Do you have any suggestions for dealing, or learning how to deal, with this kind of issue?
 

Reformed

Banned
Joined
Oct 31, 2006
Messages
125
Good luck to you m8y. If you are enthusiastic and willing to learn I bet the doors will open. I got involved myself at one time and started writing a game in qbasic. Was amazing and as addictive as any online game. Wish you all the best :) . Anything related to computers though you really have to know your stuff so get studying!
 

phlash

Fledgling Freddie
Joined
Dec 24, 2003
Messages
195
Hi Louster,
[nice tidy room BTW]
Firstly - I need to admit that I haven't done a great deal of games programming (I got as far as a basic 3D wireframe engine so I could experiment with other features like networking and multi-threading), however I have done a fair amount of network software (like the Wireplay drivers for Duke3D and the Wireplay IPX interceptor :), and have spent the last few years designing and implementing fairly complex software on distributed systems (in C/C++ and Java mostly).

From a high level design perspective, I would recommend looking at the code for a modern game engine like Orge (http://www.ogre3d.org/) and to see where it came from, grab the Quake III source (http://en.wikipedia.org/wiki/Quake_3_engine - lots more info on where it's being used too). You would also benefit from reading about design patterns (http://en.wikipedia.org/wiki/Design_pattern_(computer_science) - sorry another Wikipedia ref but lots of good links here).

For an extremely short design summary: modularity and well-thought out inter-module interfaces are always a good idea) Never use more or less threads than you need to get the job done, separate the video engine from the logic/AI engine from the physics and I/O systems (file and network). Trust no-one beyond your own code, especially networked systems, and finally: use OpenGL, port it to Linux and stay away from the evil that is Vista :)
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,465
Windows is where the money is (well consoles are really, but kinda hard to do much console dev at home).

On the subject of overall design, I'm not aware of any books that really teach it as such. I would say start small and build up. Making things modular is always a bonus in that respect. Not a big fan of design patterns myself - most people misuse them horribly and just make things worse.
For games, especially simple games, don't worry too much about threads. 99% of games are single threaded for all the main calcs because it's a lot easier to write them that way, and on a single core machine (which most users have), they run faster.
 

Users who are viewing this thread

Top Bottom