# Help selecting engine: Tile-based 2d RPG

## Recommended Posts

x4roth    100
Hello, this is my first post in these forums.

I want to start coding a game but I am having trouble selecting an engine. Here is the basic idea of the game I want to create and the requirements I have for the engine:
[list][*]Multiplayer - single persistent world (mmo-style... should eventually support ~50-100 players and I will be happy).[*]2d tile-based graphics (top-down).[*]Movement, attacks, and spells are all tilebased: you are either in the tile or you arent, your spell either affects the tile or it doesnt, moving right moves you to the tile to your right, etc.[*]Game world will be composed of a bunch of maps (few hundred tiles each) linked with teleports (such as on doors or portals)[*]I want to be able to use a map editor that supports layers and properties so I can more easily design maps and assign properties to each tile such as "blocks spells", "blocks movement", "teleport: map Z, coord (X,Y)". I need a game engine that either includes a map editor or supports map formats generated by an external map editor such as Tiled (TMX).[*]Not necessary but something to help design the client GUI would be nice. [/list]I am already proficient in Java and I have a good grasp of C but I am doing this project in part to help me learn C++. So the engine must use C++.

##### Share on other sites
mongrol    118
If you want to learn then I'd suggest writing the engine yourself. I'm 2 years into my turn based rpg/strategy and now have enough "engine" to start fleshing the game out proper. that's 2 years slack coding too. A non-dad coder could do the same in 3-6 months. I use SFML for the graphics and input. Tiled for the map editor (excellent tool) and TinyXML to parse the Tiled map files plus my own additional map data.

It's a great learning experience and the hardest part is the initial lumps of refactoring that gets done as you quickly increase your C++ skills then want to redo lots of bits. I haven't attempt multiplayer though. I'd expect that to be quite a challenge.

##### Share on other sites
x4roth    100
How do you deal with adding "additional map data"? I was looking for a map editor that would be robust enough that I wouldnt need to add any extra map data outside of the map editor. I'm starting to come to the conclusion that this isnt really possible - so how should I go about adding this extra map info? Do I need to do something like open up the XML files generated by Tiled and manually type in extra information where I want it? I guess if I want a map editor that "does it all" for my game I'm gonna have to code my own tools, huh?

Anyways I think I agree with you, mongrol. The option I'm leaning most heavily towards right now is just buckling down and starting to write the server without an engine. I'll pick up a few libraries along the way as I need them... this is going to be quite an experience, I can tell.

##### Share on other sites
stromchin    102
Why don't you make your own tools and map editors?
If you really like c++, then go ahead and make it in regular directx or something. But if all you need is a tool to create the map and generate a .cpp file with the coordinates of the tiles and contents/layers etc... I recommend xna.
I made my own map creator in there and it couldn't be easier.
c# is easy to pick up, and if you read some tutorials, you'll get how to make stuff on xna very quickly too.

You say you wanted to practice your c++, but I see nothing wrong with expanding your skills, and using the right tool for the right job.

##### Share on other sites
mongrol    118
Each of my maps consists of 2 XML files. There's the .tmx file exported from Tiled and another .xml file containing my extra stuff like particular zones and what monsters are in them. Spawn points and some story text. I read them in with TinyXML along with the Tiled file.

http://tractionedge.svn.sourceforge.net/viewvc/tractionedge/trunk/maps/

##### Share on other sites
wqking    761
Using an existing engine written in C++ won't help you much to learn C++.

If you want to learn C++, write your game in C++ from scratch.
Your requirements didn't require too high skill, so it's not too much if you do all by yourself.

##### Share on other sites
coderWalker    127
Not sure if you have checked out the [url="http://www.byond.com/games/?redir=1"]BYOND[/url] engine.

[img]http://rocketdock.com/images/screenshots/BYOND.png[/img]

It has all of the RPG elements remade
Networking is pre-made and there is a whole Network dedicated to this.
Also chats are integrated in each game.
Supports side and top down tile graphics.
You game could be listed in their catalog.

If you are a beginner I would look into this.
You basically make the maps then program what they should do.
The programming language they use is very basic and applies to Tilebased RPG's

Byond game browser (left), game window (middle), stat info (right), chat (down)

[img]http://www.byond.com/rsc/ultimatum_240.jpg[/img]