If someone were to make an engine, what would you look for? Utilities? Efficient Game loops? Productivity?
Something like LibGDX where it takes a lot of libraries and makes them very easy to use. Its also easy to just make a simple game in like an hour. I love it because it simplifies opengl so I don’t have to worry about the low level stuff, yet I still have access to them.
It also means a lot to me, that if 10 different teams all used the same game engine. All of their games wouldn’t control/look similar
Also, that I can see the underlying implementation of things, in case they don’t work how I thought they would.
An engine is way harder to create than a RPG, at least a good one.
There is a big difference between code that third parties wanna use later on and game code only you will see.
A game just has to work and be fun.
A library needs to be fast, working rock solid, be easy to use, coded very well - ready for fixes and improvements, easy enough to read.
Technically it’s much much harder writing a game engine than an actual game.
There are entire companies that write just engines.
id needed 6 years for Rage and their id Tech 5 engine developed alongside.
Libgdx is made by a plethora of smart people over a long period of time.
To be quite honest with you, I would probably never use a tiled game engine. I use LibGDX so I dont have to deal with low level stuff, but I still want to write my own game code. There’s a point when you need to stop using game engines so much for simple things like a tiled game, and start writing your own code. I feel like a lot of newbies use these game engines that pretty much don’t require them to write their own code, and then they can’t figure out how to create their own basic engine. Graphics engines are fine, but simple games like this just don’t need a engine.
Just my two cents, now I await all the people who will tell me I’m ignorant.
If it does something that I’ll never learn within reasonable time, or maybe never at all, I’ll use it.
As a result, I only use LWJGL and Kryonet, where neccessary.
Call me a reinventor of the wheel, I don’t care. I’m a hacker (not to be confused with cracker) and reinventing, to the point of innovating when possible, is what I like to do.
What do I look for in game engine? Nothing, when I need new features I just write new modules, improve existing ones or wrap external libraries around engine (currently TWL and jBox2d).
It’s very interesting how a human being evolves while he is learning new things
About 6-7 years ago, I wanted to do everything myself. I rolled my own render loop, built my own engine, built my own network code, own serialization, own you-name-it-I-have-it.
Pretty much dropped them all, because there are better things out there, with functionality and higher quality and with less bugs then I will ever have time or motivation to write.
So, to the present. I reuse as much as possible, if I want something, I look for libraries and frameworks. The only thing that I roll on my own at the given time is a UI lib, for all libs that I have found are not suiting my needs.
With this introduction, the answer to the question is this. I need the game engine to do as much as possible for me so that I spend as little time as possible on coding the engines and frameworks and as much time as possible on creation content and defining game rules and logic. I want to realize my ideas instead of coding the engines and frameworks. I want to move my toons and zombies, instead of draw triangles. I want to share my world over the internet, instead of sending handshakes and acknowledgments.
keyboard input
mouse input
custom loop generator(that makes a new thread)
graphics support
2d
possibly 3d in later versions
sound
basic mapping support
full GUI support including buttons
custom image objects (that store x,y and can be called to draw from within)
ease of use
should handle all rendering within its own generated loops(loop generator)
full polymorphic support.
Actually, you said “What do you look for in a game engine?”, in which ‘you’ refers to ‘us’ which mean it’s what we look for, and that may not neccessarily be 2D.
Ok. Still, what does he mean my full polymorphic support? I know polymorphism, but how would I ‘support’ it?
Not too sure what he meant either, but probably just proper oop structure?
GUI Utilities, and efficient sound loading with .OGG or .MIDI files!
@Jimmt
Oh, he might have assumed that I would make default ‘player’ and ‘enemy’ classes. In that case, no, I am not doing that. You make the classes, I make some utils, and a framework. That is a game engine (horrible definition, thus why I opened up this post).@Kpars
O man… I have never even heard of .MIDI! Time to study up on sound… I have heard of .ogg though. Isn’t it the completely efficient way to do sound?All these BufferInputStreams are killing me!
Oh, an GUI support seems a must…
JevaEngine supports both OGG, MIDI and WAV. I find though that OGG is more suitable for larger audio files since it does take some time to decompress them (not a big deal since you can precache audio but it does have a noticable effect on load times.) Sound effects like a gun-fire aren’t going to get any smaller with the compression offered by OGG so you mid as well store them as a wav to decrease load times.