Jump to content
Site Stability Read more... ×
  • Advertisement
GalacticCrew

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

Recommended Posts

Very interesting topic..

It seems most of us who have attempted (or succeeded) in making an engine did it for the same reason - to challenge ourselves and to have ultimate understanding and control of the things we were making. Its hard to know where exactly to draw the line - like using a physics library seems okay but a GUI editor (that wasnt made by us) is just too easy. Like many others who have taken this path - the only resulting tangible product for myself has been knowledge - this is fine if knowledge is your goal but my goal was a game

What sort of snapped me back to reality was having a child.. I realized how little time there actually is and the only way to reach my goal was to let go - let black boxes be black boxes and focus on what I want in the long term..

I took my gameplay code and moved it over to use urho3d (was the easiest fit I could find) and literally gained years of time... i may actually end up with a game

Share this post


Link to post
Share on other sites
Advertisement

Making an engine is a full-time job.

My own engine http://esenthel.com/ Esenthel, is 20 years of full-time work. Now it's very advanced, but it required so much time, I couldn't make any big games, as all focus was on the making of an engine.

The plus side, is now when I want to make a game, I have everything I need, and I know how everything works.

If there's a problem, I know where to look.

The struggle is getting any decent income, as the engine market is very competitive.

IMO, if you want to make a simple looking game, you can go with making your own engine. But if you want to make a cool looking game, then you have to stick to existing solutions (engines), as doing your own to be competitive enough, will take all your time and money.

Share this post


Link to post
Share on other sites

I'm an indie developer that uses his own engine (for 3 games, single platform).

 

By default, I would say using a commercial engine is better, unless those requirements are met:

- your engine is better than the existing commercial engines (in whaterver sense, for example my engine is low tech, can run on outdated machienes, increases my productivity, caters to my personal coding style, was designed for the type of games I'm making)

- you already have the engine written (moste people write those engines when they are "young and stupid", so if you already have an engine that work... well, consider using it)

- you do not make 3D games (the more technically heavy your games are the more tempting and useful commercial engines are)

- you make with it a dozen of games (making engine for a single game is pointless) which basically leads to "you need to churn out those games quickly".

- you are in it long term (for example, if I were using a commercial engine around the time I started (more than 10 years ago) I would be doomed now since those commercial engines are not supported anymore), the longer term you think the more appealing your own engine is.

Also an interesting observation (might be wrong, just an observation), all very old indies seem to use their own engines...

 

Now personal advice (questions to self):

Checking ratings of your game it seems you have a problem with code stability and performance. Would switching to a commercial engine solve it?

How much money you get from your existing game? Are you ready to abandon it? Note that by switching to a new engine you would need to abandon this game (or rewrite which is probably too expensive). Keeping two engines is unsustainable.

Also, checking the reviews it seems you have more pressing problems than engine (unless that's connected to the engine). Like UI or gameplay. Maybe focus on those instead of worrying on graphical capabilities (no one seem to complain the game looks ugly...)

Share this post


Link to post
Share on other sites
On 8/12/2018 at 8:54 AM, GalacticCrew said:

That's the point I am worried about. For me, the satisfaction comes from the creative process and from creating the technology behind the game. I don't want to miss that. However, if I do not generate enough revenue, I won't be able to continue making games.

Another option I was thinking about is to publish the game engine as open source project. I am actually not a big fan of sharing the result of at least 1,000 working hours for free, but other developers might enjoy using and they can contribute to it by adding their stuff. I will continue what I am doing right now until the end of the year. Then, both games should be released and I have to make a decision how to continue. I am open for more thoughts!

I'm at the point of starting out creating my own game engine.  The one thing I tell people about open source is: it's great for businesses, it's CRAP for the developers.

First, there is the quote above: You've put your blood, sweat, and tears into this for a WHILE, and to have a bunch of people from who knows where come in and alter your source code for anything other than the most obvious of bugs is completely frustrating.  They don't share your vision for your game engine, but rather have their ideas of how a game engine should operate and can easily hijack your work.  Second, and this is something my current employer does prolifically, Epic or Unity will look at your stuff, decide, "GalaticCrew has some great ideas in his game engine, let's take them."  They incorporate your open source code into their game engine, and since they didn't alter it, have no need to return anything to your project.  You spent that 1K hours to avoid other game engines, and now those same game engines are using your innovations in their product for the grand total cost of near zero time and zero dollars.  They aren't paying you for your work, but they're certainly going to use it if you do anything truly innovative.  Meanwhile:

On 8/12/2018 at 8:54 AM, GalacticCrew said:

Hell yeah! When I tell someone I am a self-employed game developer they ask questions like "Oh, cool! Android or iOS?" or "Nice, is it a browser game?". 😄 I met some other game developers at some sort of Indie meet-up and the organizer introduced me with "This crazy guy here developed his own engine!" and everyone was like "WTF?". 😄

People who are only using UE or Unity, and have no real clue the difficulties and intricacies of game engines ask you dumb AF questions like these, and make BS comments like these!  Dude, you're not crazy, you're fkn genius level intelligent and the people in this MeetUp either recognize that you're more intelligent and skilled than they are, or they're not decent enough programmers to understand the pure power you possess by being able to create a game engine rather than just a game.

I went to one GameDev MeetUp near where I live, and got pretty much the same reaction when I told them my plan to create a game engine.  I never went back to that meet up.  The majority were young children that were, for the most part, artists that didn't have a clue about programming, with a few older guys looking to trick a bunch of young kids into developing their games for them and pay nothing.

I think you already read the correct idea, even though there are a few pages of responses: Work on your games in an "established" game engine, if possible, while you are simultaneously improving your own game engine.  You're basically making games to get paid while you're in the process of having your game engine catch up to the ones around you.  Then, when you're ready, cross over and use only your game engine to develop games with.  Remember that you are a professional game developer now, even though you're on your own.  You need to be able to pay your bills, and you can't afford to do that without having an income.  If this is the way you want to make your way, by developing games, then do it that way.  My choice is to continue working on the game engine at night and work my day job during the day, then when the game engine is set to my liking, start making games with it.  That plan may change if, for whatever reason, I lose my current job, but I don't feel that will be the case.

Good luck.  Godspeed.  All the best in all you do while staying true!

Share this post


Link to post
Share on other sites

I apologize for not having the time to really review the discussion in this thread, although I'm very pleased with how the community seems to have handled it. Very little black and white, which is good. For my part, I set out building our own tech eight years ago for a variety of reasons, and now I run a funded company with shipping products built on top of that engine. And for as many things as that engine lacks, it has a few key things which allow us to do things that we would have had significant trouble pulling off in UE and are not actually possible in Unity. We're redoubling our effort to bring that engine up to 2020 standards, in our own way and with a mix of custom and off-the-shelf components. I have seven figures of investment (past and future) banking on this project, it's not a toy by any means although it is quite domain specific.

 

Share this post


Link to post
Share on other sites
5 hours ago, OsirisAnkh0716 said:

First, there is the quote above: You've put your blood, sweat, and tears into this for a WHILE, and to have a bunch of people from who knows where come in and alter your source code for anything other than the most obvious of bugs is completely frustrating.  They don't share your vision for your game engine, but rather have their ideas of how a game engine should operate and can easily hijack your work.  Second, and this is something my current employer does prolifically, Epic or Unity will look at your stuff, decide, "GalaticCrew has some great ideas in his game engine, let's take them."  They incorporate your open source code into their game engine, and since they didn't alter it, have no need to return anything to your project.  You spent that 1K hours to avoid other game engines, and now those same game engines are using your innovations in their product for the grand total cost of near zero time and zero dollars.  They aren't paying you for your work, but they're certainly going to use it if you do anything truly innovative

You can do it without worries if you use the right licensing model. I had headaches about this a while ago for a long time but finally found a solution we all are happy with. I don't care yet for having it paid but supported by people using it, so we added AGPLv3 licensing. It prevents people from using your code in their products by enforcing the need of publishing anything regardless of if they took it from yours or made it themself, the AGPL is written to ensure even server side services using your code to offer a download version of it. As Unreals source code is open source too, they can't secretly steal it so no worries here.

A tricky part is providing a version your "customers" can use without the need of publishing the full source of their games but this is simple in two cases:

  • You offer a Unity like solution where anything is played by the engine and you just offer an interface for adding content
  • Place an AGPL Exception file near your source code to grand additional special rights

We use an Exception where we namely grand to ourself the right to publish compiled source code covered by a different license. This sounds redundant in the first look because we have the rights to do so but it helps in case of contributions. The Exception works as long as it exists so if someone contributes source code and has the Exception still intact, we have the right granted to publish the compiled code without an extra agreement with the contributor

Share this post


Link to post
Share on other sites
6 hours ago, OsirisAnkh0716 said:

People who are only using UE or Unity, and have no real clue the difficulties and intricacies of game engines ask you dumb AF questions like these, and make BS comments like these!  Dude, you're not crazy, you're fkn genius level intelligent and the people in this MeetUp either recognize that you're more intelligent and skilled than they are, or they're not decent enough programmers to understand the pure power you possess by being able to create a game engine rather than just a game.

I don't really care about the odd comments.  However I do find that some people (usually when they are anonymous) get a bit hostile if you're not using an off the shelf engine. I really don't get why. I mean what's with the "you'll fail" comments and down voting because you're doing something differently from others? I'm not really talking about gamedev.net, mostly reddit. In any case, I try to be supportive of people using Unity or UE4.  IMO "roll your own" and "off the shelf" are both valid choices.

Share this post


Link to post
Share on other sites

Yeah, and some people do this for a hobby or just to be more clever than before.

I've realised that there are many shades in between "game engines". A full blown game engine is still a mountain to climb for a newcomer and not everyone is a professional and knows about the underlying math or had an education in programming. A small framework to handle basic functionality may be written in days. Whatever takes one closer to the goal.

Share this post


Link to post
Share on other sites

Hey guys,

Thanks for your interest in this topic! It's been a while since my initial post and a lot has happened since then. I successfully released both of my gameson Steam this spring, but I am no longer a full-time game developer. I still make profit from my sales, but I do not earn enough to make a living or finance new projects.

Therefore, I became a full-time employee this January. I developed my two games after work and on weekends and it felt great to complete both of them. After that, I did not spend any time on game development for a few months and I really enjoyed free weekends and afternoons after work. 🙂

Recently, my thirst for knowledge emerged again and I started to continue my work on my game engine. I have an idea for a new game I want to create, but I have to add so many features to my game engine first. Therefore, I am working in my day job and when I have brain capacity and time left I continue working my engine. I do it very relaxed without any fix deadlines. I am currently working on two major parts: a full refactoring of my shader handling and an abstract world builder. My shaders work very well and around of it is generated from models, but I never liked the way I accessed them. So, I am working on that. The other, big topic is my world builder. I am working on a construct that takes a set of input parameters like heightmap, terrain textures, a set of models for vegetation, rocks, etc. and creates a world that can be rendered in real-time and provides interfaces for any common game logic like collision detection, picking, etc

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!