🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Developing my own game engine vs. using a commercial game engine

Started by
99 comments, last by GalacticCrew 4 years, 10 months ago

My another thought, which comes from my background as a support programmer, is 'are you able to support your own code' ? 

It's quite easy to write code. However once it is created, you need someone to look after it. I mean, there will be bugs and issues, and you need to resolve this. This will take effort. So I think you have to take this into the consideration whether you're using an in-house engine or someone else's.

Using commercial engine means if there's an issue, someone will (might?) fix it for you. Of course it depends on the engine developer, bug can be a feature too, or you're holding it wrong :P. Your issue can be in the multiple-year-long waiting list, who knows?

 

http://9tawan.net/en/

Advertisement
24 minutes ago, mr_tawan said:

Using commercial engine means if there's an issue, someone will (might?) fix it for you. Of course it depends on the engine developer, bug can be a feature too, or you're holding it wrong :P. Your issue can be in the multiple-year-long waiting list, who knows?

That's a very good point! I got very positive feedback from players, because I always fix all bugs as soon as possible. Normally, a reported bug is fixed within few hours. This include problems with the engine. I can't be that fast if I use an engine that are just DLLs. If I have access to an engine's sources I can fix it by myself and ask the engine's author to include my pull request.

 

41 minutes ago, Gnollrunner said:

That's kind of a dilemma for me. I really don't need or want to implement animation software, lighting etc. Ideally I would use half an existing existing engine.

Have you checked other open source engines? From what I've read so far there are several persons even in this discussion that have developed their own engines.

 

54 minutes ago, JoeJ said:

As you often mention your joy implementing things like skinning or soft shadows, i repeatingly get the impression you develop your own engine mainly because, honestly you just enjoy this?

I enjoy creating the game engine and the creative process of creating a game. Oh, I forgot: I also enjoy getting my profit from Steam, Green Man Gaming, etc. at the end of a month. ?

7 minutes ago, mr_tawan said:

My another thought, which comes from my background as a support programmer, is 'are you able to support your own code' ? 

It's quite easy to write code. However once it is created, you need someone to look after it. I mean, there will be bugs and issues, and you need to resolve this. This will take effort. So I think you have to take this into the consideration whether you're using an in-house engine or someone else's.

Using commercial engine means if there's an issue, someone will (might?) fix it for you. Of course it depends on the engine developer, bug can be a feature too, or you're holding it wrong :P. Your issue can be in the multiple-year-long waiting list, who knows?

 

Once I asked a teacher, why we use yet another million lines of code to test for bugs in our code....aren't millions of lines of code introducing new bugs?
He told me: "You should unconditionally trust in the testing tools, the same way you unconditionally trust in Dot Net"
So basically only thing i am allowed to doubt of, is me myself. The other coders are super mega humans who never write bugs.

I would suggest you to believe more in yourself and your own coding. At least here, in Gamedev, I see very knowing people who could answer your questions and help you fix your bugs, and they could do it even earlier than those engine developers.
If you don't have to hide your source. And if you can formulate well your questions(not like: "here i dump 5K of code, what is wrong with it?"), you could build an engine with the help of the gamedev community.

I am still talking about writing an engine for your own use. It is pretty hard for a single coder to write an engine that people would use over the other already available alternatives. You should have a sandbox, a bug reporting system, forums etc.

7 hours ago, NikiTo said:

When people have to program a whole game by themselves, aren't they in a natural way creating their own engines(kind of)?

Furthermore, if somebody has this goal in mind, he could build a game plus an engine almost simultaneously.

Yes. This was the normal thing before commercial engine licensing became a thing. When you say "engine" nowadays, people picture the Unity or Unreal editor GUIs... but back in the day, it basically meant the massive framework that had been built up underneath any one specific game.

Once you'd made one game, and were about to make another one, you copy the first game, delete all the parts you won't need, and start making the second game from there. The parts that you've kept, are your "engine". This kind of practice still carries on today at a lot of game companies! 

Early commercial engines, such as Quake or Doom, were never meant to be commercially licensed engines! People went to Id software and begged to buy the code, and they laughed and said "sure, for a million dollars", and people actually paid them... They became a commercial engine provider by total accident. However, they still didn't bother trying to make general purpose engines. Quake 2 and Quake 3 were rewritten mostly from scratch with the specific needs of those games in mind. It just so happened that Quake 1/2/3 were generic enough as FPS games that everyone else wanted to use them as an "engine", so Half Life, Medal of Honour, Call of Duty, etc were born out of Quake by accident too... 

