OGRE RTS Engine version 0.4

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

OGRE RTS Engine version 0.4

Post by Eliascreate »

Hello all!

I'm developing a RTS Engine with Ogre3D. I'm now starting a thread and making the engine open source as well. Would be fun if people want to join.

A lot of behind the scenes of the engine has been made. Things that has been made include:
  • Game framework
  • Unit system
  • Unit selection
  • Unit movement
  • Unit animations
  • Unit attack system (New)
  • Unit build house system
  • Unit healthbars
  • Minor collision detection when moving units
  • User interaction and keyboard binding and shortcuts
  • MyGUI integration
  • Load different unit types from a custom fileformat
  • Load different levels from a custom fileformat
  • Use a custom terminal with functions directly ingame
These can all be further developed



Update 0.4: Windows binary can be downloaded here
Update 0.4: Unit attacking system working
Update 0.4: Medieval 3D tower

Here is a link to the source and binaries at my bitbucket https://bitbucket.org/elias_ericson/c-o ... engine/src
Currently it works on Windows and Linux Debian.

--- Interaction ---
Select units with the mouse, left click and drag
Right click to move selected units
Move mouse in corners of the screen to move the camera
With selected units you can control bind using CTRL+1 or any other number.
Press the key, the number you binded, e.g 1 to select those units again or dubble tap e.g (1) to select and move the camera to the unit-group you binded.
Delete selected units with G, add a new sinbad unit with H
With a selected unit, use E to build towers
With selected units, use R to start attacking a unit
F1 to open command line

Image
Image
Image
Last edited by Eliascreate on Wed Aug 12, 2015 10:54 pm, edited 5 times in total.
loath
Platinum Sponsor
Platinum Sponsor
Posts: 290
Joined: Tue Jan 17, 2012 5:18 am
x 67

Re: OGRE RTS Engine

Post by loath »

nice work! the source is very clean and easy to read.

do you have a specific type of RTS you would like to make? (while developing the general purpose RTS engine)
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

loath wrote:nice work! the source is very clean and easy to read.

do you have a specific type of RTS you would like to make? (while developing the general purpose RTS engine)
Thanks! Yes my main inspirations are age of empires, warcraft and starcraft. Actually I was creating a warcraft map a long time ago that I really liked and we played it alot so my plan is to make that map a stand-alone game.
User avatar
Herb
Orc
Posts: 412
Joined: Thu Jun 04, 2009 3:21 am
Location: Kalamazoo,MI
x 38

Re: OGRE RTS Engine

Post by Herb »

Are you planning on multiplayer with this? If so, that can really change the architecture of things with syncing physics and moments. Good start on things on though. I'm peeking at the code now. :wink:
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

Herb wrote:Are you planning on multiplayer with this? If so, that can really change the architecture of things with syncing physics and moments. Good start on things on though. I'm peeking at the code now. :wink:
Yes multiplayer is planned! Thanks, yeah my original idea was to have a tcp socket stream. Sending sockets only when the players do inputs, such as moving a control-group of units by having units selected and then right-clicking. Then simulating the units of each player on all the clients. For example, player 1 clicks on unit-34 to move, then we only send the unit-id and position through the server. But syncing physics and moments with accuracy would change the architecture so yeah that might be a good idea. Probably with UDP or?
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: OGRE RTS Engine

Post by Zonder »

Eliascreate wrote:
Herb wrote:Are you planning on multiplayer with this? If so, that can really change the architecture of things with syncing physics and moments. Good start on things on though. I'm peeking at the code now. :wink:
Yes multiplayer is planned! Thanks, yeah my original idea was to have a tcp socket stream. Sending sockets only when the players do inputs, such as moving a control-group of units by having units selected and then right-clicking. Then simulating the units of each player on all the clients. For example, player 1 clicks on unit-34 to move, then we only send the unit-id and position through the server. But syncing physics and moments with accuracy would change the architecture so yeah that might be a good idea. Probably with UDP or?
Have a read of this article http://gafferongames.com/networking-for ... etworking/

Also don't use sockets yourself use a library that is designed for this. Here is one I know people are using http://enet.bespin.org/

You might also find this interesting http://www.open-game-protocol.org/index.php
There are 10 types of people in the world: Those who understand binary, and those who don't...
User avatar
Herb
Orc
Posts: 412
Joined: Thu Jun 04, 2009 3:21 am
Location: Kalamazoo,MI
x 38

Re: OGRE RTS Engine

Post by Herb »

Zonder's link to gafferongames is an excellent read on the subject, so +1 for that. :D

Also, for networking, I'd highly recommend UDP over TCP. To keep you from writing a whole networking framework yourself, check out RakNet. It was proprietary, but Occulus bought it and open sourced it. It uses UDP and handles re-transmission, ordering messages, and has done of addons for NAT punch through, lobby, object syncing, etc...too much to really list. I've used it in the past for Ogre projects and loved it.
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

