Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#Actualshadowisadog

Posted 05 February 2012 - 11:44 AM


My goal is like what you said, to create an engine by creating a game and then having the reusable parts for later. That's what I mean by creating an engine I suppose.

The thing is, as a programmer you'll always end up reusing parts of your work. Whether you eventually want to bundle those parts into an engine, a framework, a library is a often mostly a matter of practicality.

Once you've made your first game, you'll end up with a bunch of source files. When you start working on your second title, you might refer back to that code and see if you can reuse some of it to save time. After you've copy and pasted it into your current project, you might realize that your old code can be improved significantly (reducing complexity, improving performance, making it more generic, etc).

After a few more games, you realize that this boiler plate code has become pretty static and instantly reusable over time. To save some of the hassle of importing source files, you compile it into a library that can easily be dragged into and out of any existing project. Perhaps after a while you have a created a bunch of libraries that more or less rely on each other, or are related because they all contain common functionality found in games. And you start calling it your engine.

Most of us don't even reach that last stage, mostly because by then you realize that using third party technology saves you enormous amounts of time and frustration. One of the reasons this very website no longer runs on custom software.

One of the most valuable assets of a developer is experience. So what ever you do, it can never be bad. But one thing that keeps people from gaining experience is losing their initial enthusiasm because they failed to meet their unrealistic expectations.

You're not missing out by using existing software. The more you know, the more you realize you don't know. There's always another layer: you might be an expert in using SDL/OpenGL and still know very little about the drivers or hardware it interfaces. I mean, if Richard Feynman can't even explain magnetism... ;)


Ugh I meant to upvote this, not downvote it. Can someone be nice and upvote it please? I hit the wrong button Posted Image . Apparently the software does not allow you to change your click if you misclick. The irony of course is not lost on me, but seriously why is the downvote button on the right? O_o .

Anyway I fully agree with the comment about experience. Failure is a great teacher, however it can be fairly demoralizing. We are not trying to shield people from "learning the hard way", so much as to encourage them to persue a path that might keep them from demoralizing themselves to a point of quitting.

If you jump in the deep end and nearly drown, chances are high that you might never swim again. But if you wade slowly in the water and work your way to deeper depths, you might realize that the water is not so bad.

#2shadowisadog

Posted 05 February 2012 - 11:37 AM


My goal is like what you said, to create an engine by creating a game and then having the reusable parts for later. That's what I mean by creating an engine I suppose.

The thing is, as a programmer you'll always end up reusing parts of your work. Whether you eventually want to bundle those parts into an engine, a framework, a library is a often mostly a matter of practicality.

Once you've made your first game, you'll end up with a bunch of source files. When you start working on your second title, you might refer back to that code and see if you can reuse some of it to save time. After you've copy and pasted it into your current project, you might realize that your old code can be improved significantly (reducing complexity, improving performance, making it more generic, etc).

After a few more games, you realize that this boiler plate code has become pretty static and instantly reusable over time. To save some of the hassle of importing source files, you compile it into a library that can easily be dragged into and out of any existing project. Perhaps after a while you have a created a bunch of libraries that more or less rely on each other, or are related because they all contain common functionality found in games. And you start calling it your engine.

Most of us don't even reach that last stage, mostly because by then you realize that using third party technology saves you enormous amounts of time and frustration. One of the reasons this very website no longer runs on custom software.

One of the most valuable assets of a developer is experience. So what ever you do, it can never be bad. But one thing that keeps people from gaining experience is losing their initial enthusiasm because they failed to meet their unrealistic expectations.

You're not missing out by using existing software. The more you know, the more you realize you don't know. There's always another layer: you might be an expert in using SDL/OpenGL and still know very little about the drivers or hardware it interfaces. I mean, if Richard Feynman can't even explain magnetism... ;)


Ugh I meant to upvote this, not downvote it. Can someone be nice and upvote it please? I hit the wrong button Posted Image . Apparently the software does not allow you to change your click if you misclick. The irony of course is not lost on me, but seriously why is the downvote button on the right? O_o .

#1shadowisadog

Posted 05 February 2012 - 11:30 AM


My goal is like what you said, to create an engine by creating a game and then having the reusable parts for later. That's what I mean by creating an engine I suppose.

The thing is, as a programmer you'll always end up reusing parts of your work. Whether you eventually want to bundle those parts into an engine, a framework, a library is a often mostly a matter of practicality.

Once you've made your first game, you'll end up with a bunch of source files. When you start working on your second title, you might refer back to that code and see if you can reuse some of it to save time. After you've copy and pasted it into your current project, you might realize that your old code can be improved significantly (reducing complexity, improving performance, making it more generic, etc).

After a few more games, you realize that this boiler plate code has become pretty static and instantly reusable over time. To save some of the hassle of importing source files, you compile it into a library that can easily be dragged into and out of any existing project. Perhaps after a while you have a created a bunch of libraries that more or less rely on each other, or are related because they all contain common functionality found in games. And you start calling it your engine.

Most of us don't even reach that last stage, mostly because by then you realize that using third party technology saves you enormous amounts of time and frustration. One of the reasons this very website no longer runs on custom software.

One of the most valuable assets of a developer is experience. So what ever you do, it can never be bad. But one thing that keeps people from gaining experience is losing their initial enthusiasm because they failed to meet their unrealistic expectations.

You're not missing out by using existing software. The more you know, the more you realize you don't know. There's always another layer: you might be an expert in using SDL/OpenGL and still know very little about the drivers or hardware it interfaces. I mean, if Richard Feynman can't even explain magnetism... ;)


Ugh I meant to upvote this, not downvote it. Can someone be nice and upvote it please? I hit the wrong button :( . Apparently the software does not allow you to change your click if you misclick.

PARTNERS