Forum Archive

Go Back   3D Realms Forums > General Topics > Software Forum
Blogs FAQ Community Calendar

Notices

 
 
Thread Tools
Old 07-17-2011, 12:04 PM   #1
creekist
Making a Game Engine
Say one wanted to make a game engine, like a doom game engine, the whole game being no larger than 13 megabytes.

How long would that take? Just one person writing it.

Also how much effort would it take? On a scale of 1 to 10.

Is it similar to writing a book? Because with book writing some authors take several years, but everyone knows you can write a long ass (pretty good) book in about a month or two. Or will writing a game engine basically just take 2 or 3 years?

I really would like to get started on this soon, I only have a very rudimentary knowledge of C++, having learned it only for a few weeks, but I know a bit of Perl and Python and have noticed that they are sort of similar.

Besides writing C++ code what else would I have to do? (something about directx, opengl, sdl) Is it possible to write the whole thing purely in C++?

Keep in mind I'm not computer savvy, so simple answers would help.

tyvm
creekist is offline  
Old 07-17-2011, 02:31 PM   #2
Inanimate Carbon Rod

Inanimate Carbon Rod's Avatar
Re: Making a Game Engine
Quote:
Originally Posted by creekist View Post
Say one wanted to make a game engine, like a doom game engine, the whole game being no larger than 13 megabytes.

How long would that take? Just one person writing it.

Also how much effort would it take? On a scale of 1 to 10.

Is it similar to writing a book? Because with book writing some authors take several years, but everyone knows you can write a long ass (pretty good) book in about a month or two. Or will writing a game engine basically just take 2 or 3 years?

I really would like to get started on this soon, I only have a very rudimentary knowledge of C++, having learned it only for a few weeks, but I know a bit of Perl and Python and have noticed that they are sort of similar.

Besides writing C++ code what else would I have to do? (something about directx, opengl, sdl) Is it possible to write the whole thing purely in C++?

Keep in mind I'm not computer savvy, so simple answers would help.

tyvm
Seeing as though you know next to nothing, making a new game engine would be all but impossible and time consuming. Even if you knew what you were doing designing a game engine from the ground up is extremely time consuming and difficult...

If you want to have an even somewhat manageable solo project (still expect to work on your game for 1+ years) you should design a game based on a free/open source engine.

http://en.wikipedia.org/wiki/List_of_game_engines
__________________
"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."
-Albert Einstein
Last edited by Inanimate Carbon Rod; 07-17-2011 at 02:35 PM.
Inanimate Carbon Rod is offline  
Old 07-17-2011, 03:05 PM   #3
Jiminator

Jiminator's Avatar
Re: Making a Game Engine
ignore him. You should be able to do it in a few weeks. I'd say go for it.
__________________
big badass nasty weapons here....
Jiminator is offline  
Old 07-18-2011, 04:15 PM   #4
MrBlackCat

MrBlackCat's Avatar
Re: Making a Game Engine
Is kind of like asking for Cliff Notes to flying a fighter jet in my opinion.
Think of it like this maybe... Ken Silverman who wrote Duke Nukem 3D's "Build" engine spent 3 grueling years doing it and he had already written/developed an entire 3D game before. (Kens Labyrinth)
It would be best to look at the source code for Kens Labyrinth, Wolfenstein 3D, and DooM ("simple" stuff) and see what you are up against.

I was given some code for a 3D Engine once between Wolf and DooM basically and I was amazed at its complexity... because it was so "simple" When I look at the code from these programs I always wonder how much it evolved. I can imagine a dozen ways programs can do tasks, but I have to admit, I doubt most people could have come up with engines that work as efficient as these.
That is part of why there are not that many engines out there.

I think you should try it just to learn something though.

MrBlackCat
__________________
YES! I do wear my Duke Xtreme t-shirt every day!* :)

*(Not really, sometimes I wear my Time to Kill t-shirt... like while I am washing my other Duke shirts for instance.)
:)
MrBlackCat is offline  
Old 07-18-2011, 04:30 PM   #5
Sang

Sang's Avatar
Re: Making a Game Engine
As a school project this year I wrote a (very, very) amateuristic, rudimentary and crappy "engine" for a little 2D game. While it worked, the structure was not modular at all and just sloppy and... well, crappy. But, it did teach me a few things about how one could possibly structure a game, things to avoid and some basic things about DirectX rendering.

Long story short: if you really want to get how to write things like this you first need better knowledge of the language you're gonna work in (I wrote that thing I mentioned in C#) and once you're confident enough I'd say start off with a more simple 2D project (1 extra dimension might not seem like much but it complicates matters quite a bit). Even for a 2D game... you do need at least some knowledge of how to work with data more efficiently. If you're not computer savvy or indeed savvy of the language at all I'd say you need to study that for some more time first.

What ICR mentioned could help you what actual game DESIGN is concerned but as far as I understand learning how to design a game is not quite your objective.

