PDA

View Full Version : Game Programming Guide For The Newbie


Kid-Mesh
06-18-2003, 11:38 PM
Well let me start by saying that this is addressing the newbies who may be wondering -- "How do I go about making a game?"

I will try my best to layout out a path that you could follow that just may help you get there.

First and foremost learn how to code/program in a compiled language, this is important because with out that there is no (real) game.


Software needed: (A Compiler)

1) Visual Studios by Microsoft (you can get a C++ compiler for 99 dollars)

or

Borland C++ Complier (http://www.borland.com/products/downloads/download_cbuilder.html) which is Free

Thats about all the software your gonna need for your code.


Preferably the language of choice these days still is C++, and of course there is Darkbasic, VB, C#, JAVA, etc, etc, but C++ is viewed as the industry standard. Building a game engine with OOP principals in mind will save you stress and aggrevation later and C++ has been the standard for years.

If you are new to programming then prepare to spend at least 4 to 6 mos getting familar with the concept of coding in a modular fashion then graduating on to OOP practices which for some is truly life long learning :) .

During this process it is important that you take your time and learn the language. Do not make the mistake of getting excited about making a game and skipping sections of the language because you are a little savier then "Hello World". C++ is vast, and your gonna need to know all of the libraries and tools available in it to help you later on in your travels. Trust me on this...if you skip sections you will be back later studing the language again and again.

Now that we know a little C++, its time to start learning how to function within the enviornment our game is going to run in. For Win / PC users this would be Windows of course. Windows programming by itself can be difficult if your creating windowed applications and such with C++ ( thank god for Visual Basic or C# for that matter).

But for game developlement its pretty straightforward, most of the tutorials and books that I list for you at the end will feature how to create a small shell that will allow your game to cooperate within the windows enviornment. The less windows code the better.

After you start to feel comfortable with C++ & programming in general then its time to start looking at the available API's which is short for (Application Program Interface). These are libraries with routines and code blocks that allow you to access video data, network cards, sound cards and whatever the developers decieded to include to make the developement process easiser. Some API's are better than others in the areas of graphics programming but its more of a personal debate and taste.

If your new and starting out fresh then Id suggest starting out learning OpenGL / SDL or GLUT. These particular API's are very clean and more or less straightfoward. Being that they are mainly graphic API's only, there are no sound or networking libraries that comes with it them. But thats not a bad thing, graphics programming is tough enough as it is.

But IMHO the advantage here is that you need to focus mainly on the graphics side of things first because that is how we are going to see that new block buster you have in your head.

Now if you want to add sound, networking etc... there are some cool modules like FMOD and things like window sockets etc that you could learn and add later...should be easy cause your a programmer now...right?

Once you are comfortable with programming with one API then it shouldnt be that difficult to switch to another API. Of course then it requires learning some new naming schemes but most graphic pipelines are pretty similar.

After learning Opengl then you should be ready for something like DirectX, (it doesnt hurt to be bi-lingual when it comes to graphic API's).

The reason why I suggest learning Opengl first is because to the newbie it will make total sense. DirectX is not a pretty API to look at it and can seem very confusing at first and takes a while to get the hang of if your just starting out and never been exposed to M$ style hungarian notation, function pointers, SUPER_LONG_OBJECT_NAMES and others things that just well...makes M$ special.

Opengl will get you up and going in no time and if and when you switch to DirectX it will make much more sense. Like I said before, the graphic pipelines are similar and you will find yourself saying "Why in the hell are they doing it like this?" or you just might be as crazy as they are and say "..Ahh, I see...thats pretty cool!". Dont get me wrong I love DirectX, it just took Opengl to get me over the hump.

Here is a little biased info about DirectX, it is hands down the API of the day. It has everything that you need to complete a game from start to finish, sound, graphics, networking, you name it its there. Basically it lives up to the term "SDK".

Now dont let that tempt you, you can still create a complete game in Opengl (lets see quake was made with it and slew of others).

Just remember this is a gradual climb here, if you want to be successful and not get discouraged....take it slow, FOCUS on graphics programming...its the theory your gonna need at the start so use an API that will make it easy for you. In the end no matter what API your using its all realitive.


Onward - another important factor is MATH, God knows I hated math...you see I said I hated it. Math is the key to game programming, with out it there are no bullets, bombs, explosions, flying ....nothing. I would suggest boning up to at least Algebra2/trig and advancing as you go fourth, believe me you will have the desire to.

If your math is not that good dont worry because math for games is cool as ICE. I will post some resources to ease the pain at the end.


Let's recap for second:

1. Learn a language (C++)
2. Learn Windows programming
3. Pick an API (Opengl / DirectX)
3. Brush up on the math


"Um ok how do I make a game?" ....

Well if you followed the path I laid out then your proably at the point to where you can either put some graphics on the screen now and play some sound effects etc, etc.

Now we can talk about making a game. (I love this part)....

DESIGN DOCUMENT -- We went through all that to get to this. This is how you make your game. Learn how to create a design document, this will guide through the process and help you stay on the path. With out the above knowledge then this part is useless unless this is all you want to do and you just end up passing it off to another coder (Usually these guys are called game designers).

Depending on your resources and books you aquire there will always be a section on Design docs so your covered there.

Some key tips --- Try to create games that you play. It may sound funny but its true, if your not a RPG guy then dont try and make a RPG. If your not a sports person then dont try and make a sports game. Design and program the type of games you like to play.

Why?, because the process of creating a game takes a loooong time especially if your what the industry calls a 'Lone Wolf' (basically a garage coder, a loner, a indy, etc). So belive me through out that process you want to be working on something that you will enjoy.

Plus, you know the genre and it will be easy for you to create the design doc and make it a fun game and hopefully better too.





You still with me?...Ok, I know this seems like a lot and it is really. But people are asking and want to know.

Game programming is a Science make no mistake about it, Graphics, Sound, Artificial Intelligence, Networking, Scripting, Math, 3D therory, its no joke and requires patience and a sharp mind. But guess what? You can do it.

No matter what just set realistic and obtainable goals for yourself and you will be successful, make sure your foundation is solid as a rock (all those things and more I listed above) your gonna need it every step of the way.









Book and Website recommendations:


Game programming all in one (http://www.amazon.com/exec/obidos/ASIN/1931841233/qid%3D1055968406/sr%3D11-1/ref%3Dsr%5F11%5F1/103-9991329-8956619) This book will take you from a wet noob to a bonified intermediate newbie. Very good book if your just starting out.

Tricks of the game programming guru's (http://www.amazon.com/exec/obidos/tg/detail/-/0672323699/ref=pd_sim_books_5/103-9991329-8956619?v=glance&s=books) This is another good book for newbies. The author of this book is both loved and hated in the game programming world but I recommend it for newbies.

Programming Role playing games by Jim Adams, for when you get to the intermidiate level (Excellent) (http://www.amazon.com/exec/obidos/tg/detail/-/1931841098/ref=pd_sim_books_1/103-9991329-8956619?v=glance&s=books)


Swords and Circuity, this book is setting the standard for designing games. If you want to know how to design then I highly suggest this book. (http://www.amazon.com/exec/obidos/tg/detail/-/0761532994/ref=pd_sim_books_3/103-9991329-8956619?v=glance&s=books)

OpenGL game programming. This book will teach you opengl and graphics programming from the ground up. The end project is actually a 3D shooter game like tribes...very cool. (http://www.amazon.com/exec/obidos/ASIN/0761533303/qid=1055971001/sr=2-1/ref=sr_2_1/103-9991329-8956619)


3D math primer ( COOL MATH) Great book (http://www.amazon.com/exec/obidos/tg/detail/-/1556229119/qid=1055972459/sr=1-1/ref=sr_1_1/103-9991329-8956619?v=glance&s=books)



Websites:

For all you newbies out there this is where I recommend you start.

Game tutorials DOT com (http://www.gametutorials.com/) The guy who runs this site is awesome and works in the game industry. His tutorials are opengl based and very easy to follow. (Highly Recommended) START HERE.

GameDev.net (The authority on all things concerning Game development) nuff said (http://www.gamedev.net)

Game Institute (Learn game programming online learn from the professionals) (https://www.gameinstitute.com/gi/)

Gameversity (Another online programming school that covers everything I talked about and more) (http://www.gameversity.com/)


Disclaimer:

I myself am a 'Lone Wolf' and I have travelled the road that some of you are about to embark on. I just wanted to share with you what wasnt shared with me years ago.

Hopefully this will shed a little light into that dark void of game programming that is staring you in the face. Game programming has and will always be a "DARK ART".

My suggestions are just that suggestions. But I truly hope they help you. Good luck and from one Lone Wolf to another...Im glad to see your answering the call.

Cyberdigitus
06-23-2003, 10:27 PM
another book i'd recomend to the aspiring game designer is "Game: Architecture and design" by Andrew rollings and Dave Morris, published by Coriolis

find it at Amazon (http://www.amazon.com/exec/obidos/tg/detail/-/1576104257/qid=1056400994/sr=1-1/ref=sr_1_1/002-4392434-6449669?v=glance&s=books)

thom:f
07-08-2003, 02:08 AM
I've just looked at that book on amazon - except i looked at the UK site aswell - there they are advertising a new edition which (if anyone was serious about this book) - might want to wait out for.. (for release 30th september 03)

just thought i'd add that to the previous post. (New Edition (http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/books/0735713634/reviews/026-9600051-2790848))

looks like a good book :)

gumpymaker
07-10-2003, 06:34 PM
If you really want to become a professional all the above mentioned books and software is a great but if you'd rather just make games I'd suggest one of the following.


3D Game Studios: This is actually a nice tool because you can make levels and import characters quickly and they even support c-script which is something like javascript. I think they also support c++. Anyway there are some game examples and such on the site
http://www.conitec.com

thom:f
07-11-2003, 07:56 PM
Oh, and i didn't actually say this in my last post.. duh..

That little insight into the whole process is awesome, thank's a lot for that... I think so much about what you said has just clicked into place.. Some of the decent links you've put there has/will have saved a lot of searching too .

So yeah, thanks for the time to write it all down so clearly and concisely, it all makes a little more sence now.

Thom :)

Razor Blade
07-14-2003, 12:24 AM
I also wanna say for the real n00b who doesnt know a thing about programming (aka: me!) RPG Maker is a great way to start out. It is simple and will get you used to programming aspect a little.:thumbsup:

Ajaciedwt
07-25-2003, 06:48 PM
There´s also www.gameprogramming.org , they got FREE courses over there but the admission exams are hard. Lots of math! Quite difficult.

Boone
08-06-2003, 10:14 PM
If anyone needs advice on games programming - feel free to ask me!:beer:

awedin
08-09-2003, 05:35 AM
Anybody else have any experience with the gameprogramming.org program??? I'm debating whether it's worth trying to dig out and dust off my college calculus book to take the entrance exam. Man, it's been quite a few years since I've used that book!!!

:curious:

Batsu
08-10-2003, 04:26 PM
Great guide! thx for the tips and info, im actually studing 3Dstudio and OpenGL (for portability), and this guide just showed me im on th right track. :)

Thanks again and thanks to all the ones that contributed in this thread :buttrock:

kiaran
08-12-2003, 12:06 PM
I'm currently studying digital animation and mel scripting (Maya language) but OpenGl and DirectX API's have always facinated me. It's like everytime I hear a graphic whiz spounting off I just want to whip out a magic straw and suck the knowledge out of his brain.

I only ever made it to the introductory Calculus in university. I know this isn't enough but man I doen't like math very much. Tell me honestly, does the math get cooler?

AI programming would be so cool. But, alas, I must learn one thing at a time.

Thanks for the clear, concise, help. You've inspired me to look more seriously at learning games coding.

Cheers,
Kiaran

Jamaludin
08-12-2003, 05:06 PM
Heyza Kid Mesh,

Ive always wanted to learn how to make program games a long time ago, i gonna do a study of it as well as soon as I get this diploma. Thanks allot it makes a bit more sense now thanks to this explanation of your, thanks allot man, means a great deal ! Good luck 2 you !:applause: :surprised :drool:

dunkel3d
08-16-2003, 08:41 AM
Originally posted by Razor Blade
I also wanna say for the real n00b who doesnt know a thing about programming (aka: me!) RPG Maker is a great way to start out. It is simple and will get you used to programming aspect a little.:thumbsup:

Do you know if you can import your own geometry, textures and animation cycles w/ RPG Maker?

s

Jamaludin
08-19-2003, 04:29 PM
im sorry bout this but I already tried the opengl site, I have bought 2 of the books you recommended, but I cant find the opengl sourcecode or whatever it is I need to work with on there site. Could you help me with findin these please ? Thanks in advance ...

Boone
08-19-2003, 07:50 PM
Re: Jamaludin.

I remember when I tried my hand at OpenGL programming - as far as I can remember, GameDev.net had a tutorial....I'll have a look when I get a moment.:thumbsup:

dunkel3d
08-19-2003, 08:46 PM
"If you are new to programming then prepare to spend at least 4 to 6 mos getting familar with the concept of coding in a modular fashion then graduating on to OOP practices."

By "modular fashion", do you mean learning C programming and then moving on to C++?

S

dunkel3d
08-19-2003, 09:03 PM
Originally posted by Ajaciedwt
There´s also www.gameprogramming.org , they got FREE courses over there but the admission exams are hard. Lots of math! Quite difficult.

Ajaciedwt, have you been able to enroll or even download the entrance exam?

S

Boone
08-19-2003, 10:52 PM
Re: Dunkel3D.

Right - lets start by keeping things simple...

First, learn C.

...feel confident in making the choice in learning this language. Don't worry about big words such as "modular" or "Object-Oriented-Programming"...you'll come across them all in good time!

Jump to it!:wise:

T4D
09-06-2003, 04:36 PM
3D Game Studios: This is actually a nice tool because you can make levels and import characters quickly and they even support c-script which is something like javascript. I think they also support c++. Anyway there are some game examples and such on the site

YES 3D game studio is a great place to start i've been using it one year now and it's very good learning tool as well as a development tool

writing lightwave plugin with what i've learnt

also alittle beta game done in just over a month at the bottom

and I'll be releasing a full game at the end of the year with it also :)

the rookie
08-10-2004, 05:49 PM
Thanks for posting the sites, books and additional information, I do have a book to recommend and I am by no means a promoter of the product or company but I have been using the 3D Game Programming All in One by Kenneth C. Finney it's by the same guy who created Game Programming all in one, this book goes into everything and I have devoted myself to hermit myself and get it done, also it has a demo for the tutorials of using the game engine which is the Torque Game Engine which is really affordable a $100 bucks US Dollar and if you want the license and royalty free to sell your games then it's only $500 bucks a wide range of 3D programs can be used the create your games and import them into the engine it's great, developing for PC games, now here's a brigeing factor I just purchased a PS 2 Linux development kit to help you get fimiliar with creating games for platforms, Linux is a pain , but you can get threw it if you really want to get it done, I've also found either a Java engine or scripting thing (I'm not sure as to what it is, because I haven't had time to mess around with it, but it can help you develop 2D games) also if you want to create games like street fighter there's a game engine called MUGEN to create 2D fighting games, because I scowered the earth to find information on this, and I had to share it with you guys, Thanks for posting the info, I will look into the information given while I'm still dealing with this book

Skarlath
08-24-2004, 10:44 AM
Thanks Kid Mesh and all others who posted other books and useful resources.

I have a question for anyone who has the time to answer it. I have set my sights on games programming, I know its something I would love to do. I am still young, so I have plenty of time to fit in language learning etc. A while back, I started playing around with VB. After a while of this, I felt it wasnt getting me where I wanted, and as C++ is the industry standard, I started learning it instead. My question is: Is it neccesary to learn a language before C++, like VB or something along those lines, or is it best to dive right in and get started?

Thalaxis
08-24-2004, 03:40 PM
I'd say just dive right in. And focus a lot of effort early on in the area of object oriented programming, and once you start understanding that part, put some time into object oriented modelling, the Unified Modelling Language, and software development and QA processes.

C++ isn't an easy language to learn, but if you get yourself a good solid grasp of object-oriented programming BEFORE you start digging into the language internals, you'll write better code.

Rational Unified Process is a good one to learn, it's the industry standard... and anyone who tells you that it doesn't work for game development likely doesn't know what it is. I've read a fair number of post-mortems in Game Developer in which the writer stated that either they were glad for process because it saved them, or that they wished they had one because the experience was miserable, and the project nearly failed.

Game Developer magazine is well worth getting.

System_AI
01-21-2005, 10:55 PM
so what is teh future of gaming? i am learning c++ right now.. no matter what.. but by teh timei am older.. will there a be a programming language i need that is coming ahead of c++ or something?

the rookie
01-26-2005, 02:32 AM
C++ seems to be the just of it right now, and you can bridge the gap with other source codes for other game engines, (from what I've learned thus far, of course there's more information with this commment) I did, once again, luck up on a PS2 development kit, which in developing games for it is using linux and programming C++ and Assembly, I highly recommend getting The Complete Reference of C++ fourth edition, which is a great book and huge information resource, plus a C++ Primer is needed as well, there was another book I needed to get that had low level techniques of programming in C++, and I'll have to find that one again, but after awhile programming becomes fun if you do it right, and practise good code, creating PC games is a great start, for creating games 2D and 3D and always check www.gamedev.net (http://www.gamedev.net) for further information and resource and community, I'm psycho, I do it all, programming, 3D artwork, games, what ever you want, skill level is another issue, but time will tell, :D!!

Boone
01-26-2005, 09:21 PM
Re: SystemAI.

My friend, if you know C++ - then the next "big thing" will be a breeze in the wind for you. C++( short of machine code and assembly ) is quite arguably the most complex of all the programming langauges, and whatever comes next...

Before C++, many considered assembly to be the best way to achieve the fastest code and so many had to go out of their way to understand Assembly for "cutting edge". But as computers got faster, C++ seemed to be easier to understand and even though Assembly code was still faster - the speed gained from the extra work of coding in Assembly was now in question - possibly due to the power of the C++ language.

So leaping over to C++ from Assembly would be easy. What took 5 lines of assembly code to perform a task, could now be done in C++ in 1 line of code. And with the extra CPU and memory muscle - you could stick two fingers up at optimisation!

Now we face a new era - C++ is starting to be surpassed( only just, mind you ) by other languages. The greatest example of this would be Java.

Though not quite as flexible as C++( to the best of my knowledge of Java, it has limited support of pointers...), Java has reduced many headaches in the memory-management department - something that has plagued C++ programmers since it's creation. And some of the games are very impressive...

But still - we now come to our point! Assembly was closer to machine code than C++. C++ is closer to machine code than Java. And I wouldn't be surprised if Java is closer to machine code than...well, whatever comes next! But you have to recognise that the closer you program to machine code - the better you understand how a "computer ticks".

So by learning C++, its a smart bet that you know more about "whats going on under the hood" than the guy/gal learning Java( or whatever!).

That also explains why its a smart move( in most cases ) to employ a programmer who understands Assembly AND C++ over the other one who only understands C++...

kiaran
01-26-2005, 09:49 PM
Boone- Interesting points. It will be interesting to see if the fancy new higher-level languages will become the dominant platforms for next gen software development. For now, I'm sticking to C++ but I have little doubt that it will be the last major language I will need to know. Thanks for the insight :)

Boone
01-26-2005, 10:11 PM
Re: Kiaran.

You're most welcome.

I remember a while back when I came across the cute Dark BASIC language. Like it said on the tin - I was able to write a 3D game in 30 minutes! With that kind of power I almost threw my C++ out the window - but something terrible struck me...

I had practically no access to structures or pointers!

After working myself into a corner - I immediately ran back to C++ for these features, accepting the responsiblity once again for doing my own memory management. Despite the hard work ahead, I could atleast program my way out of that corner...

So whatever the next language is going to be, it must be flexible and powerful enough to allow the programmer to handle any programming assignment.

System_AI
01-27-2005, 02:24 AM
Ic.. thanks alot!! Man.. all teh programmers and 3d artists ive talked to always seem to have "intelligent" things to say.. Thanks

JJ54
01-27-2005, 02:17 PM
OK guys - I'm probably the oldest guy in this forum - been lurking for a while. I'm a retired teacher (58 yo). I've taught programminng in HS before. So I can do C++, Vis Basic, and Java. Not sure if anyone is doing C# for games? I don't know C# but have it. After I retired I did some subbing and did a game design - even to the point of drawing levels on paper and a bit of storyboarding - I'm into 3D Graphics at the moment and have high end 3D aps. I ran my concept by some teens I was subbing for (just a regulart class - not programming) and they thought the idea was kewl.

So my question is: - I've looked at the 3D Game Studio site as well as the Torque engine site. I know NOTHING about game engines. I kind of understand what they are talking about but don't really know what they "look" like. Like how do you tie the programming in to them.

I think the basic Torque engine is about $100 USD and the most reasonable 3D Game Studio package is $200 (They have a cheaper but really weak looking package).

I'm also not sure how animation you do in a 3D package hooks into a game engine.

So my question is:

Which is better for me? I know this has been asked a lot but, perhaps, knowing my background could give someone an idea as to which package might be better. 3D Game Studio looks like it might be easier as it LOOKS like it relieves you of SOME of the programming.

Hehe and before someone asks - No, I'm not so old that I did Assembler (Thank God!!)

Jim

Thalaxis
01-27-2005, 03:06 PM
Not sure if anyone is doing C# for games?


Not yet, but since DirectX is now fully managed and running on .NET, there's not going to be much
reason not to, other than a lack of experience on the part of most current developers.


I'm also not sure how animation you do in a 3D package hooks into a game engine.


In most cases, you create and export some file format that the game engine's development tools
understand, and it loads the animation data as well as geometry from the file. Some game
development tools can read formats like dotXSI or FBX, which is good if you happen to use a tool
that can export one of those, but that's less common. For HalfLife2 you can get a plugin for XSI
that exports Valve's file format, so that you can load the asset data into Valve's Hammer tool,
which basically started out as a level editor on steroids, and has evolved considerably since.

Unfortunately, I don't yet have any direct experience with either game engine you're looking at,
so I can't give you and specific feedback regarding either one. I've been looking at both of
them myself :)

kiaran
01-27-2005, 08:03 PM
Hi Boone- I tried out your little video game. Pretty cool. I didn't make it very far though. Kinda difficult.

Boone
01-27-2005, 08:28 PM
Re: JJ54.

Its a pleasure to converse with a respectable programmer such as yourself!:beer:I am going to dispel the myth behind "Game engines" for you...ready for this?

THEY ARE NOTHING BUT REUSABLE CODE. :scream:

In otherwords, they are simply a load of function calls that you probably bundle into a nice C++ class for convienice. The ideal game engine would be one that is program independant( doesn't rely on the current project's globals etc), and so forth.

For this topic, I would strongly suggest asking the rather decent guys'n'gals over at www.gamedev.net - they deal with this topic for breakfast every morning! :thumbsup:

Boone
01-27-2005, 08:31 PM
Re: Kiaran.

"I didn't make it very far though. Kinda difficult."

WHY DOES EVERYBODY SAY THAT? :cry:

Re: System_AI.

Don't worry - I ain't got a damn clue what I'm talking about half the time! :thumbsup:

JJ54
01-27-2005, 09:49 PM
Thanks Thalaxis and Boone.

I guess the bottom line would be whether 3D game Studio or Torque has the better set of functions then. This info really helped a lot. I wish their websites made it clearer exactly how you work with it.

I use Cinema 4D and LightWave and I think that at least Cinema can deal with FBX format so I'm kewl there. Another thing I don't quite get in this area is: Once you create an animation for a character, how do you work with it. I mean, if it were a football type game, I guess you could have your player do his little touchdown dance in the end zone but I'm sure there must be a way to connect an animation to the game plot - as in reacting to clollision, advancing into a strike, reacting to a situation that might occur from some unexpected AI event. I have SO many questions and SO much ignorance!

I really thought the beginning of this thread was great. Since I'm fairly sure many if not most of the people here are young and many in school - they may not wanna hear about the math part but when you need math to do something - guess what - you just plow right in because it has a purpose for you and isn't some kind of abstract stuff.

I really think teaching game programming in schools could cover a lot of the regular school curiculum: Math: used to tell the math teachers to stress Cartesian coordinattes as well as the Z axis just for starters - Social Studies (Stuff like "Civilization") - English (Documentation, Design and plot) - Science (Physics). I tried to work with other teachers when I did this but I'm not sure they "got it". I didn't teach game programming (Obviously) but I think if I could do it again, I'd try to teach game programming. Programming classses are geared toward business application. That means databases, networking and security. But ALL those are needed in games as nearly as I can tell. So it could be covered in a much more "fun" way.

OK I'll get off my soap box!! Any educators out there??

Jim

Boone
01-27-2005, 10:35 PM
Re: JJ54.

Dear God, the maths part was the most frightning part for me - I felt like I'd been trapped in a giant spider's web! :scream: The trouble started when I had to figure out the intersection of two lines... :sad:

Hmmm...if I had developed my own 3D engine, I suppose I would make a system of "interupts"( :shrug: ) that would recieve...

struct input{
int Animation_index; // which of the animations to start playing...
3D_POINT position; // where in the 3D world to place the animation...
3D_POINT &track; // Just in case the animation's position follows the position of something that is actually changing - sigh - position every frame...
};

...this is just a basic example, but once your game code has done its logic etc, your setup with the 3D engine would basically have this info used as parameters. The 3D engine will most likely take care of the animation for you with a call to the engine's "update" function or whatever...

But the fact of the matter is that 3D engines can differ from each other, so this example could be completely out of the window! :banghead:

Thalaxis
01-27-2005, 11:03 PM
I use Cinema 4D and LightWave and I think that at least Cinema can deal with FBX format so I'm kewl there. Another thing I don't quite get in this area is: Once you create an animation for a character, how do you work with it. I mean, if it were a football type game, I guess you could have your player do his little touchdown dance in the end zone but I'm sure there must be a way to connect an animation to the game plot - as in reacting to clollision, advancing into a strike, reacting to a situation that might occur from some unexpected AI event. I have SO many questions and SO much ignorance!


I think it varies from engine to engine, but the general idea AFAIK (I'm new at game programming, so
I could be easily be quite off base on this), is to basically connect a behavior (e.g. an animation)
to an event, like a touchdown in this case.

How you go about doing that will vary greatly; in simpler engines you'd have to write a script and
register it as a callback with some event handler, and use the script to trigger the animation. In
others, you have a graphical system that allows you to define behaviors and assign them to
events, and then use scripts to implement stuff that isn't pre-built for you.

Boone:
I think that an interrupt-based approach would be less efficient than an event-driven one; in an event-
driven system, you'd just register a callback with an event handler, and when an event happens,
the event handler calls the appropriate function to do whatever it is you wanted it to do.

JJ54
01-28-2005, 12:06 AM
You guys have been most helpful!! At least now I hace a clue.:wise:

So much of the discussion on this forum doesn't seem "programming" related. But these responses connect with me. Whether using interrupt or event driven may depend on the game engine's capabilities I guess.

Still need to figure out which engine though. The 3D Game Studio site mentions a "physics object" I believe and you only have one unless you buy the $800 version:eek: . And I'm not quite sure what that would mean. Any idea guys?

The one I was considering was $200 if I recall correctly.

Jim

the rookie
01-28-2005, 12:14 AM
I'm a Torque user, and for the convient price (100USD) it's well worth it, Torque is used and created by independant developers and is always updated source code, torque's source code is similiar to C++ and has individual features related to it's code, in the Book 3D programming all in one by Kenny Finney (a must have) that guides you step by step thru the whole process, the community is becoming huge and there's always new features added, get the book because they give you a free trial version of Torque along with you first 3D game tutorials, there are serveral procedures for creating 3D games in the engine and there's a article of a guy who used the torque engine for his 3D virtual presentation, the article is on the website and his name is Bendik Stang, the article is called Game Engines features and Possibilities, he explains all the game engines and compares them in a chart of what there capabilities are and prices and why he chose Torque, he also created his own code for a Fx Grass replicator which is just as good as the grass effects created in Metal Gear Solid 3, don't take my word for it, see it your self,
From there it's based on what 3D modeling software your comfortable with and they have plugins (if I can say that) for Maya, 3D studio Max, Lightwave 3D and Blender plus more to come, search the site throughly, and you can view some of the stuff that other indie gamers have created, and play the games as well, Good Luck :D!!

Thalaxis
01-28-2005, 05:26 AM
And don't forget -- Blender has a game engine complete with development tools also --
and the price is right! :)

DevilHacker
02-06-2005, 07:25 PM
Wow, this is a great post for those looking to start programming…
This thread should become a sticky.
http://cgtalk.com/images/smilies/deal.gif

kadok
02-06-2005, 09:32 PM
there is also RealityFactory a freeware 3D RAD game development studio.

Kid-Mesh
02-10-2005, 04:12 AM
Here is another great resource, mainly DirectX but geared towards the beginner/intermediate programmer. :twisted:

Click Me Baby (http://www.toymaker.info/index.html)

HellBoy
02-10-2005, 12:38 PM
Hi all

The thread would help many people, in fact it I assume it did help many people, however, I'd like to give advice too and hope this will help people too.

If you just want make games and not get involved in strong coding and many hussle or perhaps you want to make a game to show off and have it as soon as possible or maybe you don't wanna get involved in coding then thats no problem.

To show off/ create it as soon as possible
Get a game engine such as

http://www.conitec.net/a4info.htm
http://www.blitzbasic.com/Products/blitz3d.php
http://darkbasicpro.thegamecreators.com/

Torque, (dont know the site)
Learn it, it won't take you more than a month or two, then start modelling and there you go


To make a game without a single code
You can do this you can use

http://www.gamemaker.nl/

but this Gamemaker it is only for 2D games, plus you can do both drag & drop and code

There you go

ELBSoftware
02-10-2005, 08:36 PM
Thanks! This is really useful.

Kid-Mesh
02-16-2005, 04:15 PM
For those of you that may be thinking about starting your own game studio this link provides some invaluable information.

Click Me (http://www.gamedevkit.com/)

C++++++
08-07-2005, 05:04 PM
bh
Without mocking the honor of our precedors who learnt & learn ALL THERE IS TO KNOW about making games, including C/C++ & windows & openGL etc. etc., there has to come a time (& i'll bet you there's gonna come a time) that one interested in game programming won't have to learn all that anymore, for there will be 3D game builders with all included, even ultra high quality everything (which you can't get with nowday game makers).
Our ancestors brought the computer language from 00101011011001100 to C/C++, Basic, etc. etc., & we aswell shall bring it further untill very-easy-to-use-fast-to-learn-ultra-high-quality-3D-game-(& all other programs)-builders.
Whadya say about that prophecy, eh?
'Cuz really, every new programmer that sets out has to learn sooooooo much for soooooooo long...... (I'm not being lazy, I actually enjoy studying all the behind-the-curtain stuff, to know it all. I'm just having an inspiration of a program i should make.......ALL RIGHTS RESERVED!:) )

Lau83
08-07-2005, 11:14 PM
I agree with you partially. For the most common programming tasks its not important to know all the background stuff. You just need something to get the job done. However, when you confine yourself to a certain RAD (Rapid Application Development) system you are bound to the features that it has. Implementing new features means you'll have to dive into all that lowlevel stuff anyway, or you'll just simply have to wait for a third party developer to create the components that you need.

This is not practical in game development. Being a developer means you'll have to innovate. Being ahead of other developers. Having to wait on third parties means your being degraded from developer to programmer (in which I mean the differce between actually inventing new stuff and just using existing stuff everybody else is also using in their games). Actually developing a product is something different than programming a product.

Thereby its important to know the inner workings of every system that you work with, because of the simple fact that you know what you CAN and CANNOT do.

CGTalk Moderation
08-07-2005, 11:14 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.