TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How do I get started making Quake-like games from scratch?

12 pointsby Archioover 13 years ago
I just read a post on HN (http://news.ycombinator.com/item?id=3018539) that delved a little bit into the source code of Quake II. I was so moved by it that I almost cried- that's programming at it's finest. That's just working for long hours, just typing in code, and finally creating something amazing that millions of people use around the world.<p>How can I get into game development from scratch, just like John Carmack did?<p>I know about frameworks that can give indie developers a headstart (XNA and the like)- they're cool, but I <i>don't</i> want something that will give me a built-in engine and let me make a fully operational game in five minutes.<p>I want to start from scratch- learning from the basics of rendering and memory management in C to building a simple game engine, all independently. This way, building a game could be an incredible learning experience, mastering the details of a powerful language and being educated about game development more than reading articles could.<p>Is it even possible to start out like John Carmack did without a large background in games programming? I've done web development for years, but never anything like this, but I'm willing to work the long hours that it would take. Is there a book, ebook, blog, or other resource that could at least get me started on this mission? I appreciate any help you guys can give me.

5 comments

jeffoolover 13 years ago
There are plenty of books and blogs and sites about this. Gamedev.net is probably as decent a place as any to start. But I sincerely ask you to reconsider the level of importance you're putting on doing everything yourself. Unless you're okay with probably never finishing a project.
dackover 13 years ago
I would like to second jeffool's sentiment. I've gone down this path a bit (without really succeeding), and although it's cool to imagine what it's like to do all that really low level manipulation, it takes a REALLY long time to get anything satisfying out of it. Just doing basic 3D collision detection in a simple scene isn't trivial unless you have experience. Physics simulation is a whole beast on it's own, but pretty necessary to make a fun 3D type game.<p>Anyway, I would suggest picking a small area to fiddle with at a low level, and come up with a small project as a goal for learning it. Maybe just AI at first... text graphics, but create agents that wander in a virtual world. Or maybe just start with a basic 3D scene and try getting lighting going. Think about what seems the coolest to you, then just try to work that little part out and build a proof of concept.<p>I might try the Open GL books to get started with graphics. I would look around for books like these: <a href="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=pd_sim_b3" rel="nofollow">http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory...</a> (although I haven't read that one, so I can't vouch for it's quality).
评论 #3142213 未加载
bamyaziover 13 years ago
Having played with OpenGL, DirectX and XNA (which is really just a managed wrapper around DirectX as are other managed libraries such as SlimDX), I'd suggest that learning any one of the above is really as low level as you want to go - At a basic level they simply provide an interface to the graphics hardware by allowing you to create and manage the vertex/index buffers and shaders which you load up on your graphics card which then does all the work of transforming the lists of vertices into what you see on the screen. With any of these low level libraries you will still need to develop the 'engine' itself which will deal with scene management, lighting, ai, physics, animation etc. You can still have a load of 'fun' and learn a huge amount by writing things like your own deferred lighting engine (which is what i initially did, there are plenty of tutorials online and it's a good way of learning some of the vector/matrix algebra which you'll need and pretty satisfying when you get first get hundreds of lights on your models), Even if you use libraries for lighting/physics, you'll still need to learn HLSL/GLSL for shader programming which is where a lot of the cool stuff is being done these days especially with the advent of geometry shaders.
tobylaneover 13 years ago
So much physics and maths needed, e.g. <a href="http://en.wikipedia.org/wiki/Fast_inverse_square_root" rel="nofollow">http://en.wikipedia.org/wiki/Fast_inverse_square_root</a>
mikeatlover 13 years ago
I second the importance of reading Jason Gregory's Game Engine Architecture.