What's the best game engine for a complete beginner?

What's the best game engine for a complete beginner?

Attached: 1 LneOPz9iclWycr9N0OnZ-Q.png (1600x829, 285K)

The

Use C or C++ to write one from scratch

Not OP, I've considered this. Anyone out there who has done this exact thing, what did you think of it and why did you choose to build your own engine?

What are your technical skills? If they're mouseclick deep, game maker studio and that's that.
Otherwise Unity.

They all literally do the same thing plus/minus some implementation differences. It's like asking which sedan is better for driving to your grandma once a year.

Don't do this. Use an existing engine to learn common techniques and development needs, as well as shortcomings and pitfalls, before you make your own.

Unity is fine, I develop in it at work.

I've started one as a hobby. The desire to create your own engine generally stems from a desire to apply virtually everything they teach you in a typical CS degree within one single project. Done correctly you have to deal with everything from writing assembly to diagramming communication methods between libraries. The idea of programming something that makes such demands of its programmer really excites me for reasons I don't fully understand.

I don't know anyone who's completed an engine on their own, but personally I'm not really worried about finishing; I'm worried about stopping. It's an educational experience and a great way to keep your programming skills sharp.

>Anyone out there who has done this exact thing
This used to be the way everybody did it.
Some studios still do it, obviously
Then there is Handmade Hero, a livestreamed show showing you for hundreds of hours how to do it too, by someone who did it for many years professionally.
I'm doing it too currently. It works pretty good.

>don't do this
Why not? It's a fantastic way to learn and apply things. Unless your goal is to make a game (without actually learning), its gonna teach you way more than faggy scripting in unity.

If you blindly try to make an engine from scratch you're going to waste a lot of time getting things wrong.

Well it's not blind if you actually learn the appropriate things and do research prior to implementing them in your engine.

Depends on the type of game you want to make.
2D? GameMaker Studio.
3D? Unity is extremely well documented and beginner friendly. The sheer number of Youtube tutorials can teach you almost anything.

Hence the suggestion to just use an existing engine first. Easier to learn by doing than by reading in most cases.

Thanks! I'll definitely give Handmade Hero a look and this whole building an engine sounds stupidly fun.

Source

Unity. Engine doesn't matter anyway, you're just some random dude trying to make a dent in gamedev world. You better worry about those assets man.

It's just I want to know. Seek the truth myself rather than fed by someone from MIT. Currently 1 yo 6 months. No progress. But progress is exponential so I guess I shall reach it one day.

I made one for my own game because when I started there weren't any popular free 3D game engines like Unity around
it took a bit less than 5 years
learning to write a renderer, the thing most people think about when it comes to making your own game engine, wasn't even the hard part, that took a few months, it's figuring out the architecture of the entire game, initially I went with Lua as a scripting language but I ended up building my own scripting system for something a bit more powerful that could bind to the game engine easier

Damn. How come I never came across Handmade Hero. He is doing pretty good stuff. Looking at the videos, it's about 460 numbers of 2 hours video each.= 920 hours
1 month = 31*24 = 720 hours.
It would take me around 3 months to complete the videos. Fuck.

Nobody should be following tutorials for that long. It may be full of useful information but you aren't going to learn by copying someone else

How old are you now?

32

If your goal is to make a game, I think it's a bad idea.
If your goal is to make an engine, learn about CS in general, and maybe the game itself is secondary -- then go for it.

27 here. Trying to make game engine for last 1.5 years. Just able to draw some cubes. Should I continue?

It depends on the game really. If it really can't work with current engines, make your own. For example, KSP definitely should not have been using unity.

Depends what your goals are
Making an engine without a game to go with it is a fruitless pursuit
You need an end goal to give it context

I say these subjects you will need.
>Linear algebra
>Analytical geometry
>Optics
>Image processing
>Computer graphics

For what language? Start with a simple frameworks. Game engines are too bloated for beginners.
C++: SDL
Java: LibGDX

show us your games written in c/c++ or remain a faggot forever

>Trying to make game engine for last 1.5 years. Just able to draw some cubes.
The hell?
You should better stop programming.

Scripting was probably a huge waste of time.
Could have just used runtime reloaded C instead of embedding a scripting language, like in Handmade Hero.
The whole implementation for that took him just a few hours with all of the explanations.
No stupid interfacing and all the power.
But I guess scripting languages are popular for whatever reason.

>Scripting was probably a huge waste of time.
Content-heavy games need scripting languages. You can't define all your gameplay through simple data files or compiled code. Dynamically typed languages are great for making GUIs too, another thing my game needs alot of. It depends what you're trying to make

>Content-heavy games need scripting languages.
No, they don't, I think.
In what ways is your scripting language better so that you can't use the language your engine is written in?

>I think
well you're making an assumption, engineering a large game has proven to me otherwise
I CAN use my base language, it's just much slower and less efficent. You don't want to define large amounts of data in a statically-typed, compiled language, and being able to iterate quickly is crucial for actually designing a good game

if you're new to programming in general don't start with games, otherwise i'd choose unity

I remember construct 2 being piss easy

>You don't want to define large amounts of data in a statically-typed, compiled language
I am asking why. I don't see it.
In my experience static types helps me prevent bugs.
Quick iteration mostly comes from code reloading, which can be done with C too.
>it's just much slower and less efficent.
But if you have invested so much time into making the interfacing for your scripting language, then this can't really be much of an argument.
Also I don't know what type of game you are talking about.

>I am asking why. I don't see it.
have you seen a json file? that's a much easier way to define data than typing it out in C, it automatically infers data types, you can nest arrays and maps just with [] and {}. My language began as a simple data definition language aswell but expanded into a full scripting system because I needed logic and functions in there too. The time I invested into a script system has already paid off after I started making the UI for the game and game tools, defining GUIs is so much easier in a dynamically typed language (because UIs need to communicate with so many different types of objects) where you can use lambdas and dynamic code everywhere

I'd recommend Unity.
Easy to learn and well documented.
There are a lot of tutorials on youtube to beginn with

Have you seen imgui and the like?
Making UIs with it in C is pretty damn easy, so I don't see why one would _need_ a scripting lang just for the UI.
And naturally I have seen JSON, but I personally just prefer C like structs. Writing out the types isn't really much of a hassle.
To me it sounds like you are justifying why you did what you wanted to, but it isn't convincing to me at all why one would prefer embedding a scripting language to just programming in C, apart from the code reloading (which can also be done in C if you know how).

You don't need a scripting language just for the UI. I said you need a scripting language for a big game. UI is just one use. All the uses add up, the biggest use is just defining all the data you need for the game. You can say "I prefer X" but that doesn't change the fact that one is objectively more efficient than the other. Even if you aren't scripting, every game bigger than a basic platformer uses some externally defined data, and when that data starts needing some logic of its own it naturally evolves into scripts. I don't prefer scripts over native code, I still write native code where it's more efficient, they both have their strengths and their weaknesses

>I said you need a scripting language for a big game
I still have no idea what type of game you are talking about,
and I'd wager the notion of needing a scripting language is false, unless you are making the scripting language for others to use (artists and programmers, who aren't well versed in low level programming)
You claim otherwise, but instead of providing concrete examples as for why you think so, you just say dynamic typing is better for making the game-code and the UI, which I doubt.
> and when that data starts needing some logic of its own
You just write some functions which act upon the data?
> it naturally evolves into scripts.
It may happen to evolve into scripts, but that doesn't make a convincing argument, nor does it mean that it's better this way.
I would rather not program my gamecode in Javascript. You may think it's a good idea, but I really don't.

>I still have no idea what type of game you are talking about,
I'm making an RPG, which has tons of content and tons of systems, it's applicable to any genre of game so long as it's a big
Reasons dynamic typing is better for UI:
- UI doesn't need to be fast seeing it's event driven and only needs to handle a single event per frame (if any)
- UI communicates with almost every part of the program so if it were statically typed you'd be typing ALOT of type names, also if you have a complex UI like I do with hundreds of types of objects the UI gadgets themselves end up having huge type names
- Functional programming stuff is also good for UI which many compiled languages aren't great at
>You just write some functions which act upon the data?
sometimes the functions are the data. For example I have inventory table generators for generating the contents of things in the world, which are stacks of generator functions, which are much easier to write out in the scripts for the same reason. I don't know how fast reloading C is, but compiling hundreds of files for me can take minutes, I can reload hundreds of scripts in less than a second
>I would rather not program my gamecode in Javascript. You may think it's a good idea, but I really don't.
I program gameplay logic natively. I wouldn't script it either because it's slower and imprecise. I make game content using scripts.

The easiest engine (which is the best engine for any beginner if it allows you to create and finish a project in a reasonable, manageable development timeframe - finishing and shipping is the most important skill in any software developer, but especially in games) is likely to be something closely tailored to what you want.

We're talking stuff like RPG Maker, Ren`Py, GameMaker Studio, or failing that Unity.