Engine Programming

Started by
23 comments, last by Servant of the Lord 13 years ago

As others have pointed out, why reinvent the wheel. For 2d platformer there are the HGE or Löve engine. Both are very good. Just recently checked them out.


But the whole point of creating things is to learn. You should only use an engine if you can code your own. This is almost the same as saying, just use Game Maker instead of learning c++ and OpenGL/Window system because it is easier.
Advertisement
Depends on what your end goal is. If you want to get a game made as quickly as possible, an existing engine plus content generation tools are the way to go. On the other hand, a lot of the skills you walk away from the project with are suited to that specific framework.



[size="2"]Currently working on an open world survival RPG - For info check out my Development blog:[size="2"] ByteWrangler

Write Games, Not Engines


As others have pointed out, why reinvent the wheel. For 2d platformer there are the HGE or Löve engine. Both are very good. Just recently checked them out.


Two thoughts on that:

- If people weren't reinventing the wheel, our cars would still have stone or wooden wheels. Yes, the chance that you will come with something better than what already is out there isn't such big, but it still exists.

- When someone decides to make a game, his primary goal does not have to be to have the game done to be able to play it or share it. His primary goal can be to make the game. That can be the fun for him, to create the game, including his own engine or whatever. And actually finishing the game doesn't have to be a crucial part of it.

And a bit to that article:
So my advice to you, if you’re trying to write an engine, is: Don’t. No matter what your reasons are — it doesn’t matter if you’re writing an engine so you can write your dream game, or if you’re writing an engine because you think it will be a good learning experience, or any number of similar reasons. They’re all wastes of time.[/quote]
So writing a game engine isn't a good learning experience? Yes, it might be not the best learning experience about "how to make good games". But it certainly is a good experience in more general meaning.
It sounds really mean - I don't care how good reasons for making an engine you have, you definitely are wrong and I am right when I say that you shouldn't even try to make your own engine. No matter how much you in fact want to make an engine and not a game because you feel more like a programmer and not game maker or whatever.

[quote name='phantom' timestamp='1301252808' post='4791043']
Write Games, Not Engines


As others have pointed out, why reinvent the wheel. For 2d platformer there are the HGE or Löve engine. Both are very good. Just recently checked them out.


Two thoughts on that:

- If people weren't reinventing the wheel, our cars would still have stone or wooden wheels. Yes, the chance that you will come with something better than what already is out there isn't such big, but it still exists.

- When someone decides to make a game, his primary goal does not have to be to have the game done to be able to play it or share it. His primary goal can be to make the game. That can be the fun for him, to create the game, including his own engine or whatever. And actually finishing the game doesn't have to be a crucial part of it.

And a bit to that article:
So my advice to you, if you’re trying to write an engine, is: Don’t. No matter what your reasons are — it doesn’t matter if you’re writing an engine so you can write your dream game, or if you’re writing an engine because you think it will be a good learning experience, or any number of similar reasons. They’re all wastes of time.[/quote]
So writing a game engine isn't a good learning experience? Yes, it might be not the best learning experience about "how to make good games". But it certainly is a good experience in more general meaning.
It sounds really mean - I don't care how good reasons for making an engine you have, you definitely are wrong and I am right when I say that you shouldn't even try to make your own engine. No matter how much you in fact want to make an engine and not a game because you feel more like a programmer and not game maker or whatever.
[/quote]

