Jump to content
  • Advertisement
Sign in to follow this  
EuphoricRage470

Help! Frustrating beginning!

This topic is 2911 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, all. I'm new to the game development scene, but I am willing to invest myself obsessively to it.

I guess some background is necessary: I hail from the math community, spent my highschool years practicing my problem solving skills, learning upper level math for fun, and solving every "challenge" problem I could lay my hands on. So I entered Universtity thinking that I wanted to be a mathematician, and have learned and done more math than I ever dreamt I'd do. I, unfortunately, do not see my life revolving around proving theorems. (although I was rather pleased when I was able to submit a research result of mine, hopefully to be published)

So I took a programming course. An introductory one in which we didn't learn any hardcore languages or APIs (it was in Matlab), but I was in shock at how much I enjoyed solving problems of the algorithmic nature. I could get the computer to do whatever I wanted, and it really just came down to my cleverness.

So from there, I started learned that game programming was probably among the more challenging (and mathematically-oriented) fields of programming, so I thought I would try my hand at it. I ended up learning C/CPP pretty quickly (mostly by inventing algorithmic problems and writing code to solve them as efficiently as I could), but then I hit a *huge* wall. Trying to get into game programming with C++ seems to involve a whole lot of set-up before you can *do* anything. I feel gross copy-and-pasting the skeleton code for Windows programs.

But my real question is this: What tools should I equip my intellectual toolbox with so that I can sit down and enjoy the process of solving problems in the context of making a 3D engine/game? I feel like the fun stuff is in coming up with new 3D algorithms to do neat lighting, writing awesome particle code, fine-tuning algorithms for efficiency, learning the hardware and how best to use it, doing efficient physics simulations, etc. But all I've seen so far is "Here's how to make a Win32 Window" *code dump*

Help? Books? Anything? (money is not an issue -- I just sold my Uni textbooks and have several hundred bucks to play with)

Thanks,
--EuphoricRage470

Share this post


Link to post
Share on other sites
Advertisement
I guess figure out what features you would want in a Game and find good APIs to implement them with or write the code yourself

Share this post


Link to post
Share on other sites
Quote:
Original post by EuphoricRage470I feel gross copy-and-pasting the skeleton code for Windows programs.


Use a cross platform library like SDL or SFML..
For 3d graphics OpenGL or DirectX..

Have you done any graphics programming? I assume getting something besides text on the screen is a requirement unless you're working on a text-based game

Share this post


Link to post
Share on other sites
Hello,

I have written a few programs using the OpenGL API (rotating triangle, rotating cube), but unfortunately the only parts of these programs that I could say were "mine" were the GL draw calls. The windows/WGL stuff was more or less from DevC++'s GL program template.

I would like to be able to make a "game" (really, I'd like to be able to load a world made of simple polygons and be able to walk around it). And then from there just focus on learning 3D rendering techniques (lighting, shadowing, etc...all the neat stuff that I see in modern games).

Is this a reasonable goal, or am I simply expecting too much, too quickly? If so, what should I be working on implementing at this time?

EDIT: I would be very happy trying to implement a fully-functional Jazz-Jackrabbit 2 type engine and perhaps spending the time implementing a full game. I know this isn't graphics programming per se, but I am sure there are a lot of challenges to solve there (to get it running fast on, say, a Pentium II with an nVidia TNT level card). What books/tools should I have to pursue such a project? (I would like to devise all of the actual algorithms beyond drawing images to the screen by myself)

Thank you immensely,

--EuphoricRage470

Share this post


Link to post
Share on other sites
A 2d game could be handled pretty well by SDL.

Once you have SDL initialized the rest of your code is basically going to be in rendering and updating the game. To make a 'full game' you're probably going to do more than that (such as saving, loading, etc)

So I imagine it could all fit pretty easily in a setup like:

int main()
{
init();
while (gameRunning) {
update();
render();
}
return 0;
}


1. figure out what you need to initialize
2. figure out what you need to update (and what input you need to handle)
3. figure out what/how to render what you want to render

and that's about it.

It's a very achievable goal.
I had the same goal of just being able to move in a world with objects and while it was only a couple weeks maybe to get a tutorial working, it was less than a year for me as a new programmer to come to the point where my code is essentially all written from scratch.

Share this post


Link to post
Share on other sites
Quote:

Is this a reasonable goal, or am I simply expecting too much, too quickly? If so, what should I be working on implementing at this time?

It seems to me that you want to implement a simple 3D demo from scratch rather than using a framework like say Ogre3D. I'd say there is 2 ways to get a demo up and running, one is to read a book about creating a 3D engine from scratch. The other is to start with some simple online tutorials and try to merge what you learn into a simple demo. If you feel comfortable writing C/C++ it should be doable.

The only book I have read that actually takes you from drawing pixels and lines, to rendering triangle based models in a 3D world is Tricks of the Windows Game Programming Gurus

I can't recommend this book as it is way to old to be relevant today, but it did show how it all started, and how you start with the basics (pixels, lines, triangles) and build your way up from that. These days, rendering primitives like that is pretty meaningless as both DirectX and OpenGL has APIs for it. Besides, I'm not sure DirectX and OpenGL will even allow you to work with a raw pointer to the video memory anymore.

About the WinMain boilerplate code, don't let it shake you up. Its ugly yes, but once you got it done just stuff it into a function/class and forget about it for a while.

Taking your skills and expectations into consideration I really can't be of much help (I'm not the math kind of guy) other than to suggest you be as specific as possible. Its the best way to get response around here.

Cheers

Share this post


Link to post
Share on other sites
Quote:
Original post by Gage64
Quote:
Original post by pulpfist
The only book I have read that actually takes you from drawing pixels and lines, to rendering triangle based models in a 3D world is Tricks of the Windows Game Programming Gurus


That book has a newer 2nd edition (which is almost identical), but either way, it doesn't really cover 3D. You probably meant Tricks of the 3D Game Programming Gurus.


Your almost right, what I did have in mind was probably a mix between Tricks of the Windows Game Programming Gurus and Black Art of 3D Game Programming: Writing Your Own High-Speed 3D Polygon Video Games in C

Quote:

Are the LaMothe Tricks books worth getting for theoretical reference? Or are there better texts on low-level 3D theory out there?

Black Art of 3D Game Programming is an interesting read but LaMothe's books are very pragmatic and practical, written primarily for beginners who wants to get their feet wet, or even soaked. However, if you are looking for a theoretical reference about 3D theory you should be able to do better though.

Share this post


Link to post
Share on other sites
For theory, you probably want Real Time Rendering. Also, see the book's website, since the author lists other books you may want to learn from.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!