Game Engine or custom game engine?

Started by
40 comments, last by JoeJ 5 years, 2 months ago

 

On 2/1/2019 at 8:48 PM, Samiorga said:

My question is... Should I create this game in a custom engine (or no engine, just straight hard coding) or should I be looking into creating a game using Unity or Unreal (*not using blueprint*)?

Just figure out a list of features that you game will have. Than compare it against list of featutes that existing engines able to perfom. And you will see is it have reason to use one of existing engines, or make engine or mini-engine from scratch. Generally, it is 2 main reason to make custom engine :

1.  You need something very simple and lightweight. Also it good way to study concepts that drive engines work inside, and it can be done a very fast. For example simple tunnel walker has take from me around a week, and simple arcade space shooter has take less than month of development completely from scratch.

2. You need something amazing new, that not suppoted by existing engines and can not be added to existing engine making custom components for it. And it maraphone distance run. For example it take around 2 years for me to briefly get in  phisical and advanced mathematical background of it.( I started reserches into it field already having Master degree in Applicative math and CS and 20+ yeras of expirience in general software development including FA and scientific software). Also it require a huge work to implement infrastructural libraries, like custom containets, in-scene GUI contols libraties, persistent technology that allow to serialize/desetialize trees of objects, and so on auxiliary tools that existing engines already have from box. 

#define if(a) if((a) && rand()%100)

Advertisement
2 hours ago, Vilem Otte said:

Out of my curiosity - Can you elaborate a bit on that 'from scratch'?

I don't care so much about helper libraries (SDL or GLFW or something), but I've really found it much more interesting to see something where the functional components are substantially homegrown. That means all of the architecture, design, and problem solving is really the dev's own solo work, which is not possible in Unity or Unreal and is often not the case with other large engines (Godot, Ogre, what have you). There's real value in being forced to build something (almost) entirely on your own, and not basing on tens or hundreds of thousands of lines of other people's work.

(And yes, you could twist this to talk about standard libraries or operating systems or whatever as being other people's code. I don't think the comparison is valid.)

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
2 hours ago, Fulcrum.013 said:

 

Just figure out a list of features that you game will have. Than compare it against list of featutes that existing engines able to perfom. And you will see is it have reason to use one of existing engines, or make engine or mini-engine from scratch. Generally, it is 2 main reason to make custom engine :

1.  You need something very simple and lightweight. Also it good way to study concepts that drive engines work inside, and it can be done a very fast. For example simple tunnel walker has take from me around a week, and simple arcade space shooter has take less than month of development completely from scratch.

2. You need something amazing new, that not suppoted by existing engines and can not be added to existing engine making custom components for it. And it maraphone distance run. For example it take around 2 years for me to briefly get in  phisical and advanced mathematical background of it.( I started reserches into it field already having Master degree in Applicative math and CS and 20+ yeras of expirience in general software development including FA and scientific software). Also it require a huge work to implement infrastructural libraries, like custom containets, in-scene GUI contols libraties, persistent technology that allow to serialize/desetialize trees of objects, and so on auxiliary tools that existing engines already have from box. 

While what you say has sense, OP is still a student. And except if he already is writing an engine since many years, what you propose it not easy to achieve, not to tell almost impossible.

20 years ago it was possible. I remember myself proud to devise some things. But sooner or later, other people will have had the same idea. And nowadays, you cannot really create something new. Graphics programming has reached apex and if you don't spend years working on a little thing (that many other will work on the same kind of idea, in research centers and big companies...) you'll reach nothing. And since graphics hardware is growing very fast you're running against the wind...

 

3 hours ago, _Silence_ said:

And since graphics hardware is growing very fast you're running against the wind...