You took that quote out of context. Here is the entire quote:
[font="Times New Roman"][color="#FFFFFF"]So my advice to you, if you’re trying to write an engine, is: Don’t. No matter what your reasons are — it doesn’t matter if you’re writing an engine so you can write your dream game, or if you’re writing an engine because you think it will be a good learning experience, or any number of similar reasons. They’re all wastes of time. You can sit down and write a game without writing a pre-written engine, and in fact this is very often the better approach, regardless of why you want to write an engine. The entire development process goes much more smoothly if you are focused on writing a game instead: a game is much easier to identify requirements for, much narrower in focused, much more rewarding when finished, and much, much more useful.[/font][/quote]
...which clearly states exactly what the entire article is trying to get across: write games, which you can then refactor into oh, say, an engine! Instead of writing an engine upfront thinking that is "how it's done" and then working around the horrible quirks that are a result of a poorly designed engine. Or hell, you can just skip the entire thing all together and use something that already has been written. Point is, there is no reason to write an arbitrary engine to fit some imaginary requirements (and they are just that, imaginary, until you know what that particular genre requires of a game engine!) when you could be spending time writing a game instead! If all you want is an engine, fine, go ahead. We're not stopping you from wasting your time. But why not spend it wisely where it matters? Experimenting, researching, writing games. The "engine" will come naturally after you've done those things :)
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
I admit that I misunderstood the article a bit (frankly, I didn't read it thoroughly the first time). I thought it was about using existing engines and making a game.

So, the author is saying that you shouldn't make an engine just to have an engine - and to make the engine "blindly" without actually building it for, and together with, a particular game. He says that it is prefered to make a game and an engine will come as a "side effect". I agree with that.

But it sounds that Stefanot actually wants to make a game, not just an engine. It sounds (I may be wrong of course) that he wants to make his game and his little engine for that game, not a fully featured engine which he would LATER use for his game.

And if you don't want to hard-code the whole game (alhough it is also possible and IMHO it's a good start if you are new to 3D programming for example) which would make a hard-to-read, hard-to-expand and almost-impossible-to-reuse code, you simply have to make an engine. Although here I must again agree with the article, specifically with its beginning, that the term "engine" is not so unambiguous.

But the whole point of creating things is to learn. You should only use an engine if you can code your own. This is almost the same as saying, just use Game Maker instead of learning c++ and OpenGL/Window system because it is easier.


While we're at it, why not use assembler instead of higher level languages? I mean, if you can't create your own programming language, why use C++? ;)
We're all standing on the shoulders of giants and we should make the most of it. And constant reinventing of the wheel is definately not the answer, that's not what progress is about.
Looks like i was totally misunderstood, I am making the engine alongside the game, I'm not just making the engine alone... The fact that got all of this started was that i said that i wanted to make it flexible and reusable, I think that's the goal of every programmer when they write software or at least it's my goal everytime i write software, I don't honestly care if you think it's too hard, I know it's hard, so what? I like challenges, and I really do. I'm not full of myself or anything like that, else i wouldn't be here...

Also I do it because it's fun, my goal is not only to make a game (i would have used XNA or game maker to just make a game quick), my goal is also to make it nearly from scratch, it's a challenge, it's strange that noone really understands that sometimes you just wanna do something because it's fun and/or challenging, not just to learn or to produce something, and by the way, I am learning a lot from this, I'm doing mistakes, correcting them and I'm understanding more and more every day about how games really work.

I posted here (honestly) because I wanted to join a gamedev community, I rewrote most of the engine and got collision working, I'm currently always working on the engine/game when i'm at home and yea... it's fun smile.gif

Write Games, Not Engines

You might want to give that a read...

Hi, I read through that article and I understand it completely. I've been wasting my time trying to figure out the ugly innards of OpenGL 4.1 and Direct X 11 with no real sense of achievement.

I didn't understand the last part of the article however. Do I choose a pre-existing engine such as UDK or Unity and write a game or make a game from scratch building on the foundations of the game engine as needed?

Hi, I read through that article and I understand it completely. I've been wasting my time trying to figure out the ugly innards of OpenGL 4.1 and Direct X 11 with no real sense of achievement.

I didn't understand the last part of the article however. Do I choose a pre-existing engine such as UDK or Unity and write a game or make a game from scratch building on the foundations of the game engine as needed?


Both ways are perfectly valid. Since the article article attempts to encourage a shift from engine-first development to writing games, their suggestion is more of the second option. Write a game and get the next one running on some reusable parts of the first one. And so on, until you end up with several reusable systems that you can bundle together and call them an engine. However, unless you want to challenge yourself or are really hell-bent on writing an engine, it's probably better to pick an existing engine, with some kind of track record and community, and use it to make great games.
Sometimes trying to reinvent the wheel is very informative, because even if you don't end up inventing a BETTER wheel, you will know how to BETTER USE the existing wheels.

This topic is closed to new replies.

Advertisement