If you're making an engine, this is exactly what you should be doing. You should have a list of requirements for the game that you're making and then build ONLY engine features that are actually required for that game. Any other method will put you on the path of writing engine code for 6 years and still not having a game. 

5 minutes ago, Hodgman said:

If you're making an engine, this is exactly what you should be doing. You should have a list of requirements for the game that you're making and then build ONLY engine features that are actually required for that game. Any other method will put you on the path of writing engine code for 6 years and still not having a game. 

This is actually what I am doing right now. I wanted to make my game look nicer, so I added Soft Shadowing an better gloomy laser effects to my engine. The code is so generic that it is used in any 3D game using my engine, if you turn on the shadow or gloom effect switch. For my second game, I needed support for background images in my user interface controls and 2D sprite animations, so I added this support. Again, it is so generic, that it can be used by any game. The third game will feature water, smoke and fire effects. So my game engine gets bigger with each of my projects.

2 hours ago, GalacticCrew said:

I wanted to make my game look nicer, so I added Soft Shadowing an better gloomy laser effects to my engine. The code is so generic that it is used in any 3D game using my engine.

I think you have your answer to your original post - the stance you've taken is that you want to expand on your library and engine, while acknowledging that other engines in the market might have more than your engine has at the moment, but you have all the skills you need to implement solutions to any challenge, and time is not a major concern.

For someone new to game development reviewing this thread, i think the important take away from the comments here is that the first and foremost concern should be making the game. If you're building your own engine - build only engine features that have a purpose in the game which you appear to have done successfully, and if you're using a canned engine - be mindful that you have less control over the way the engine runs and future changes that may be made. Either way, design and develop with the game in mind.

To deviate from the commercial engine "to-be or not-to-be" conversation slightly, what is your approach to game design? do you formalise your design documents, do you have process flows mapped out, decision trees etc... or do you sort of just wing it? I've been trying to think of ways to better document my own thoughts and simply havent found anything that sticks.

4 minutes ago, Stragen said:

For someone new to game development reviewing this thread, i think the important take away from the comments here is that the first and foremost concern should be making the game.

It really depends on your circumstances and what you want to do.

If your primary objective is to ship games, then sure, a pre-rolled engine is generally the way to go.

But if you are like me, shipping games doesn't really concern me too much. I generally have more fun and satisfaction writing everything myself.

It's funny. Any money I have ever made in game development has come from writing tools/extensions for other people to use in their own games. I am yet to make a cent from any games I have ever published.

2 minutes ago, lonewolff said:

If your primary objective is to ship games, then sure, a pre-rolled engine is generally the way to go.

The moral of the thread here is that you can go either way, and its really about what you want to do. It's certainly an avenue to pick a canned engine, but equally if you want to build it yourself then its fine, provided you understand the limitations of either. In one case it is control over features in the other the time and skilled required to implement those features. Game Dev - Choose your own adventure eat your heart out.

5 minutes ago, lonewolff said:

Any money I have ever made in game development has come from writing tools/extensions for other people to use in their own games.

Its fine to replace "Game" in the games development with "extensions" or "tools" i think the point still stands that you should build something with the goal in mind, be it achieving a feature or telling a story. If you're coding something that doesnt meet your goal of achieving that feature or enabling you to tell the story, its worth thinking hard about if the effort is really needed. 

Yep for sure :)

@GalacticCrew seems to have his head screwed on straight and comes across as a very focused guy with his projects.

The only way to be a true innovator is to do what the masses don't do.

But yes, generally speaking the vast majority would be better served using a pre-built engine any day of the week.

9 hours ago, Stragen said:

For someone new to game development reviewing this thread, i think the important take away from the comments here is that the first and foremost concern should be making the game. If you're building your own engine - build only engine features that have a purpose in the game which you appear to have done successfully, and if you're using a canned engine - be mindful that you have less control over the way the engine runs and future changes that may be made. Either way, design and develop with the game in mind.

I totally agree with you!

9 hours ago, lonewolff said:

@GalacticCrew seems to have his head screwed on straight and comes across as a very focused guy with his projects.

The only way to be a true innovator is to do what the masses don't do.

Thank you ^_^ 

This topic is closed to new replies.

Advertisement