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

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

Recommended Posts

I wholeheartedly agree with lonewolff. Being able to claim your engine is 100% yours is far more valuable than you could expect. It's for the same reasons a lot of people love artists that put the effort into painting their pictures with real paint, instead of relying on a special effects plugin for digital painting.

People, especially the younger teenage crowd, look up to artists and programmers that make things by themselves and aren't just doing things for the money. It's easy to prove that you are truly passionate if you put the effort into creating your own game engine.

Share this post


Link to post
Share on other sites
Advertisement
2 hours ago, Solid_Spy said:

People, especially the younger teenage crowd, look up to artists and programmers that make things by themselves and aren't just doing things for the money. It's easy to prove that you are truly passionate if you put the effort into creating your own game engine.

I haven't seen it this way! I always get very positive and somewhat surprised feedback when I tell someone I created my own engine. It was kind of frustrating for me yesterday when I only found two developers using something else than Unity. It's like people do not even check for other engines anymore. 😕

4 minutes ago, lonewolff said:

Them - "What tools do you use?"

You - "I make the tools..."

This reminds me of an old joke: "Did you know Chuck Norris was in all Star Wars movies? He was the Force!" 😄

Quote

I know this Unity stuff fighting against you instead of helping your for anything worthwhile and for me UE had been just bloated beyond being useful for fas developing. For that reason I created my engine from scratch back then (LGPL and no royalties... I hate royalties) to put up something which is geared for working fast and efficient but without sacrificing power and versatility as certain other engines do. So I would say just continue with it. You seem to be at a usable point so I would not drop-and-switch engine unless you have to. Unity is a pain. I would not switch there if it can be helped.

Quote

I'd say, if you have published a game with your engine, it is good for what you need! It is true maybe that by using an established commercial enigne you might save some development time in the future, but on the other hand it looks you already have a good basis, you don't have to pay royalties, and you are not depending on somebody else's code for features and bug fixes, so I'd say go with it as long as it works!

You both are right about that. I haven't created any tools with UI, but I developed a couple of console-based support tools like the Asset Converter who reads-in files like FBX, 3DS or DDS and creates my own file format that is easy to read and process. I also created a script that generates basically a new game project and sets up all dependencies, directories, etc.

I have currently several ideas for a third game. If I can launch the second game this fall and the revenues are well enough at the end of the year, I will continue with my game development. I have several ideas for new games. The ones I'd like most need a good particle engine for fire, explosions and smoke and I also need a good water simulation. That's where my doubts begin. I created the Soft Shadowing and Glow effects for my engine in a couple of weeks and they look great and they are so generic I can use them in any future product. However, it's already available in systems like Unity.

Share this post


Link to post
Share on other sites

Commercially, the Time to Product is probably the most important thing to me. For context, the product i'm referring to here is a game release.

With the canned engines (Unity/UE/GameMaker/etc..) the ability to prototype and develop a product is significantly quicker to produce the outcome than developing a new engine from scratch. As you point out in your most recent post that your in-house engine is lacking some of the features of the commercially available ones, which if these features are things you want will impose a delay to the product while you 'play catchup' to implement these features - 2 weeks developing different shading capabilities could have been spent building features into the release product - if its a blocker feature, the whole project goes on hold for the time to develop. If using a commercial engine, these might not be there - but you'd be beholden to the engine developer to add features you identify you need, or you open the code up yourself... potential zero sum.

My second thought is that given you're running a company doing this, you're likely to need more staff in the future. Schools these days are teaching STEM skills, and having done post grad studies, and reviewed a number of offerings in game development, and programming in general, commercial engines are the mainstay of these courses. My local Universities and Technical Colleges are teaching using Unity and Unreal, and teaching games development with these tools as the absolute foundation to the course and some of the training goes pretty deep. Couple this with the idea that almost every second game developed these days uses a commercial engine the likelihood of even hobby developers will be versed in the engine is higher. Prospective hires may already be well versed in those engines, and you'd be able to be somewhat accelerated by the inclusion of those skills and knowledge. An in-house engine will always require any new members to the project/organisation to get across the capabilities and limitations of this engine.

 

 

