Have you made a game engine

Started by
78 comments, last by Nathan2222_old 10 years, 3 months ago
Been searching google for things like "my 3d game engine project" to see already created engines and how long it took but no new results so i thought to ask here.
I just wanna know how long it took to get the 3d game engine to a usable state (years/months). How many/what libraries you use (ogre, fmod, directx, physx, havok, qt, cegui etc.) and if c++, which language
Thanks :).

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

Advertisement

It will be extremely variable, because firstly there's a lot of variables (team size, full-time/part-time, experience, expectations, etc), and secondly there's no clear definition on what an engine is.
One might have a full editor for making every kind of content, another might have exporters for common 3rd party tools, another might have no tool support at all.
One might support a variety of scene/viewpoint types, such as overhead, planetary and indoor/corridor, others might support just one.
One might be extremely customizable, another might only work for a certain genre.
One might be mature enough to have had several games made with it, another might've never had a game made with it.

A while ago, I spent about 4 years (extremely part time) making a general purpose engine in C++, using Horde3D (a renderer built on OpenGL), Bullet, fmod, RakNet and some others. It was written in a very "modern C++" style, was aimed only at C++ programmers, and had a very poor toolchain. I made a few prototype games with it...

Recently, I've spent 1 year (full time) making a new general purpose engine in C++, using Direct3D, PhysX, fmod, LuaJIT and some others. It's written in a mixture of "modern C++" and "C with classes" styles, is aimed at good programmers, but also has an artist-friendly toolchain centred around Autodesk Softimage (XSI). It's being made specifically for one single game that's currently in development, but is flexible enough to be reused (some components are open-source, and other components are being licensed as stand-alone middleware).

At work we have been making a C++ 3D engine which favours portability above all else. The technology used varies per platform (The only common part is OpenGL).

Some of the tech used for desktop platforms is Xlib/glx, libpng, openal, libogg/libvorbis.

The consumer platforms (Android / iOS) use the underlying platform's stuff but wrapped with C APIs similar to the desktop counterparts to minimize #ifdefs and other changes to the core games.

All the model loading, animation and physics is bespoke and written in C (with C++ wrappers) so is perfectly portable to everything.

To get it up to a usable state ready for games it took two of us a couple of months. It is unlikely to be as advanced as Hodgman's but as an "indie" studio, we currently need to battle with tablet / phone support and all the gimmicky short lived technology that it brings.

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Depending on what resources you use, you could bust one out from the ground up in six to eight months, but if you really wanta great one, I'd say you have a good 2014 goal for the year :P

EDIT: if you're just building one for one game and not super rigorous, you could build one in a few months.
Great.
@aggie: It'll be for most of my games after i'm done.
@hodgman: Great to see you made a game engine using a bunch of what i want to use too (c++, lua, physx, directx, fmod) ... and in a year.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

Ask me at the end of January about it (you can PM), if you are still interested. I am developing an open source game engine, and it is not very fancy, but it is 3D and a lot of parts are made from scratch. I might use RakNet, though, that is a possiblity. I haven't made any multiplayer features in it yet. Because it is open source (GPL, to be specific), no one will really use it, but you will be free to if you so choose. I am using OpenGL and SDL for pretty much everything else. It is being written in pure ANSI C, functional-style (not OOP-style). I said that to describe it to the reader. I want to start no debates, I beg of you. I might post pictures and such on a different thread, if I am not too embarassed.

@flyingsatin: The gpl license (...). If you are making everything from scratch, i'll like to know about it because i might make some things from scratch for the engine.
With the features (not the libraries) i plan on putting in the engine(s), it is unlikely the source code will be available or it'll be free but they'll be inexpensive (big dreams) and no royalties (don't like'em).

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

@flyingsatin: The gpl license (...). If you are making everything from scratch, i'll like to know about it because i might make some things from scratch for the engine.
With the features (not the libraries) i plan on putting in the engine(s), it is unlikely the source code will be available or it'll be free but they'll be inexpensive (big dreams) and no royalties (don't like'em).

Just fyi, if any part of a codebase uses GPL, the entire codebase must be licensed under GPL or equivalent. This means, if you use GPL code in a library, game, or engine, you don't have a choice of whether it's opensource or not: It is legally required to be opensource by the license.

Also note: LGPL is different than GPL, and is more lax in some ways, permitting LGPL in closed-source software, as long as the LGPL code is dynamically linked instead of statically compiled in (though there is some discussion about permitting static compiling also). Basically, the idea with LGPL is that any changes to the LGPL part of the project needs to be re-shared with the world, but any code that uses the LGPL libraries don't have to be shared. smile.png

There's other nuances there, but I just wanted to make sure you understood that GPL doesn't give you the option of saying, "it is unlikely the source code will be available or free" if you decide to use GPL code in your project. mellow.png

I read somewhere that couple of experienced programmers can create a 3d engine from scratch within two months. Hope that answeres your question. But the for starters it maky take longer. Basically if the objective of a 3d engine is to only create a 3d pong, then begineers can make it in 3-4 weeks.

@flyingsatin: The gpl license (...). If you are making everything from scratch, i'll like to know about it because i might make some things from scratch for the engine.
With the features (not the libraries) i plan on putting in the engine(s), it is unlikely the source code will be available or it'll be free but they'll be inexpensive (big dreams) and no royalties (don't like'em).


Just fyi, if any part of a codebase uses GPL, the entire codebase must be licensed under GPL or equivalent. This means, if you use GPL code in a library, game, or engine, you don't have a choice of whether it's opensource or not: It is legally required to be opensource by the license.

Also note: LGPL is different than GPL, and is more lax in some ways, permitting LGPL in closed-source software, as long as the LGPL code is dynamically linked instead of statically compiled in (though there is some discussion about permitting static compiling also). Basically, the idea with LGPL is that any changes to the LGPL part of the project needs to be re-shared with the world, but any code that uses the LGPL libraries don't have to be shared. :)

There's other nuances there, but I just wanted to make sure you understood that GPL doesn't give you the option of saying, "it is unlikely the source code will be available or free" if you decide to use GPL code in your project. :mellow:

That's why am not using any gpl stuff. Gonna pay for qt (lgpl)

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

This topic is closed to new replies.

Advertisement