edit: also keep in mind there are things like XNA for C# which supposedly help in creating games. I haven't worked with it yet but I'm fairly certain that even with XNA you need to have a clue on what you're doing.
__________________
traB pu kcip
Last edited by Sang; 07-18-2011 at 04:34 PM.
Sang is offline  
Old 07-19-2011, 04:26 PM   #6
creekist
Re: Making a Game Engine
Aight I've decided to use a free open source engine to do the game instead.

I'm just wondering which one to use, I need one that does programming in C++. Or was written in C++. I'd also prefer the engine to also be able to do sound and input.

I just can't seem to be able to find one that fulfills those requirements. The annoying part is that there's Allegro, but Allegro is written in C, I don't want to learn C.

Then there's Blender and Panda3D, those use Python and crap, I know a bit of Python and Perl having originally learned those before C++ but I really don't want to revisit other languages. So if anyone has any ideas, many thanks!
creekist is offline  
Old 07-19-2011, 11:22 PM   #7
Jiminator

Jiminator's Avatar
Re: Making a Game Engine
C is the same as C++ with the fancy features removed.
__________________
big badass nasty weapons here....
Jiminator is offline  
Old 07-21-2011, 04:00 AM   #8
Crosma

Crosma's Avatar
Exclamation Re: Making a Game Engine
Quote:
Originally Posted by Jiminator View Post
C is the same as C++ with the fancy features removed.
C99 may be a tighter standard than C++0x, but there are way too many cooks on the latter project. They're going to turn C++ into Java without runtime optimisation and without platform independance, if they're not careful.

Also, writing a Wolfenstein-style engine in OpenGL/OpenAL isn't more than a week's work if you're lazy and don't know what you're doing.
__________________
(define love (lambda () (map conquer all)))
Crosma is offline  
Old 07-21-2011, 04:46 PM   #9
creekist
Re: Making a Game Engine
Quote:
Originally Posted by Crosma View Post
C99 may be a tighter standard than C++0x, but there are way too many cooks on the latter project. They're going to turn C++ into Java without runtime optimisation and without platform independance, if they're not careful.

Also, writing a Wolfenstein-style engine in OpenGL/OpenAL isn't more than a week's work if you're lazy and don't know what you're doing.
YAY!

Anyways I'm lazy and don't know what I'm doing. OpenAl is part of allegro right?

Thanks everyone for your input.
creekist is offline  
Old 07-23-2011, 10:36 AM   #10
Sang

Sang's Avatar
Re: Making a Game Engine
Quote:
Originally Posted by Crosma View Post
Also, writing a Wolfenstein-style engine in OpenGL/OpenAL isn't more than a week's work if you're lazy and don't know what you're doing.
By "don't know what you're doing", you probably mean "have never coded something like an engine before" and not "have no knowledge of the language you're gonna use whatsoever", right?
__________________
traB pu kcip
Sang is offline  
Old 07-23-2011, 10:54 AM   #11
creekist
Re: Making a Game Engine
hahaha close close

no i do know a little c++ (before that I did a little of perl and python)

but you're right I've never coded something like an engine before
creekist is offline  
Old 07-24-2011, 04:53 PM   #12
8IronBob

8IronBob's Avatar
Re: Making a Game Engine
Even before you learn your way through game engine development in C++ right away, I would learn XNA and C# first, this is a good way to get your feet wet and learn simple game engines right away, then once you've mastered C# and made a few engines within XNA, then you can move towards C++ and learn how to put together an engine totally from scratch on the system level.
__________________
PC Specs (a.k.a. "Galacticus Prime"): http://pcpartpicker.com/p/7Vk7FT
8IronBob is offline  
Old 07-25-2011, 12:10 AM   #13
Sang

Sang's Avatar
Re: Making a Game Engine
XNA is a baby toy. Yes, you can make stuff with it, but from what I've seen XNA completely dictates how you should lay out your code and just holds your hand everywhere. I don't believe that is the right way to learn things. Of course maybe XNA is totally advanced and I've yet to find that out in which case nvm this.

Personally I'd use a framework for C++ to make things a tad easier.. But XNA, not sure if want.
__________________
traB pu kcip
Sang is offline  
Old 08-07-2011, 11:40 AM   #14
8IronBob

8IronBob's Avatar
Re: Making a Game Engine
Tell you what... I've been reading up on the Doom 3 engine eventually being released. I'd look over that code once it's released, and see how Carmack put that baby together. That might give you an inside look over how an engine from the past decade has been put into code.
__________________
PC Specs (a.k.a. "Galacticus Prime"): http://pcpartpicker.com/p/7Vk7FT
8IronBob is offline  
 

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 06:39 AM.

Page generated in 0.14779902 seconds (100.00% PHP - 0% MySQL) with 16 queries

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

Website is ©1987-2014 Apogee Software, Ltd.
Ideas and messages posted here become property of Apogee Software Ltd.