Share this post


Link to post
Share on other sites
1 hour ago, Stragen said:

As you point out in your most recent post that your in-house engine is lacking some of the features of the commercially available ones, which if these features are things you want will impose a delay to the product while you 'play catchup' to implement these features - 2 weeks developing different shading capabilities could have been spent building features into the release product - if its a blocker feature, the whole project goes on hold for the time to develop. If using a commercial engine, these might not be there - but you'd be beholden to the engine developer to add features you identify you need, or you open the code up yourself... potential zero sum.

I worked as project manager and team leader in my last company, so sheduling is no problem. Adding the features I need to my game engine does make it even better, more powerful and is an even greater accomplishments. However, I loose time I could spend on developing the game itself. The archicture should also be generic so that once a feature is made it can be used in all future products - like I did with shadows, animation, etc.

1 hour ago, Stragen said:

My second thought is that given you're running a company doing this, you're likely to need more staff in the future.

Actually, I do not see a problem here. So far, it is fine with me being a single programmer. Of course I hope to have a hit that makes it possible for me to hire full time employees. So far, I work with a group of freelance artists on my games. Any person who studied computer science should be able to work with existing source code architectures. It will take some time for someone to get used to my engine, but I do not see a problem here. I wouldn't be interested in someone who knows all the features of Unity. I'd be interested in someone who knows how things work.

Share this post


Link to post
Share on other sites
5 minutes ago, GalacticCrew said:

The archicture should also be generic so that once a feature is made it can be used in all future products - like I did with shadows, animation, etc.

Having been down this road myself as a hobbiest, i found myself tripping over prioritizing 'features' vs 'requirements'. The balance between establishing features that i thought 'looked cool' and features that were 'functionally required' for the game to function and sell well... i spent so much time on the 'looked cool' components that i never built something to sell - a problem you may not have seeing as you've put something to market already. Your project management experience should go some ways to help that too, a strong engineering background that will enforce that as well.

8 minutes ago, GalacticCrew said:

Any person who studied computer science should be able to work with existing source code architectures.

If you're a Solo developer on this, and i mean no offence by this at all, i wouldn't rely on this. Every coder has their styles and approaches. Some people simply can not understand code that isn't 4x space spaced vs tab spacing, or has braces in line rather than a new line for functions. What may be intuitive to you, may not be to others. Having reviewed code, structures, and database design for universities, organisations, and amateur/student coders the range of possibilities is immense. I'm being general having not seen your code but my experience tells me that intuition is trained behavior, and even when given a fully documented manual interpretation of functions can cause issues.

My point however was that your architecture is unique to the architectures that are commonly taught these days, and while its rational that a CS major should be able to work with any data structure, even experts take time to adjust to changes and become completely valuable on a team.

A car analogy if you would - cars have turning indicators that can be on either the left or right hand side of the steering wheel, going from a car with the indicators on the left to the car with the indicators on the right causes people used to using a particular hand for the action to have think about what hand to use to indicate to change lanes or turn, we laugh at those who instead flick the windscreen wipers on instead of indicating, a symptom of a learned behavior - the architecture is the same; both cars have the turning indicator feature - the implementation is different and requires relearning or retraining the specific actions to achieve the outcome. 

23 minutes ago, GalacticCrew said:

I wouldn't be interested in someone who knows all the features of Unity. I'd be interested in someone who knows how things work.

Why would you not be interested in someone who knows all the features of Unity/Unreal? Could these people bring knowledge of functions and features that your solution doesn't have, and could bring you ways to make your code more efficiently? For example, someone intimately familiar with the AI side of Unity might be able to help you catch your future problems quicker given the challenges that the engine's inbuilt AI path-finding has and the range of work arounds that have had to be historically applied to implement a solution.

Share this post


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

