Idea about game engine for Linux

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
Post Reply
tongtunggiang
Gnoblar
Posts: 5
Joined: Tue Nov 03, 2015 8:09 am

Idea about game engine for Linux

Post by tongtunggiang »

UPDATE: The engine has been open-sourced!!!!!

With such a big project is this, only me is not enough, since I'm young and inexperience. I do this project completely for contributing for the community, so I accept every helps from the community as well. Feel free to discuss and contribute, because I'm so eager to learn from you!

This is where the project is currently located at: https://github.com/TongTungGiang/MagEngine

For those who have interest, this is my email: tongtunggiang@gmail.com.

Thank you very much!


-------- 3/11/2015 ----------------------
Hi all,

I'm a university student in Hanoi, Vietnam, and there is about one year and a half until my graduation day. My plan for graduation project is clear: make a game engine for Linux based system, since Linux has received many positive attraction for gaming now (games for Linux on Steam are more and more, Unreal Engine and Unity Engine have their Linux-port version - although it's not officially).

I chose Ogre as my rendering engine, because writing a complete new rendering engine is a hard and somehow redundant work. Also, I want to concentrate on features that a game developer can use to make his game, and rendering is just one of those features. Furthermore, Ogre was originally developed with Linux, so I think it would be a nice choice. And lastly, Ogre has many plugins, which makes it almost becomes a game engine.

I really like the design of Unity Engine - they focus on easy-to-use ability. For Unreal, it is so fucking powerful but very hard to understand because it's too large (and it requires a beast PC as well). The aim of the project is to combine two approaches: easy-to-use (from Unity), and powerful (from Unreal). I know, this is not an easy work, especially I'm working alone (comparing with Unity and Unreal Engine, they both have a big companies and most intelligent brains behind them). But I will try my best.

I will post my problems and issues here, hopefully you will support me. Every help will be appreciate.
p/s: maybe some of my questions (or maybe, all of them) are stupid, because I'm an inexperience developer. Please, be patient with me.

Regards,
Last edited by tongtunggiang on Thu May 05, 2016 12:59 pm, edited 1 time in total.
xrgo
OGRE Expert User
OGRE Expert User
Posts: 1148
Joined: Sat Jul 06, 2013 10:59 pm
Location: Chile
x 168

Re: Idea about game engine for Linux

Post by xrgo »

Hi! Welcome!! :D
making a game engine is not easy but its definitely doable in 1.5 years, it depends on the scope... but here are many experienced people that can help you. Do you have any experience?

My personal recommendation is for you to start with Ogre 2.1 right away!!, but many people might disagree... to explain a little why:

The recommended/stable version is 1.9, most of the documentation, forum posts, and people projects are using this version (or similar ones, 1.8, 1.10)
then there is 2.0, that is like a transition to 2.1 where the big changes comes!
I was using 1.9, then I jump directly to 2.1 and the performance improvement was HUGE, the Hlms (new material system) is awesome, very powerful and beautiful, shadows are easier to setup, the new compositor system is very powerful, its the most active developed branch, etc etc.
That's why I encourage people to start using 2.1, even thou there's no much documentation, and is not stable, whit this I mean its a WIP, and things might change, but it not going to crash and has little or none bugs, and some little features are missing. The main concern that you might have with 2.1 is that doesn't support DX9, and OpenGL<3, and its never going to support it... and doesn't support Android and OSX, but those are in the way =)... But If you only need it for linux as you mentioned that shouldn't be a problem.

Good luck!!!
tongtunggiang
Gnoblar
Posts: 5
Joined: Tue Nov 03, 2015 8:09 am

Re: Idea about game engine for Linux

Post by tongtunggiang »

xrgo wrote:Hi! Welcome!! :D
making a game engine is not easy but its definitely doable in 1.5 years, it depends on the scope... but here are many experienced people that can help you. Do you have any experience?

My personal recommendation is for you to start with Ogre 2.1 right away!!, but many people might disagree... to explain a little why:

