Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 02:25:05 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)What would you expect from a game engine?
Pages: [1]
Print
Author Topic: What would you expect from a game engine?  (Read 845 times)
Daid
Level 3
***



View Profile
« on: July 12, 2018, 09:18:08 PM »

No, this isn't a topic about which game engine I should use.
No, this isn't a topic to pitch a game engine I made.


This is a question of curiosity. I've made my own game engine (actually, I'm on the 2nd iteration) I really like toying with it. But I do not consider it anything serious for other people to use.

However, I found myself curious in what other people are expecting from game engines. What features do you look for/want in an engine? What made you choose your current one?
Logged

Software engineer by trade. Game development by hobby.
The Tribute Of Legends Devlog Co-op zelda.
EmptyEpsilon Free Co-op multiplayer spaceship simulator
verdog
Level 0
**



View Profile WWW
« Reply #1 on: July 13, 2018, 05:20:05 AM »

All I really need to make a game is game states/rooms, a way to put sprites on screen (and animate them), a way to handle sounds, and collision detection.

Maybe particles? You could probably make your own in the above theoretical game engine though.
Logged

Janionano
Level 0
**



View Profile
« Reply #2 on: July 13, 2018, 05:34:23 AM »

The engine must have a certain resolution to render, but scale up to the device resolution.
Should have a easy way to create non-verbose scripts.
I say this because a few years ago I've created a engine, but it did not do that.  Durr...?
Logged

oahda
Level 10
*****



View Profile
« Reply #3 on: July 13, 2018, 05:56:16 AM »

I've ended up spending more time on the tooling than the actual engine TBH. I'm okay writing all sorts of systems myself, but I don't ever want to have to manually set up cross-platform builds or resize my icons and splash screens or package assets by hand again. Automating as much as I can. I'm also currently putting a lot of effort into text rendering and localisation. Input is another thing… Unity's native gamepad support is still so bad that you can't really release a professional game without paying for a plugin, for instance. Stuff like that often seems to be neglected but is really important to me. Sad
Logged

ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #4 on: July 13, 2018, 09:16:31 AM »

Modularity as a core design principle. If some component doesn't do the job, the engine shouldn't fight me if I want to write my own implementation to fit my needs better than the provided one. Open source (the entire thing, not just parts of it) is pretty much a must.
Logged

Daid
Level 3
***



View Profile
« Reply #5 on: July 17, 2018, 10:58:05 PM »

All I really need to make a game is game states/rooms, a way to put sprites on screen (and animate them), a way to handle sounds, and collision detection.

Maybe particles? You could probably make your own in the above theoretical game engine though.
Not sure if I get your states/rooms comment. You mean like levels? My engine has something called "scenes" and scenes can be active or not. That's what I use to switch between different main states of my game experiments (main menu, level select, game-play).
But I don't have anything in place that resembles a level loader. It's not that hard to build with the parts I do have. But nothing fixed in place.

To continue on that, scenes are populated with "nodes", and those nodes can be rendered. I have a sprite-flipbook animation support, nothing super advanced, but works good enough for a Mario clone.

Sounds are pretty much abstracted to
Code:
sp::audio::play("filename.ogg")
. I have been thinking about the possibility to attach sounds to animation frames. But I haven't done so yet.

Collision detection, yes, got that in place. Box2D for 2D collision detection, using physics part of it is optional. Also got some support for Bullet3D support for 3D collision detection, but that hasn't had much use yet.

Particles, yes. Got that pretty much covered. Still tweak this every time I use it. But it has some optimizations in place which makes it work a lot better then spawning a few 100 normal objects.

The engine must have a certain resolution to render, but scale up to the device resolution.
Should have a easy way to create non-verbose scripts.
I say this because a few years ago I've created a engine, but it did not do that.  Durr...?
Rendering is always done do a "virtual resolution", but using the full screen. As I'm rendering with OpenGL, it's not that hard to scale things. However, does mean it's pretty much impossible to get pixel perfect rendering. The word "pixel" pretty much isn't used at all in my code.

non-verbose scripts? Like scripts for sequences/conversations with NPCs? The engine allows for pretty easy binding of C++ code to lua scripts. And multiple lua scripts can be ran at the same time, with "yielding" as Lua calls it. Allows for things like scripted sequences with very little script code. But you do need to setup the C++ side, so the script doesn't have to be very verbose. But the C++ can be a bit more complex. Curse of flexibility ;-)

I've ended up spending more time on the tooling than the actual engine TBH. I'm okay writing all sorts of systems myself, but I don't ever want to have to manually set up cross-platform builds or resize my icons and splash screens or package assets by hand again. Automating as much as I can. I'm also currently putting a lot of effort into text rendering and localisation. Input is another thing… Unity's native gamepad support is still so bad that you can't really release a professional game without paying for a plugin, for instance. Stuff like that often seems to be neglected but is really important to me. Sad
Well, the build system isn't useless, but only supports Windows and Linux right now. Sounds like mobile development requires more advanced asset preparation. But I don't have a lot of experience with that part. Android support isn't out of the window, but I have no iOS plans.
I have text rendering in place, but it doesn't work great at smaller pixel sizes. Mostly due to the lack of pixel perfect rendering support.

Input support, I have keybinding support, where any keyboard button, joystick button or joystick axis can be bound to. But what is the issue with stock Unity gamepad support? The library I'm using has issues with not being able to see the difference between 2 of the XBox controller triggers. Common issue with gamepad support, thanks to 2 different ways to access gamepads.

Modularity as a core design principle. If some component doesn't do the job, the engine shouldn't fight me if I want to write my own implementation to fit my needs better than the provided one. Open source (the entire thing, not just parts of it) is pretty much a must.
Open source it is. https://github.com/daid/SeriousProton2 build on top of other open source libraries.
Modularity, depends, quite a few parts are "optional" so to say. But there are core parts that are used everywhere. Like the custom smart pointers, the resource providers, scenes and nodes, and the core rendering system. But it's all quite modular up from there. It's one of the reasons I started this, I like full control.
Logged

Software engineer by trade. Game development by hobby.
The Tribute Of Legends Devlog Co-op zelda.
EmptyEpsilon Free Co-op multiplayer spaceship simulator
verdog
Level 0
**



View Profile WWW
« Reply #6 on: July 18, 2018, 05:23:49 AM »

...
Your scenes sound more or less like what I called states/rooms. Smiley
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic