Jump to content
  • Advertisement
Sign in to follow this  
nutz

Spoilt for choice

This topic is 5471 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

hello everyone at gamedev. Before I start - I'd like tosay that this community rocks !!. Now my questions. I am new to game programming , but not new to programming in genral (doing that for the last 8 years, professionally for the last 2). I think I have a decent grasp of C, C++ and java. I read the faq and it helped a lot , but I still have 1 dielema. Which way should I go ?? 1) Study 3d graphic theory and concept first - then use a 3d API (OpenGl/Direct3d) - then move from there. 2) Use an open source game engine - Nebula / Ogre(for rendering only)/etc... 3) Write my own engine after I am done with (1) 4) none of the above. Just to mention that I am not trying to make a doom3/quake3/WorldofWarcraft clone. I just wanna get started... on anything that'll help me learn and understand game development. thanks

Share this post


Link to post
Share on other sites
Advertisement
Well, I'd really suggest you try doing some software rendering first - polygon rendering, then add shading, maybe look at raycasting and the like - these all teach the basics of 3D, and it's quite good fun to knock out!
It certainly gives you a good insight as to how the 3D worlds fit together, and I guess it'll help when moving on to a 3D API that does it all for you - all the tricks you learnt to crunch out fast 3D worlds in software can still be used to get an efficient engine out, as the fact that it's all hardware accelerated could make you lazy.
Best of luck!

Share this post


Link to post
Share on other sites
I agree, covering the basics first will give you a good handle on things. I'd say that developing your own engine at least once is a good idea as well - not anything highly advanced, probably a very simple engine that you can get up and running relatively quick, as this will put you in a good position to write your own more powerful engine, or if you choose to, it will make it easier for you to understand how a pre-existing engine works.

Share this post


Link to post
Share on other sites
Software renders are quite hard and require lots of maths ... sure you'll learn heaps but when starting out you want something to work quickly and a software rendered won't.

I'd say start with something like SDL and write some good 2D games - you can learn heaps form something like tetris, archanoid or even a platform but they're not soo big that you'll give up half way though. Making something you can finish is a great idea, and gives you something achievable to aim for ... so I say scope out a smallish project to start with then finish it. Allegro or SDL are great for that type of thing. And if you use SDL its a pretty simple step to go from that to OpenGL stuff and start writing 3D apps. You'll be supprised exactly how much stuff is the same! The game loop, input handling, image loading, sound mixing all work off exactly the same concepts.

So I'd say write your own game (don't worry about a game engine - thats a big project for when you've got everything already down pat), keep it simple and get it finished. Useing someone elses engine could be good but I've always found it way more enjoyable to do it myself.

Share this post


Link to post
Share on other sites
Quote:
Original post by kaysik
Software renders are quite hard and require lots of maths ... sure you'll learn heaps but when starting out you want something to work quickly and a software rendered won't.


OK, maybe I'm just a freak. One of the first graphical programs I wrote was a raycaster, and that just used very basic trig and a few divisions. OK, it was slow, untextured, and fisheyed, but it only took a couple of hours [grin] - from there I went on to spinning wireframe cubes then flat shaded solid cubes.

I was answering the question in terms of starting 3D, not starting games/graphics programming; I had assumed that "decent grasp of C, C++ and java" that nutz had already had some experience and was just about to look into 3D. I guess the most important thing in 3D maths is vector maths - ray/plane intersections, vector normals &c - these should be covered in an A Level maths textbook, and aren't too trikcy to get your head around.

Share this post


Link to post
Share on other sites
thanks for all those tips everyone !! Benrys, how do I do software rendering - is it by using some kind of API or write it all down from scratch (sorry if this sounds dumb, but i have absolutely no idea here). Or is it by using some tool ?

Share this post


Link to post
Share on other sites
Software rendering is basically plotting pixels and lines to create a 3D world.
Take these, for example.
They're javascript, so no fancy API calls here!
The Windows API does have basic 2D functions - polygons, lines, pixels - built in, so you can use those. I tend to work in VB, so all I have to do is Me.Line(x1,y1)-(x2,y2),Colour and that's it!
The thing about software rendering is that you have to do it all from scratch - but I find this a lot easier than mucking around with triangle strips and the like in DirectX!

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!