Jeff? Anyone?
by Chris "Had Chris First" · in General Discussion · 12/07/2003 (7:13 pm) · 21 replies
I am a very eager wanabe game designer. I havent written a single line of code in my life, but I have taken algebra. I would really like to know if the reaction engine would be a good start. I dont want to try these "BASIC engines", I want to get right down to what I want to know. Thank you for your time.
About the author
#2
12/07/2003 (8:01 pm)
Years?, thats a bit overwhelming.
#3
12/07/2003 (8:01 pm)
Yeesh.
#4
You'd probally be better off learning Scripting with Torque then trying to work with Reaction Engine right off the start.
Or find a game that you'd like to Mod.
NWN would actually be pretty good for modding, C++ style script language, all the tools available for adding art/sounds. Lots of material to learn from.
12/07/2003 (8:10 pm)
Well, years to learn all aspects of programming. You dont necessarily need to know all to start working on a game.You'd probally be better off learning Scripting with Torque then trying to work with Reaction Engine right off the start.
Or find a game that you'd like to Mod.
NWN would actually be pretty good for modding, C++ style script language, all the tools available for adding art/sounds. Lots of material to learn from.
#5
You would probably have a hard time programming the sort of game you want to program, but you could at least try some easy stuff and see if game programming is for you.
It only takes years to become a GOOD programmer. You could take a class or read a book and be able to at least try to program a game.
12/07/2003 (10:03 pm)
If you just want to fool around a bit, I'd suggest learning BlitzBasic or DarkBasic.You would probably have a hard time programming the sort of game you want to program, but you could at least try some easy stuff and see if game programming is for you.
It only takes years to become a GOOD programmer. You could take a class or read a book and be able to at least try to program a game.
#6
But like the other guys suggested start with the learning programs, don't try and be a hero and do the 3d art as well ;) Trust me I know, use stock art if you have to. Pick a project that is "appropriate" for your level, judging by your comment space invaders, donkey kong or even tetris will provide you with invaluable learning experiences.
OH yeah ALWAYS keep a journal.
1. Humans tend to forget things, you will want to know what the heck you thinking six months later.
2. You want to learn things once , not twice.
3. You can collate your journals and sell them as a "tricks of game programming gurus" book, hehe j/k
4. Date your journal so you , yourself can judge how far you have progressed with you skills.
while some people can play code chess and manage to remember infinite code pathways, most people are not superhuman. Write a good design documents , then code.
Design FIRST, Code LATER.
or Design FIRST, Code LATER, redesign AS YOU GO.
Not Code FIRST, Design LATER
NOT Code FIRST, Design AS YOU GO.
* Good documentation is different to everyone, you must find your own path in this matter.
Code on young grasshopper.
12/08/2003 (1:19 am)
Well it will take years to develope a comprehensive set of programming skills. With programming and computers in general there is no end to learning be prepared for this, you will probably never know everything.But like the other guys suggested start with the learning programs, don't try and be a hero and do the 3d art as well ;) Trust me I know, use stock art if you have to. Pick a project that is "appropriate" for your level, judging by your comment space invaders, donkey kong or even tetris will provide you with invaluable learning experiences.
OH yeah ALWAYS keep a journal.
1. Humans tend to forget things, you will want to know what the heck you thinking six months later.
2. You want to learn things once , not twice.
3. You can collate your journals and sell them as a "tricks of game programming gurus" book, hehe j/k
4. Date your journal so you , yourself can judge how far you have progressed with you skills.
while some people can play code chess and manage to remember infinite code pathways, most people are not superhuman. Write a good design documents , then code.
Design FIRST, Code LATER.
or Design FIRST, Code LATER, redesign AS YOU GO.
Not Code FIRST, Design LATER
NOT Code FIRST, Design AS YOU GO.
* Good documentation is different to everyone, you must find your own path in this matter.
Code on young grasshopper.
#7
Subjects such as discrete mathematics have so many applications it's silly - from engine task scheduling and synchronisation, compression, encryption, networking, and right on down to the design of your array and string classes (should you be so inclined).
12/08/2003 (2:24 am)
While it's true that math isn't strictly required to be a competent programmer, it's surprisingly valuable.Subjects such as discrete mathematics have so many applications it's silly - from engine task scheduling and synchronisation, compression, encryption, networking, and right on down to the design of your array and string classes (should you be so inclined).
#8
The main thing is being able to look at matrix & vector math without flinching too much, or to understand what Sine, Cosine, and Tangent (and more interestingly, Arctangents!) are used for. Given a crib sheet in the form of a book or sample code, implementing a polygon-to-polygon intersection test shouldn't scare you away. All of these are used in engine creation or modification, and often in AI programming as well - after all, your bots need to be able to figure out how to lead a moving, turning target in a 3D world.
The number one thing you will need is to know not only how to write code, but how to develop software. There IS a difference :) The best way to do this is to jump right in, but START SMALL. Maybe with a 2D game. Nothing is going to burn you out faster than trying to bite off more than you can chew when you are learning to develop games. Well, actually, biting off more than you can chew is ALWAYS that bad, but it's much easier to overestimate your abilities when you are starting out. You may not think that implementing a turn-based checkers game will be that helpful in preparing you to make your dream-game, but if you've never written UI, AI, gameflow, or graphics code before, you'll learn a lot.
12/08/2003 (8:33 am)
If you are doing 3D games in particular, having a solid background in math (mainly algebra & trig) can be pretty helpful. I've had to use calculus maybe twice... and even then I didn't really *need* it, but it was a useful tool.The main thing is being able to look at matrix & vector math without flinching too much, or to understand what Sine, Cosine, and Tangent (and more interestingly, Arctangents!) are used for. Given a crib sheet in the form of a book or sample code, implementing a polygon-to-polygon intersection test shouldn't scare you away. All of these are used in engine creation or modification, and often in AI programming as well - after all, your bots need to be able to figure out how to lead a moving, turning target in a 3D world.
The number one thing you will need is to know not only how to write code, but how to develop software. There IS a difference :) The best way to do this is to jump right in, but START SMALL. Maybe with a 2D game. Nothing is going to burn you out faster than trying to bite off more than you can chew when you are learning to develop games. Well, actually, biting off more than you can chew is ALWAYS that bad, but it's much easier to overestimate your abilities when you are starting out. You may not think that implementing a turn-based checkers game will be that helpful in preparing you to make your dream-game, but if you've never written UI, AI, gameflow, or graphics code before, you'll learn a lot.
#9
12/08/2003 (4:48 pm)
Thanks guys, any books or programs to recommend?
#10
12/08/2003 (8:47 pm)
Would 3d Game studio www.3dgamestudio.com be any good for what I need? It looks pretty awsome.
#11
Do you want to be a
1. engine coder
2. tool programmer
3. content coder
4. level designer
5. software engineer
choose your poison ;)
12/08/2003 (9:35 pm)
Chris, dependsDo you want to be a
1. engine coder
2. tool programmer
3. content coder
4. level designer
5. software engineer
choose your poison ;)
#12
12/09/2003 (4:46 pm)
Thanks for your help, keep the comments coming.
#13
3D Game Studio has a 30 day trial. Download it and see what you can do with it.
12/09/2003 (4:57 pm)
Chris -3D Game Studio has a 30 day trial. Download it and see what you can do with it.
#14
12/09/2003 (6:37 pm)
Its pretty cool, but I cant manipulate the stuff I want, is it a good start, or just a waste of time for people who never intend to delv deeper into programming?
#15
12/09/2003 (7:01 pm)
Also, bllitz basic sounds newbie friendly, but I cant find anything for how to even get my first line of code written.
#16
Then skip trying to learn how to program and learn how to search the web . . . a simple search on google will tell you all you want to know and more about getting started with blitz basic . . .
12/09/2003 (9:26 pm)
Quote:Also, bllitz basic sounds newbie friendly, but I cant find anything for how to even get my first line of code written.
Then skip trying to learn how to program and learn how to search the web . . . a simple search on google will tell you all you want to know and more about getting started with blitz basic . . .
#17
there is a lot of stuff there and Krylar has written some basic tutorials that are supposed to be great at getting yo started.
Blitz is actually very powerful when in the right hands and more flexible than most out there. It also has a similar syntax to C++ and allows you to create your own extension libraries in C++ if you want.
Also go to blitzbasic.com and see what tools people are making with it.
some of the tools are better than the ones that come with TGE like Giles at http://www.frecle.net/giles/gallery.htm
an amazing global ilumination radeosity lightmapper with 3d paint tools :)
or cartography shop, a CSG editor that can create levels for blitz, darkbasic, TGE etc.
and games like Aerial Antics http://www.avault.com/pcrl/demo_temp.asp?game=aerialantics
or best friends at http://www.retro64.com/bf.asp?PHPSESSID=a67c85b80e17627dbdbecd011936f640
You can actually make almost anything with blitz if you have a good team, and know how to optimize a game engine.
Also check out the absoluterly stunning 3ds max exporter if you use max, the exporter alone is worth more than $100 and is easily the best for any game engine costing $1000's more. Puts all the rest I have tried to shame and the one reason why we won't be looking elsewhere for another engine any time soon.
12/09/2003 (9:56 pm)
Try http://www.blitzcoder.com/there is a lot of stuff there and Krylar has written some basic tutorials that are supposed to be great at getting yo started.
Blitz is actually very powerful when in the right hands and more flexible than most out there. It also has a similar syntax to C++ and allows you to create your own extension libraries in C++ if you want.
Also go to blitzbasic.com and see what tools people are making with it.
some of the tools are better than the ones that come with TGE like Giles at http://www.frecle.net/giles/gallery.htm
an amazing global ilumination radeosity lightmapper with 3d paint tools :)
or cartography shop, a CSG editor that can create levels for blitz, darkbasic, TGE etc.
and games like Aerial Antics http://www.avault.com/pcrl/demo_temp.asp?game=aerialantics
or best friends at http://www.retro64.com/bf.asp?PHPSESSID=a67c85b80e17627dbdbecd011936f640
You can actually make almost anything with blitz if you have a good team, and know how to optimize a game engine.
Also check out the absoluterly stunning 3ds max exporter if you use max, the exporter alone is worth more than $100 and is easily the best for any game engine costing $1000's more. Puts all the rest I have tried to shame and the one reason why we won't be looking elsewhere for another engine any time soon.
#18
examples below:




