Advertisement

Questions about creating a new game engine

Started by December 11, 2016 04:43 AM
5 comments, last by Shaarigan 7 years, 11 months ago

Ok so obviously I am a newbie here, and to the creation world, but i am trying to develop and complete a new game engine on my own. I know it'll take a while, but any help is much appreciated. I want to develop it using visual studio 2015 in c++ with the luxmark lux engine for rendering. any advice on how this would be possible.

Depends on your goal. You are never ever going to compete with Unity or Unreal, or probably anything that is marketable.

Development time of Unity or Unreal is counted in centuries man-years. Even if you would live a few centuries, by the time you reached the point where they are now, they have evolved further (and at a faster rate than you, ie the gap will only increase).

A more realistic goal is to make one for yourself, for learning or as a reference. In that case, a game engine is not different from any other library or framework that you make.

You need:

1) Knowledge and understanding of how to use modern C++ (the language you're using).

2) Knowledge and understanding of how to use "luxmark lux engine" (watever it is, never heard of it).

3) Knowledge and understanding of the problem you aim to solve with this library or framework.

Now "knowledge and understanding" is not just "use X to do Y" (Use C++ to program, Use engine to write games), it's much more detailed. For a given entity such as C++ or the luxmark lux engine, for each element that it has, what is the role of that element in the whole, when to use and not to use it, and at a deeper level, why are the provided elements the provided elements, and not some other element combination.

For a library or framework you're designing, you must have a deep understanding of what it is going to solve, and how. You have to decide what elements are in there, what their role is going to be in the whole, and why the elements that you pick are the right ones, and not some other element combination.

If you don't have such knowledge, you're trying to write a solution without knowing what the problem is. This situation is not unlike claiming that the answer is "42", but no idea what the question was, sorry. While the latter makes for a great book, it's not very useful in engineering.

You can copy/paste solutions from other engines. That would give a solution, but you still don't know the goal that you have solved, beyond a very high level notion like "it does something".

Obtaining that knowledge (under the assumption you don't have it), is best done by experiencing the problems that one gets without an engine. Write a dozen or so games in the area that your engine should address (probably using the luxmark lux engine), and find out what is taking the most time. After a dozen games, you'll likely see some patterns coming up in the code that you seem to use everywhere. Those patterns are interesting, as it suggests that such code may be more universally applicable. That would be the first step in finding elements in your game engine that you want to make.

Advertisement

i am trying to develop and complete a new game engine on my own.


I don't know why this was posted in the Job Advice forum (a forum for advice about
getting jobs). Moving to For Beginners (a technical advice forum).

-- Tom Sloper -- sloperama.com

You are never ever going to compete with Unity or Unreal, or probably anything that is marketable.

Small engines, designed to be minimal, still have a place in the world that features UE4 and Unity.

Developer with a bit of Kickstarter and business experience.

YouTube Channel: Hostile Viking Studio
Twitter: @Precursors_Dawn

I don't mean to put anyone down here, and you are always going to be limited only by your own drive and motivation, but building an engine (even one for learning purposes) hardly seems like the right move for someone who would label themselves a newbie (I have no idea of your skills or experience, I am just going by the fact that you are asking in a For Beginners section). You mentioned you are using C++, I am going on a limb here and guess there is plenty of that language you don't know how to use, or more dark things from C you probably need to learn as well. Aside from that, it has been said before but C/C++ hardly are first languages for programmers (they were for me, but I really did not know any better), but I would suggest something along the lines of C# or Python, and if game development is your calling, move along simple games, but from start to finish, like Tic Tac Toe or Pong.

This advice has been given before a thousand times, but people seem to keep skipping it :(, trying to scope too much too fast will most likely end in frustration, and pushing you away from progress and what you really want to achieve. Build simple games, learn a simple library, practice C#, practice Python, practice collision detection, input, some minor graphics, simple AI, how it all glues up, read some stuff about architecture, practice some design patterns into your simple games, join a game jam, practice practice practice. Telling a beginner or someone along those lines to pursue their engine or saying a small engine can still be marketable really doesn't seem like the best move to me.

Remember game programming is programming, and programming is big part problem solving, and analytical thinking, just don't make the mistake of thinking along the lines of "I know doing this stuff on Unity so I'm good", no matter what new flashy tech comes along, fundamentals always have been and will be key, that means algorithms, data structures, complexities, math, etc.

I realize this has nothing to do with your initial question, but wanted to throw my 2 cents here on what I believe a next sensible move could be. Best of luck on your endeavors

If you are referring to luxrender under luxmark lux engine, then no, you shouldn't use that for games. It's not designed with games in mind. The performance is not good enough (well, it's a spectral raytracer), neither the engine supports updates to the scene at a frequency required in games.

shaken, not stirred

Advertisement

Writing an engine is not that heavy as such people think never ever have done this. I spend 3 years of my rarely spread spare time and did anything by my own (using only OS dependent APIs) brought me to a state where it is possible to use it. Sure limits are ever granted especialy in loading different kinds of file formats but for deploy one should convert them into an engine usable format regardless.

The secret of one of the great game engines is not the render pipeline or how they handle assets/resources or shaders, it is the all arround package including additional systems like BluePrints in UE4 or deployment pipeline from the editor offered with them. A working unity code base could be made very quickly but yeah, doing there editors job is a century task.

As I worte in this thread http://www.gamedev.net/topic/683721-roadmap-for-simple-graphics-engine/#entry5318954 creating a first small basic engine is not that heavy in roadmap as one might think. Going for the right software design in your opinion and implement further systems might take some more time

This topic is closed to new replies.

Advertisement