The recommended/stable version is 1.9, most of the documentation, forum posts, and people projects are using this version (or similar ones, 1.8, 1.10)
then there is 2.0, that is like a transition to 2.1 where the big changes comes!
I was using 1.9, then I jump directly to 2.1 and the performance improvement was HUGE, the Hlms (new material system) is awesome, very powerful and beautiful, shadows are easier to setup, the new compositor system is very powerful, its the most active developed branch, etc etc.
That's why I encourage people to start using 2.1, even thou there's no much documentation, and is not stable, whit this I mean its a WIP, and things might change, but it not going to crash and has little or none bugs, and some little features are missing. The main concern that you might have with 2.1 is that doesn't support DX9, and OpenGL<3, and its never going to support it... and doesn't support Android and OSX, but those are in the way =)... But If you only need it for linux as you mentioned that shouldn't be a problem.

Good luck!!!
I'm not so sure about the scope yet. Maybe I just need to make the API first, or I will work hard to finish the engine's editor too. I prefer the later, but I still need to finish the API.

At this time, I'm still struggling about making the design which is independent on the background - Ogre. I need to do this, because when I want to change the background (maybe the newer version of Ogre, or a whole new 3D rendering engine, or an additional 2D graphics library...), the interface that I provide for my users won't be change so much. And I still want to stick with Ogre 1.9, because the documentation and problems' results are large enough for me to find whenever I want. I already knew that Ogre 2.x has a huge improvement on performance, I will take a look at this later, but not now.