For first mainstream engines failed to use a modern hardware abilities. for example it no engines around that support spline-based models, while it significantly improve quality, decreace size of models and have hardware support since DX11 has been introduced over 8 yers ago. And for main gaming != graphics only. It ever more of phisic simulation and game ai/logic than graphic. For example engine, that made from graphics and have based on classical for graphics scene tree of grizmos architrcture, slowing down actual game development  and making difficulties with simulations, razer sped up it and solve problems. Instead engine that build around phisic simulation that send objects position to rendering subsystem much better for actual game development. Of cource rendering is impotrant part. But graphics!= "anything that we see on screen". For example animation is not a graphic but a realtime phisic simulation. So really engine is a solid bar made from "phisoniy" metal, covered by thin layer  of "graphoniy" metal.

#define if(a) if((a) && rand()%100)

I recently applied to a job as a junior software engineer. While in my interview they asked me around how many lines of code I have of experience. I gave them a rough estimate of a few hundred thousand. At the end they said and I quote "You don't have enough lines of code of experience." This really got me angry and I am glad that I didn't get the job as I wouldn't have wanted to work for an employer that is expecting millions of line of code from a junior software engineer.

So at this point I know that I have to make something and actually complete it and show it's functionality to my employer. Whether it being a functional engine of some sort or a very well made game with graphics using a pre-built game engine.

11 hours ago, _Silence_ said:

While what you say has sense, OP is still a student. And except if he already is writing an engine since many years, what you propose it not easy to achieve, not to tell almost impossible.

I have not written any engine. I have written physics libraries and collision libraries and implementing them in some early java games. This may be my first time putting it all together to make an engine/toolkit. I have created a few games with java by using all their internal functions and libraries (physics, gravity, graphics etc), but I found that I needed some more freedom with the libraries that were given to me.

Now, if I choose to program an engine using multiple tool-kits, what should I be implementing within the engine?

By implementing I am talking about graphics, audio, character animations etc. Would I be able to create my own engine to incorporate all these or would I have to use something separate like 3Ds Max to create a characters, or some other program for animations?

4 minutes ago, Samiorga said:

At the end they said and I quote "You don't have enough lines of code of experience." This really got me angry and I am glad that I didn't get the job as I wouldn't have wanted to work for an employer that is expecting millions of line of code from a junior software engineer.

100k lines of c++ code have more chances to  summon the devil than chances to work. Really developer qualification inversely proportional to lines of code that he/she needs to write for solve complexive task. Than better programmer able to analize task field than less code he/she needs to write. For example geometrical core of CADs rare exids 20k lines. May be thay mentioned something like it?

#define if(a) if((a) && rand()%100)

1 minute ago, Fulcrum.013 said:

May be thay mentioned something like it?

No mention of this whatsoever. They were a startup company so they were probably looking for someone young with a lot of programming experience. And they used lines of code as a reference to calculate the amount of experience that they had...

14 minutes ago, Samiorga said:

They were a startup company

Thay just using huge number of lines into their codebase as a advertisment slogan. In my country at least 90% of startups is just a scam, 9% belive that thay want to do some usefull, but dont know what same exactly they want to invent, 0,9% know what thay want but have any ideas and knowledge how to do what thay want, and only rest have chances to really develop something new. And it can be easily determined. Its  0.1% of startups usualy created by educated professionals, that have strong background into related field, and hire only educated professionals with enought background into related field.

#define if(a) if((a) && rand()%100)

1 minute ago, Samiorga said:

No mention of this whatsoever. They were a startup company so they were probably looking for someone young with a lot of programming experience. And they used lines of code as a reference to calculate the amount of experience that they had...

I wouldn't read too much into this, it's unrealistic to expect an honest answer why you didn't get offered a position, there could be a million reasons, most of which would not be in their interest to communicate. For instance often companies do interviews when they already have a person lined up for the job, and you are being interviewed for form filling / legal reasons, and you are wasting your time.

You could also be e.g. wearing the wrong t shirt, but because of labour laws they had to make up some other excuse. You would be surprised at some of the reasons people get rejected, including being too good (I joke not!), not naive enough etc etc.

Or of course the obvious one, they interviewed someone else better.

This topic is closed to new replies.

Advertisement