Great links Zonder I will have a read later.
Also, for networking, I'd highly recommend UDP over TCP. To keep you from writing a whole networking framework yourself, check out RakNet. It was proprietary, but Occulus bought it and open sourced it. It uses UDP and handles re-transmission, ordering messages, and has done of addons for NAT punch through, lobby, object syncing, etc...too much to really list. I've used it in the past for Ogre projects and loved it.
Yes RakNet! I tried some of its simple tcp functionality for another project a while ago which worked out really good so RakNet is probably best choice now when it is open source, plus it has a crazy amount of functionality!
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: OGRE RTS Engine

Post by Zonder »

Herb wrote: Also, for networking, I'd highly recommend UDP over TCP. To keep you from writing a whole networking framework yourself, check out RakNet. It was proprietary, but Occulus bought it and open sourced it. It uses UDP and handles re-transmission, ordering messages, and has done of addons for NAT punch through, lobby, object syncing, etc...too much to really list. I've used it in the past for Ogre projects and loved it.
Yeah that's why I recommend enet as it's reliable UDP, raknet completely slipped my mind when posting and it is defiantly a better fit here.
There are 10 types of people in the world: Those who understand binary, and those who don't...
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

I'm trying a lot to create a windows compilation and makefile for the project currently i only have a makefile for linux but we need a windows makefile. I'm upgradeing the project to ogre 1.9 and trying to compile it with visual studio 2013 now on windows. I downloaded all necessary libraries from the ogre-snapshot thread http://www.ogre3d.org/forums/viewtopic.php?t=69274. All seems to be working except for finally linking MyGUI. It compiles for a long time and starts linking ogre fine and then when it starts linking mygui it first says

Code: Select all

MyGUI.OgrePlatform.lib(MyGUI_OgreRenderManager.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in AdvancedOgreFramework.obj
All I did was using the libraries compiled on the snapshot thread using the same compiler (vs 2013).
error message says something about MD and MT realease i have no clue how to solve this.
This is what the makefile looks like https://bitbucket.org/elias_ericson/c-o ... ?at=master
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: OGRE RTS Engine

Post by Zonder »

I would suggest you switch to cmake.

http://www.cmake.org/

http://www.cmake.org/cmake-tutorial/
There are 10 types of people in the world: Those who understand binary, and those who don't...
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

I used cmake to recompile mygui from source and then i created a custom visual studio solution which worked but it has some crashes that didn't occure on the linux build so i will fix them before i upload the windows build which also will include unit attacking functionality and a new model i've done in blender that people can use for free when i upload next release of the engine in like a few days Image
User avatar
nevarim
Gnoll
Posts: 675
Joined: Mon Jul 05, 2010 6:16 pm
Location: Pavia Italy
x 4
Contact:

Re: OGRE RTS Engine

Post by nevarim »

nice work :)

good luck :D
i'm a noob until proven otherwise :D
used in my project ;) and thanks to everyone :D
Ogre 3d
Mygui
Skyx
Hydrax
MOC
CCS
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine

Post by Eliascreate »

nevarim wrote:nice work :)

good luck :D
Thanks!!!

I uploaded a new version today with bug fixes a new medieval tower and unit attacking system with a working windows port.

Windows binaries can be downloaded here https://drive.google.com/file/d/0BwVXbA ... sp=sharing

[youtube]lag0HTbwm-8[/youtube]
User avatar
nevarim
Gnoll
Posts: 675
Joined: Mon Jul 05, 2010 6:16 pm
Location: Pavia Italy
x 4
Contact:

Re: OGRE RTS Engine version 0.4

Post by nevarim »

i will try this evening :D

a suggest for a rts :)
there was a nice idea on a past rts here
https://it.wikipedia.org/wiki/Total_Annihilation

user can add unit after binary release with own stat^^
i'm a noob until proven otherwise :D
used in my project ;) and thanks to everyone :D
Ogre 3d
Mygui
Skyx
Hydrax
MOC
CCS
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine version 0.4

Post by Eliascreate »

nevarim wrote:i will try this evening :D

a suggest for a rts :)
there was a nice idea on a past rts here
https://it.wikipedia.org/wiki/Total_Annihilation

user can add unit after binary release with own stat^^
Nice! Yes you can already add units after binary release in the file unitdata in my projekt. However it can be made better with more functionality !
Eliascreate
Kobold
Posts: 25
Joined: Tue Jul 28, 2015 6:10 pm
x 3

Re: OGRE RTS Engine version 0.4

Post by Eliascreate »

What are your thoughts, 1. To create this engine as a complete engine that you can mod or 2. A library API you can include into any project? Which option is more likely for people to use? Myself I think an API is better.
User avatar
nevarim
Gnoll
Posts: 675
Joined: Mon Jul 05, 2010 6:16 pm
Location: Pavia Italy
x 4
Contact:

Re: OGRE RTS Engine version 0.4

Post by nevarim »

mod is to set "complete" a game so other team can work to set it more nice but is more hard to program
with an api instead only programmer can work on game

so for me is more hard for game programmer but more complete
api at the end is more work for programmer because at the end only he then can add units

so is better at the end choice 1 :)
i'm a noob until proven otherwise :D
used in my project ;) and thanks to everyone :D
Ogre 3d
Mygui
Skyx
Hydrax
MOC
CCS
Post Reply