I just have some experience with Unity (at my company that I'm working as a part-time job right now). That's why my questions can probably very silly :p
User avatar
WilliamKappler
Kobold
Posts: 33
Joined: Mon Feb 16, 2015 8:37 pm
Location: Raleigh, NC
x 2
Contact:

Re: Idea about game engine for Linux

Post by WilliamKappler »

If you want to make a general-purpose engine, I'd say the first thing you need to think about (probably even before graphics, but you seem happy with Ogre) is a scripting engine, or some kind of API structure. Most general-purpose game engines are more or less scripted these days, but in the open source world you can be a little more flexible with that.

A good number of game engines now have all the logic built in some scripting language (like Lua or Python) and just provide the resources normal games need. Of course, you don't have to go that route, and it might not be preferable to do so in some contexts.

The engine I am developing explicitly has no scripting language, and it's intended that game logic would be implemented in C++ for my game and any others using the engine. That kind of structure wouldn't go over well with some people, though, and probably is a bad choice for general-purpose; my engine is explicitly for only grand strategy games, like Crusader Kings/Hearts of Iron/Victoria, and part of my decision for no-scripted logic is that those sort of games spend a lot of their computational time calculating game logic, a lot more than your typical FPS or hack and slash.

As such, you probably should think about how people will actually use your engine, then build it around that. You can plug support for each kind of resource (probably in the order of input, graphics, sound) into that system. It's really the structure of it that'll determine if it accomplishes your goal (of being simple and powerful) and indeed possibly if it goes anywhere at all.
Software Designer • World Builder • Game Designer • Engineer
User avatar
TheOnlyJoey
Halfling
Posts: 53
Joined: Sun Apr 10, 2011 12:05 pm
Location: The Netherlands
x 6
Contact:

Re: Idea about game engine for Linux

Post by TheOnlyJoey »

A noble cause!

As some one who has been doing game engine development since 2011, I can give you a couple of hints on what to do and what not to do.

If you want to go for the highest quality graphics and bleeding edge features, go with Ogre 2.1 and HLMS as a base and go GL3.3+ exclusive, this way you can even target windows and mac osx without to many problems (although I love the idea of a Linux first engine).
If you want to go for stability and extendibility go for Ogre 1.10 since that also has HLMS and GL3.3, but also benefits from years of plugins and stability.

If you want to have a basic physics/collision system, use something that 'justworks' and move on to more exiting things. (most physics things are straight forward).
I would suggest using Bullet, since bullet is mature, stable and industry proven (also easy to hook into Ogre).
On the GUI side I would suggest using MyGUI, good tools, good features, clean codebase and easy to extend, they also have a branch for Ogre 2.1.

For logic/editors, things get interesting, since this is something a lot of people disagree over, we personally have gone for a workflow where we use Blender as a total game development tool, and setup our own easy parsed logic, both which is non-standard (but very powerful).

If you want to go for the Unity/UE route, build everything around a real time render viewport.
Take a toolkit like QT, GTK3 or WXWidgets and have your ogre renderer as a view in there and build your functionality around that.
Save/Load everything into a custom format (I would recommend adapting/extending the .scene format, I use a functional loader in my HMD example demo https://github.com/OpenHMD/OpenHMDDemo) and save/load your settings from there.
For scripting, I would recommend using something Python-esque, since it has become quite standard on high schools and university's and is easy to get into.
Also there are a lot of Python interpreters for C/C++, you can even construct logic blocks with python in it and go the 'logic block' route.

Also, get things functional, experiment and don't get stuck in optimizing hell if your performance is still good enough. Getting things functional and optimize later can help you finishing a project instead of getting slow results. (but think about what you are doing while implementing, since that can solve a lot of headaches)
tongtunggiang
Gnoblar
Posts: 5
Joined: Tue Nov 03, 2015 8:09 am

Re: Idea about game engine for Linux

Post by tongtunggiang »

UPDATE: The engine has been open-sourced!!!!!

With such a big project is this, only me is not enough, since I'm young and inexperience. I do this project completely for contributing for the community, so I accept every helps from the community as well. Feel free to discuss and contribute, because I'm so eager to learn from you!

This is where the project is currently located at: https://github.com/TongTungGiang/MagEngine

For those who have interest, this is my email: tongtunggiang@gmail.com.

Thank you very much!
tongtunggiang
Gnoblar
Posts: 5
Joined: Tue Nov 03, 2015 8:09 am

Re: Idea about game engine for Linux

Post by tongtunggiang »

Update: the engine has been open-sourced!!

I'm looking forward to get advices from all of you!
tongtunggiang
Gnoblar
Posts: 5
Joined: Tue Nov 03, 2015 8:09 am

Re: Idea about game engine for Linux

Post by tongtunggiang »

I need help for current works:
- Seperating CMake project file for the engine and the demo. It's not good having both of them in one CMake project.
- Implementing an event system that is extensible, of course; and is able to use cross-subsystem or in each subsystem internally, for example: Physics Subsystem can send messages to game actors, or game actors can trigger events and notify others that the events are fired.

The CMake works is a little bit annoying since I am very amateur in build scripts, so if you guys can contribute it is very great. And for the event system, I need some advices of an effective message listener delegates.
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Idea about game engine for Linux

Post by frostbyte »

how come you say it's open-source and put it on git-hub while not putting any licence?
just make it mit licence...

now for messaging/component entity system etc... the most powerful system i've seen( component/entity+messaging+multithreaded ) was in ogitor2 https://bitbucket.org/ogitor/ogitor-v2 it was based on the "smoke" demo from intel, afaik ogitor2 development is on hold for now...

you asked for advice regarding the project so here goes( warning: my advices sometime may sound a bit harsh/critic )
i don't think ogre community has anything to gain from yet another small/half baked students "game engine" project lying around on github( there are literly hundred's of those ), the least you can do to make it download-worthy is to use ogre2.1 or make it work seamlessly with ogitor or better yet do both...
goodluck, have fun...
Last edited by frostbyte on Wed May 25, 2016 2:06 am, edited 1 time in total.
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Idea about game engine for Linux

Post by Thyrion »

@tongtunggiang
you're already making a "TankShooting" game in unreal.
Why do you still want to go through the hell: coding your own game engine? :)
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 114

Re: Idea about game engine for Linux

Post by mkultra333 »

Speaking as someone who's been writing a game engine part time for 7 years... I don't recommend it. Not unless you really, really want to.
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.
Post Reply