It's for the same reasons a lot of people love artists that put the effort into painting their pictures with real paint, instead of relying on a special effects plugin for digital painting.

Also known as: people who don't realize that digital painting takes the same amount of talent and effort... :P 

6 hours ago, Solid_Spy said:

People, especially the younger teenage crowd, look up to artists and programmers that make things by themselves and aren't just doing things for the money. It's easy to prove that you are truly passionate if you put the effort into creating your own game engine.

Also known as: impressing people who don't know how things actually work 😆

3 hours ago, lonewolff said:

It would look great on your resume too.

Them - "What tools do you use?"

You - "I make the tools..."

Depending on what the job is, that could be good or bad... If you're applying for jobs at a game company, having experience with a dozen different game engines will be much more impressive than once having made your own engine that only 3 people ever used. Moreover, experience with the particular game engine that's being used at that particular company is the most important thing :)

Not to say that homebrew engine experience is worthless -- it is definitely still something that gives you a leg up! -- I just have to point out that it's not at all a replacement for experience with other engines.

Share this post


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

Also known as: impressing people who don't know how things actually work

Depends on audience. I talked to several people on tradefair and busines that ended up in "we could quit the talk here if you don't have anything fancy to show yet" >.<

I'm not an artist, I'm engine devloper ...

Edited by Shaarigan

Share this post


Link to post
Share on other sites
8 hours ago, Hodgman said:

Also known as: people who don't realize that digital painting takes the same amount of talent and effort...

You don't have ctrlZ in real painting. And many other tools. Real painting is like 1000 times harder than digital painting.

Real painting is way more valuable than digital painting for being unique too. It has infinite resolution. Drawing line art digitally sux, because of the antialiasing that changes the drawing depending of the monitor and the scale. Colors of the digital painting changes with the different monitors too.

I am digital painter, but once i tried real paint and although i lack the experience with real painting and it resulted crappy, i was surprised how vivid are the colors of real painting compared to digital painting.

For being a physical something, real paintings have a sentimental and even mystical value. Some painters, sometimes dry their brushes inside their mouths and there you have the DNA of the artist inside the painting too. Many of them use their fingers too.

If you buy a digital painting from and artist, and then your HDD loses the data, you can always ask the painter to send you a copy of the painting again. But, if you buy a real paining and you break it, it is over. You can not ask the artist for the same painting.

Matter has memory and can transmit to you the emotions the painter felt while painting the art piece.

It is like comparing life performed music(without microphones in the middle) with music from a CD player.

My cat responds to me calling it by name. But it doesn't even move when i play recordings of me calling it by name. My cat is neither bothered by wolves howling on Animal Planet. I am sure if my cat hears a real wolf howling, it will shit itself.

(when you use digital paining tablets and screens, there is a huge lag between the tip of the digital pen and the real stroke. This introduces a synthetic variation even inside the same artwork. Pens have a finite pressure sensitivity too. They say it is 2048 levels, but actually it is like 200, because of the lazy drivers. On Wacom there is a huuuuge distance between the protector screen and the monitor and the calibration of the tip sux too. They take you money for the stand of the monitor that can tilt and rotate, but people never use it, because it changes the whole pen calibration.)

Share this post


Link to post
Share on other sites

I've always wanted to create games with my own engine, so I started developing one after having made a couple casual games in XNA. I only just started learning C++, and I started making this 2D sprite-based fighting game, which eventually got 3D, then when I was no longer into fighting games so much, I decided to remove the game, refactor the whole code base and leave the reusable parts in. Now, after about 6 years development, it is an "editor", which I mainly use to implement rendering features, and just optimize and refactor endlessly.

Was it worth it? I at least got a tremendous amount of experience out of it, and feel like a somewhat decent programmer. But as you can see, I don't have a shipped game yet made with this engine, and I only feel like I've gotten farther away from doing one instead of closer like I expected. So far, I see no reason why anyone would use my engine over commercial or even some open source ones (like Godot for example).

Edited by turanszkij

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!