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++?

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.

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.

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.

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!

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.

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?

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.

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.

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.