Opinion on Getting Started w/ A 2d RPG

Started by
13 comments, last by Fenrir190 9 years, 9 months ago

Hey game devs, I wanted to ask advice for getting started with game development for a 2d rpg. Some background info

  • Yes I've heard that an rpg shouldn't be your first due to complexity (I'm fine with that. Still something I want to make)
  • I'm a software developer by trade so I have plenty of experience with various languages like C/C++. python, java, javascript, etc

Me and my friend have currently hit the point where we have all the things such as most of the mechanics bar damage calculations(which I'll get to later) done. We just need to start developing prototypes to test things out such as overworld/local map gen and walking a character through that map. I'm leaning more towards coding the game myself but there could be the option of using a kit like game maker etc. My questions are

  1. If we use a kit, what's a good one for beginners with 2d rpgs where once we start developing the game it's ours completely? Meaning we don't have to worry about someone saying "You developed it in our kit so we own a fraction of it" or for when we go commercial "We get a portion of the cut for using our kit"
  2. If we decide to code it ourselves, what's a good language to use? I'm leaning somewhat towards python due to finding a REALLY good engine called fabula that seemed like a dream come true for our needs as far as the look of the game goes(picture Zelda Oracle games on the GBA with pokemon movement style) but quickly found out it be more of a headache then need be due to no documentation of at least any I could find. If we go this route how necessary would a game engine be? I've read that a game engine encompasses things like graphics rendering and handling sound so I'm assuming pretty important. Are there any good freeware ones that you guys would recommend? If I'd have to pay for one the question there would be the ones from above about licensing.

Thanks in advanced for any help you guys can give on this.

Advertisement


If we use a kit, what's a good one for beginners with 2d rpgs where once we start developing the game it's ours completely?

What, exactly, do you mean when you use "kit" above? Do you mean a pre-existing game engine (Unity, RPGMaker, UE4, etc.) or do you mean some sort of modding support on a commercially released game?


If we decide to code it ourselves, what's a good language to use?

If "it" = "kit" & "kit" = game engine, don't code it yourself. Make a paper prototype, work out your RPG system, then grab any tool in your price range (they go from free to very not free) and make a prototype. Don't worry about needing to give the engine creator a portion of your sales since they will be zero.

After you make your digital prototype and proof of concept, then consider how to best create your full game.

Indie games are what indie movies were in the early 90s -- half-baked, poorly executed wastes of time that will quickly fall out of fashion. Now go make Minecraft with wizards and watch the dozen or so remakes of Reservior Dogs.

If you are creating a single player 2D RPG, then using an existing "engine" is not nearly as important as it would have been if it was 3D and/or multiplayer. If you find one that is a very close match to what you want, then by all means use it, but I wouldn't consider it critical in this case.

I would personally recommend going with C#/MonoGame, by starting out with some example code to get you up and running quickly.

Well, I am not quite sure what you mean by kit, if you want a 2d game engine, there are many out there, some are paid and some aren't.

If you use a paid one, you will have to pay royalties and/or a license, depending on the licensing used. I wouldn't keep a close mind about paying, remember that time is money and you may learn that paid services are sometimes cheap considering all the time they will save you. Also, some engines such as unity3d (don't be decieved by the name, it has support for 2d now) have licenses that you only pay after your game earned a certain amount of money (which made it very popular in indy game development).

Still, if you are set in using a free engine I would suggest you take a look:

- ORX (C, C++) - full game engine, have support to animation, shaders, particles and many other cool effects. It has a medium learning curve, but I find it very good, as someone who tried many open game engines, I personally find this one the best for 2D.

- Pygame - pretty popular python game engine, it is a bit tricky on the drawing handling at first, but after you get the handle of things it is pretty good.

Also take a look at this list: http://stackoverflow.com/questions/17584717/2d-cross-platform-game-development-engines

On your second point, if you mean to code your engine from zero: DON'T. It will likely to take you hundreds of hours to get to the point of ready, free engines that I just listed above.

Currently working on a scene editor for ORX (http://orx-project.org), using kivy (http://kivy.org).

You said that you already know JavaScript, so maybe HTML5 game would be something for you? There are plenty of libraries like PhaserJS or CreateJS . Not directly for RGBs but still easy to learn.

Thanks for the suggestions guys. Gonna look into these suggestions more. I thought of doing python + pygames + fabula(pygame game engine) but as I mentioned earlier there is no documentation on it. C#, I'm not sure why, but for some reason I have no good memories of it...

Also I guess I'm just having a hard time wrapping my head around the concept of not using a game engine. From what I've read it seems to be a pretty vital part of the game. Am I not worrying about it due to it being handled by whatever language I'm using? I guess that would make sense as I can think of several ways to may a tilemap via a loop and <insert data structure>.

Just one small clarification on Pygame. It's a framework that allows you to build stuff from the ground up. It doesn't have all the bells and whistles of a typical game engine like Unity or RPG Maker which allows you to drag and drop items into a world. You'll have to render every little detail explicitly, or use an existing framework or engine that someone else developed using the Pygame library. It's a great way to learn how to create games from scratch but won't allow you to create things out of the box. Judging from the OP's post I figure he/she knows that already but just thought I'd add that for future reference.

Python is one of the better choices, especially for prototypes. My personal opinion is however that projects in dynamic languages (python, JavaScript, PHP, ..) are easier to write than to maintain, since you have less compiler support checking stuff for you. That's why I preferr C#, great tools and documentation support, popular etc. I'm not going to force it one you though. :)

The definition of what a game engine really is has never really been truly defined, but the general idea is that is the code that can be shared for a "type of game", to be complemented with the game-specific content for that game. If someone has already created a game similar to what you want, chances are you could take their code ("engine") and use it either as-is, just replacing maps, graphics etc with your own, or use it as a base to create your own spinoff-engine.

What an engine contains is highly individual. Some engines are very complete and can be used directly by just adding content while others are very low-level frameworks, just defining some overall structure and providing some helper code. In some cases you may want to use an existing rendering solution for example, that might be called a rendering engine, which may or may not be part of a bigger game engine. It's somewhat messy.

Anyway, I wouldn't be too concerned about using an existing engine in your particular situation, it seems perfectly fine to go with something like Xna/MonoGame or pygame if you can't find a nice fit.

Just one small clarification on Pygame. It's a framework that allows you to build stuff from the ground up. It doesn't have all the bells and whistles of a typical game engine like Unity or RPG Maker which allows you to drag and drop items into a world. You'll have to render every little detail explicitly, or use an existing framework or engine that someone else developed using the Pygame library. It's a great way to learn how to create games from scratch but won't allow you to create things out of the box. Judging from the OP's post I figure he/she knows that already but just thought I'd add that for future reference.

Right, I checked out a few games on the pygame site. I figure as far as doing a prototype goes, we shouldn't be too focused on how it looks. That attention should be given more towards the finer details like damage calculations and movement. One of the major selling points for using a game engine like unity would be that it'd have to be cross platform. This fact pretty much turned me away from RPG Maker since it seems to only support windows.

This topic is closed to new replies.

Advertisement