[Project] RTS game engine : OpenRTS is released


This would indeed be very awesome to have as an open-source community game. Count me in on contributing art assets if this is released under a FOSS license!


Hi Ben,

Sorry I didn’t reply sooner. Thanks for the detailed answer about the mapping of geo. I’m actually taking the Blizzard approach for my editor. In fact my first pass was just as you described…

b b a a
b b a a
  o b b
    b b

I then realised the exact issue you brought up. I changed my mesh tile sets to allow for…

c b c
b a b
c b c

where c represents corners. I’m checking in eight directions around the placed elevation and comparing each piece against what is currently on the map. Then I have a lookup table to determine the appropriate mesh tile to set at that location. The lookup tables size isn’t bad, and I’m implementing a way to have multiple meshes for each tile that would get randomly chosen. This way I can have different meshes representing a corner and it helps keep the map from looking too repetitive.


It’s a long way to go so… good luck !

yes I think that I will do that but for a first releas, I have doc to write and tons of other things to do for now :smile: maybe in a few months


Ok, great :wink:
Although realistically speaking you might forget or be distracted otherwise and if you released the code now people might help with the docs (a wiki + issue tracker is very easy to set up on the github code repository) or at least have a start at hacking right away. But it is totally up to you of course.


I just realised only half my message was posted. Check above for the complete post :slight_smile:


OK this is decided :

The project becomes open source !

To be honnest, it is already on a github repository since the beginning (in stealth mode :smile:)
Now I will communicate, invite contributors, create a wiki/forum/doc for the community to use it if possible !

All graphical content is also open source, with the kind authorization of Draax, it’s author.

Some textures are not free to use (quickly grabbed on Internet for testing purpose) and will need to be replaced.

Of course, I will need help and the first question is : what name to give to the repository?

  • OpenRTS?
  • OpenCraft?
  • arg ! lack of ideas…

While you make proposals and debate, I will began the wiki.

Thanks to all of you for your enthusiasm !



Awesome, time to look into asset import for jmonkey engine :wink:

Freecraft/Opencraft are kind of “burned” names since the Blizzard legal action see: http://en.wikipedia.org/wiki/Stratagus

Random name ideas: jStrat, Jarts, Stratava, hmm Farts? :wink:


Since it is a jmonkey plugin, I’d suggest some monkey-themed name:


…stuff like that :chimpanzee_amused:


just my 2cents:


Which licence you are using? GPL is not ne solution for everything. BSD like jmonkeyengine will be great.


Is it a crafting game? I didn’t get that from the description so far.


I guess it’s a pun on WarCraft and StarCraft, both of which are popular RTS made by Blizzard.


But as *Craft goes has long since been subsumed by Minecraft in the ethereal consciousness or “BlankCraft” games.


I have to say that the RTS engine is not really attached to jMonkey. It has a MVC structure and jMonkey Engine is only used in Controller for inputs and app launch, and in View, of course. The Model itself, which is the main part of the code, is totally jMonkey independant.

For the licence, I don’t want to prevent any commercial use so I’m thinking about a MIT or Apache licence. Let me know what you think about that point.

I’m currently transalting the issues of the repository, and making some schemas to add to the wiki. WIP !

So we have a free and open source real time strategy engine coded in Java, micro-management-oriented, tile-based and totally generic in term of content. The word “craft” was a legacy from stracraft 2 (from which the engine is LARGELY inspired) but may not be a good idea.

I love @Pesegato 's proposals ^^ but I think about a more generic name like OpenRTS.

Thank you for your opinion and participation !


Even if the RTS engine isn’t attached to jMonkey, IMHO the games built on top of it likely will. :wink:

Awesome! :smiley:

Too late, already taken: http://sourceforge.net/projects/arrakis/


Any news here? :innocent: Sorry, but I can’t expect to look and use your code for some ideas.


Having the Engine seperated from JME is actualyl the correct way to build a clean system. JME is visualisation input, but not more. So big + for that.

BSD license would be another alternative, it’s the license JME3 uses as well and is pretty similar to MIT.


You said:

There are tons of implementation for a grid based map. My advice is to create

  • the class Map extending an array of Tiles.
  • the class Tile, generic, with only two Integers x&y and a reference to the containing Map.
    Then you extend Tile for more specific class like Ground with z coord, Cliff with ciff shape, Water, etc.

Can this be done be done like this that, I display images of tiles on a mesh according to a text file to form a map and display it in the X-Z plane. Then it will become easy to add the heightfield; My concern is not how to abstract and encapsulate tiles, but how to display them. Can you please help me out with the code?


For the displaying of the tiled map, I’ve made one big mesh (in fact divided into parcels).
That mesh has a vertex for ecah node of the map, aligned to the grid on (x,y) and with a “z” height.
The resulting geometry has a terrain material, which has multiple splatted textures.

I haven’t one display for each tile like in oldschool 2d games (Zelda, Ultima, Warcraft…). My map creates a mesh and I paint textures on it (watch the videos).

I’ve seen your topic on the subject. We could continue that conversation on it if you like.


Sorry to nag, but any updates on open-sourcing this?


Don’t be sorry, I’m working on it but I’m late.

Issues have been translated, code is more verbose and explicite and I have one of two essential schemes in the wiki. I want to release in the next two weeks !

Thank you for your interest.