What do I need if I want to make a 3D game without a complete game engine?
-
Let's say I plan on using a graphics library (Irrlicht or Ogre), SDL for input, and probably CEGUI for convenience. Currently looking into studying these libraries individually, but are they enough? What else do I need? (For Windows btw) Update: I want to dive deeper into game programming. Not just relying on an engine's scripting language. I want to break things down little by little and I thought it would be time to take baby steps into making some kind of Frankenstein of libraries into a game and eventually...an engine.
-
Answer:
You need a plan. This means you have to know what your game is down to a reasonable breakdown of every system you will need to make the game. Then you need to figure out which of these systems you can get out of frameworks or libraries and which you need to write yourself. This is pretty game design dependent. There's some obvious ones like rendering, asset pipelines, animation, input, audio, physics, sound, networking and particle systems, and there's also all sorts of things people forget about like metrics, serialization, and asset streaming. And you need to figure out your abstraction layers. How are you going to construct your interfaces so that the different pieces you're cobbling together into an engine interoperate cleanly. The last thing you need is to have to rip the whole thing apart to replace one piece that just doesn't work as well as you like. You're going to need a way to construct your game levels, preferably one that allows you to iterate between edit and test quickly. It really helps if you have a nice graphical tool for profiling, but getting one to work with all your different cobbled together pieces isn't easy. I've been down that road and don't like it. I can understand the desire to go deeper, but frankly I'd rather make games than game engines. One of the best books out there for this is Game Coding Complete, I think it's in the 4th edition. Noel Llopis is a good person to follow on twitter and blog to read, he's one of those guys who loves to build things up himself and writes about it well.
Daniel Super at Quora Visit the source
Other answers
I've been down that path a few times, and from a learning experience point of view I think it's a great idea. However, I would discourage you from aiming to create a game engine without knowing what kind of game you're making. Game engines only exist to support making games. All of the features you need to implement in the game engine becomes a lot simpler if you know what kind of game you are going to make. I spent about 2 years making a "Frankenstein game engine" as you call it from various other libraries. Along the way I kind of forgot what kind of game I was making and wasted a lot of time implementing features that I never used. At best, all it could do was some cool tech demos. Then one day I quit the project and refocused on making much smaller 2D games instead of 3D games and everything has looked better ever since. I still like to cobble together my own game engines from libraries but I do it only with the intent to get features working in the actual games I'm making. So in short, I don't think you are going to be able to answer this question until you ask yourself some others. What kind of game do you want to make? What platforms do you want to support? (e.g. Windows, Android, iOS) What programming languages are you most familiar with? And so on.. answer those questions and the answer to this one will be more obvious.
Dylan Wilson
I honestly prefer to make games using the most I can from the tools I have. However it DOES have the inconvenienve that sometimes you can't develop that GREAT idea you have but that just can't be done with the scripting API your high-level engine gives you. So, you first have to setup your mind, do you want to make a game or a game engine?. This is because if you want to make a game but you can't find that functionality you got to have, doesn't mean you have to make a new complete game-engine. In that case, you just had to twitch a little bit the guts in your favorite engine (btw, you'd need an open-source engine) and use the other things at your comfort. But, if you'd like to build a new game engine, then I would suggest you check 's answer, but bear in mind, you won't be making a game you will be making a game engine and that's... well.... a pain (in my opinion). I used OGRE and CEGUI around 6 or 7 years ago and it is great for learning (actually I would highly recommend it for learning how a game works on the inside without having to build an actual engine), but I haven't use it in a long time because now there are other great engines in the market like Unity3D and UDK that lets you focus on your game and not in its guts.
Hendrys Fabián Tobar
Well if you finish your game, and your code is modular, reusable, and object oriented, then ultimately youll have a separate component for rendering, gameplay, File IO, controllers, sound, networking etc. That is essentially a game engine. The flexibility and feature set will be fewer than a fullblown commercial engine but it'll be more suited for and lightweight for your game. You can write all modules on your own and have more control on your code , which is great if you want to implement a very different game that current engines do not support.But in general, there are game engines out there for most kind of games already, so its a bit of wheel reinventing. The newer engines are very very easy to use if you're familiar with game-development jargon. That being said, the amount you'll learn by implementing your own is obviously much more than you can by reading about engines. If thats what you're looking for, building a small 2D game might be a great start. Ogre3D is already a full fledged rendering engine (IMO the crux of a game engine). If you want to learn more, you can start by writing your own wrapper around OpenGL. Thats the fun part of an engine. You can also write your own networking layer if it's a LAN based game. If you go about integrating libraries, you'll only get good at integrating libraries.
Shridhar Ravikumar
Related Q & A:
- What should I do if I want to become a chef?Best solution by Yahoo! Answers
- I want to make a video from "Windows Movie Maker.Best solution by Yahoo! Answers
- What should I study if I want to be a flight attendant?Best solution by Yahoo! Answers
- What do I need if I want to print shipping label online?Best solution by usps.com
- I want to make a longboard, what type of wood should I make it out of.Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.