Sign in to follow this  
x4roth

Help selecting engine: Tile-based 2d RPG

Recommended Posts

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++.

I would prefer if the engine is free but I am willing to pay if it is absolutely necessary. I want to do this project right and not be forced to work 10x as hard because I wasn't willing to shell out $100.

What I am considering so far: ClanLib + Tiled (map editor)

Please help with suggestions or any comments about using ClanLib+Tiled for what I am trying to do.

~Xaroth

Share this post


Link to post
Share on other sites
Have you looked into any of the RPGMaker programs, other than the multiplayer (which there are probably solutions for), and I believe they are resolution restricted. They meet all your other requirements, and there's a huge community of people that have already figured out how to do quite alot with them.

Share this post


Link to post
Share on other sites
I have used RPGMaker in the past. It makes it stupid-easy to throw together a world - but it wouldn't let me achieve my goal of learning C++. I believe it uses its own scripting language as the only method of writing code. :)

I've changed my mind about the design of the game a little bit. It will be room-based. In other words, you will still see a 2d tile-based game world to move around tile by tile... but you can only see and interact with creatures, players, and items that are in the same tile as you.

The majority of my client interface should be similar to a standard windows form with buttons, multi-line text boxes, and labels. All I really need graphically is a canvas to embed in my client window so that I can draw a grid of 17x17 tiles (each tile 32x32) to the screen.

Share this post


Link to post
Share on other sites
[quote name='x4roth' timestamp='1305763016' post='4812803']
I have used RPGMaker in the past. It makes it stupid-easy to throw together a world - but it wouldn't let me achieve my goal of learning C++. I believe it uses its own scripting language as the only method of writing code. :)

I've changed my mind about the design of the game a little bit. It will be room-based. In other words, you will still see a 2d tile-based game world to move around tile by tile... but you can only see and interact with creatures, players, and items that are in the same tile as you.

The majority of my client interface should be similar to a standard windows form with buttons, multi-line text boxes, and labels. All I really need graphically is a canvas to embed in my client window so that I can draw a grid of 17x17 tiles (each tile 32x32) to the screen.
[/quote]

I'm sure this will make you angry... but what experience with game making do you have at this moment?

Share this post


Link to post
Share on other sites
[quote name='x4roth' timestamp='1305763016' post='4812803']
I have used RPGMaker in the past. It makes it stupid-easy to throw together a world - but it wouldn't let me achieve my goal of learning C++.
[/quote]

Stop right there. You don't know any C++ and want to make a MMORPG? You're insane. Set a more realistic goal. Even a single-player 2D RPG is extremely difficult to make. Even if you have an engine to start with and even if you have multiple years of experience developing C++ applications. I'm speaking from experience. The project I started in 2004 is still on-going (we wrote our own engine and game editor, which took a considerable amount of time to get to its current state).



As for your question, I'm not aware of any C++ engines that I would recommend. Is an open-source engine an option for you? Making your project open source opens up a wide variety of options for you. You might want to try checking out the various Torque engines: http://www.garagegames.com/products/torque-2d

I have heard of Tiled and feel comfortable enough giving it a recommendation, even though I have yet to use it myself.

Share this post


Link to post
Share on other sites
I've completed a project with jMonkeyEngine this past year, which is my only real experience aside from meddling with RPGMaker years ago. It was a single player game and my focus was mainly on writing the AI to control the enemies. What I'm looking to do with this new project is the other end of the spectrum - enemies wont have much AI aside from attack with everything they have at regular intervals (bosses may be an exception).

I'm currently looking at Torque2D because it has a bunch of tools and, from what I can tell, pretty thorough documentation/tutorials. It'll cost me $100 which I am willing to pay if it means I get useful content-generation tools (mainly a map editor that is immediately compatible with the engine).

Share this post


Link to post
Share on other sites
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 this post


Link to post
Share on other sites
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 this post


Link to post
Share on other sites
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 this post


Link to post
Share on other sites
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 this post


Link to post
Share on other sites
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 this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this