12/09/2003 (10:50 pm)
Oh Chris, the french blitz basic has some of the most impressive stuff as they are some of the few people to have 3ds max. I'd recommend this page and checking out some of the demo's http://perso.wanadoo.fr/blitz3dfr/mes_projets.htmexamples below:




#19
12/10/2003 (5:18 am)
Wow, cool.
#20
Firstly Blitzmax is due out next year and is 80% done (according to the Author). If you buy blitz3D now you will have to buy BLitzMax later. Blitz Max gives you lower level access to the hardware should you need it, has a new compiler and you can create cross platform games, Linuz and Mac. It's modular and you can use GL, or DX9
Currently BLitz is for the windows PC only. and is officialy only DX7 (if your making indie games this isn't a bad thing though as it has better compatibility with older hardware, and as the DX7 implementation is very complete compared to most engines its not as big a problem as one might think). However there are various openGL extensions, but you will need to have pretty thorough knowledge Blitz and of 3D in order to use them.
When you buy Blitz all you get is the languge, compiler, IDE and a realy basic CSG editor. Assuming that if your serious you will join in the community wher eyou can either code your own tools and libraries, or get access to what people have already made many of which are free.
With Blitz you can use BSP's and regular meshes. If you use BSP's you have brushes and a CSG editor much like you would for torque which supports the lighting and collisions. However if you want to use meshes you only have fustrum object occlusion, and draw distance occlusion, anything else you have to code yourself. Which I recommend as it gives you the most flexibility if you have artists that are using 3d apps.
exporting from max and lightwave is pretty straightforward, max beig the better supported by far thanks to the excellent plugins mentioned before. Its relatively easy to make most types of games, FPS being the easiest of all. there are a whole bunch of physics engines based on the vertlet physics library that support ragdoll type physics that can be used for all kinds of physics based applications.
It has a pretty complete DX7 implementation with more unusual features like shinyness, so your meshes can have a variable closs to them which is quite nice, and it also allows Dot 3 blending allowing for normal mapped bump mapping, and Cubic environment maps which it can render in realtime for realtime reflections. Currently only supports 2 sets of UV coordinates but its a cinch to do lightmapping and detail maps and there are numerous lightmapping tools avaliable as code or stand alone apps. If your creating games on a budget, Milkshape, Ultimate unwrap 3D export directly to blitz with all the Brush FX.
If your using max you can export and animate almost everything including animated lights, fog, cameras including FOV, lightmaps, instanced geometry and collisions (per face, box, sphere and elipse). you can also set the draw order manually for objects and brushes in your scene.
the nice thing about this is that you give artists full control of the visuals without them having to rely so much on coders, this is mainly thanks to the great efforts of a couple of commercial game coders who wanted to make the perfect art path for doing mockup games quickly. At the moment they are adding max particle export including direct support of max wind, gravity and deflectors. so that you all these physics properties are correctly translated to your game environemnt :)
I think that pretty much covers it really, I left the worst till last because its my biggest grumble with it lol, and thats that the file format supports vertex weights but it hasn't been properly implemented yet, so if you want vertex weighted animation you have to code it yourself :(.
the nice thing is that many of the initial shortcomings have allreday been resolved by coders and are avaliable for free or for really small cost. Like the Sswift dynamic shadow system costs $15 and the Sswift terrain system which is much like the TGE one
12/10/2003 (7:52 am)
CHris, I had better point our a few things about blitz though before you buy it.Firstly Blitzmax is due out next year and is 80% done (according to the Author). If you buy blitz3D now you will have to buy BLitzMax later. Blitz Max gives you lower level access to the hardware should you need it, has a new compiler and you can create cross platform games, Linuz and Mac. It's modular and you can use GL, or DX9
Currently BLitz is for the windows PC only. and is officialy only DX7 (if your making indie games this isn't a bad thing though as it has better compatibility with older hardware, and as the DX7 implementation is very complete compared to most engines its not as big a problem as one might think). However there are various openGL extensions, but you will need to have pretty thorough knowledge Blitz and of 3D in order to use them.
When you buy Blitz all you get is the languge, compiler, IDE and a realy basic CSG editor. Assuming that if your serious you will join in the community wher eyou can either code your own tools and libraries, or get access to what people have already made many of which are free.
With Blitz you can use BSP's and regular meshes. If you use BSP's you have brushes and a CSG editor much like you would for torque which supports the lighting and collisions. However if you want to use meshes you only have fustrum object occlusion, and draw distance occlusion, anything else you have to code yourself. Which I recommend as it gives you the most flexibility if you have artists that are using 3d apps.
exporting from max and lightwave is pretty straightforward, max beig the better supported by far thanks to the excellent plugins mentioned before. Its relatively easy to make most types of games, FPS being the easiest of all. there are a whole bunch of physics engines based on the vertlet physics library that support ragdoll type physics that can be used for all kinds of physics based applications.
It has a pretty complete DX7 implementation with more unusual features like shinyness, so your meshes can have a variable closs to them which is quite nice, and it also allows Dot 3 blending allowing for normal mapped bump mapping, and Cubic environment maps which it can render in realtime for realtime reflections. Currently only supports 2 sets of UV coordinates but its a cinch to do lightmapping and detail maps and there are numerous lightmapping tools avaliable as code or stand alone apps. If your creating games on a budget, Milkshape, Ultimate unwrap 3D export directly to blitz with all the Brush FX.
If your using max you can export and animate almost everything including animated lights, fog, cameras including FOV, lightmaps, instanced geometry and collisions (per face, box, sphere and elipse). you can also set the draw order manually for objects and brushes in your scene.
the nice thing about this is that you give artists full control of the visuals without them having to rely so much on coders, this is mainly thanks to the great efforts of a couple of commercial game coders who wanted to make the perfect art path for doing mockup games quickly. At the moment they are adding max particle export including direct support of max wind, gravity and deflectors. so that you all these physics properties are correctly translated to your game environemnt :)
I think that pretty much covers it really, I left the worst till last because its my biggest grumble with it lol, and thats that the file format supports vertex weights but it hasn't been properly implemented yet, so if you want vertex weighted animation you have to code it yourself :(.
the nice thing is that many of the initial shortcomings have allreday been resolved by coders and are avaliable for free or for really small cost. Like the Sswift dynamic shadow system costs $15 and the Sswift terrain system which is much like the TGE one
Torque Owner Jarrod Roberson
Now if you want to be a game "designer" then mapping for an existing game is a good way to start. learning the content pipeline and all the techonology is a must. Modding then is the next step.
If you want to be a game "developer' then learning old school programming practices is a good place to start. Python, Java, even the Object Oriented Basic languages like REALBasic are good places to start. For someone that has NEVER written a line of code, that is what "learning" langagues were designed for. DarkBasic is a good place to start, and it will probably be overwhelming at first.
Any of the "Thinking in" Books there are ones for C++, Java and Python now are good starts.
Either way there is no "jumping in to what you want to know" there is too much for anyone person to know everything immediately. It takes YEARS to learn all the aspects of programming much less game programming.
There is a really good book called "Game Coding Complete" which is more about making games than coding them very well written by one of the industry veterans. I highly reccmmend it, after reading it you will start to understand that you don't know what you don't know :-)
Patience is what you need more than anything.