Creating My First Large Scale RPG

Started by
23 comments, last by SeraphLance 10 years, 7 months ago

Hi everyone,

I am currently working my way into indie game design. I've been programming on and off for the last 10 years in a variety of different languages. I am currently working on an RPG that I've been writing for a while now and I'm trying to decide what language the final product will be coded in.

I've had plenty of people recommend RPG Maker but this "engine" won't let me customize my game nearly enough. I've currently been testing my pixel art animations and a few gameplay mechanics via GameMaker but I fear this also won't give me the customization I want

Another major concern of mine is when I ultimately release this product and where. I'm aiming to release this game on a variety of platforms including the Xbox Live Marketplace and Playstation Store so I want this game to be coded using a language/engine that supports these markets.

I am considering coding a custom engine using C++ or Java. I would definitely consider an engine if it fits the above criteria. So what are your recommendations?

Edit: I forgot to mention that the game is 2D which is probably important for choosing the right engine. :D

It only takes one video game to change the world.

Advertisement

As someone with a similar plan, I haven't really found an engine myself that suits my 2D needs, so I'm personally going to make it from scratch in Java. Besides, I imagine that this allows me a lot more control as well, freedom-wise as well as optmization-wise. Just something really crude to start with, then polish it later when I've found a good build to keep. So I guess that's my reply to you, unless someone could give us both some ideas on what engines to use.

All I know is that there's a lot of engines to choose between:

http://en.wikipedia.org/wiki/List_of_game_engines

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

I've tried doing a bit of research on the subject and my thoughts are pretty similar. Is there a reason you'll be going with Java over C++? What software do you use for coding and compiling?

It only takes one video game to change the world.

I don't know a whole lot about RPG maker these days -- I meant to pick it up during the steam sale just to check out the tooling and whatnot, but missed the sale. But, there's a non-trivial number of actual, commercial games (if indie) written in RPG maker, so I'd really investigate whether it can be expanded to meet your needs through scripting or whatever interfaces it provides. That's probably the path of least resistance.

Unity is an ever-popular choice of engine these days, but I've heard mixed reviews as to whether its very suitable for 2D games out-of-the-box. Some say its just alright, others say its horrible. There's Unity2D, I think, that would presumably be a whole lot better suited, but it might not have as much tooling around it as Unity proper.

I'm really not aware of any other good engines for 2D work, though I'm sure some exist. Depending on how comfortable you are with programming, rolling your own might be reasonable. I'd recommend that you use a simplified graphics library to move fast -- something like SDL 2.0 or SFML -- rather than straight Direct3D or OpenGL. Those things are great to know, but if your ends are to create a game, learning them enough to be effective is a much longer route than something simpler. For scripting, I'd recommend Lua because its popular, well-understood, and Lua-Bind will help you tie it to your engine. Finally, if RPG maker outputs files in formats that are reasonably well-understood, or you can reverse-engineer them, consider leveraging as many of their tools as you can. It will be far quicker to leverage those than to write your own, even if you still have to write some simpler tools to close the gap between what you need and what they offer.

throw table_exception("(? ???)? ? ???");

http://stackoverflow.com/questions/17584717/2d-cross-platform-game-development-engines

Here's a long list of 2D engines I found. I'm currently using Moai for my 2D project. I am REALLY looking forward to Havok's 2D game dev support however. They released their Havok tool's under the name of Project Anarchy but only for Mobile development. Sometime this month they are supposed to be releasing more information on the Pro license which will allow you to build for consoles and desktop, pretty much everything. This is all 3D though, the GREAT news that I can't wait for is: http://forum.projectanarchy.com/showthread.php?278-2D-game-development-components , they are working on 2D components so you can make 2D games with it, all using Lua which is the easiest language in existence. You can also code the heavy parts of your code in C++, thus making it pretty much the ideal engine if they do the 2D components right, really looking forward to it. However I wouldn't expect it to be out for at least a few months =(

Well, the two solutions that you have declined are likely the best ones available.

With RPGMaker VX Ace, you get a pre-built bunch of tools, some which are more for the "generic" projects, and others which can actually help you well. You can generally take or leave many parts of it. For example, it comes with a bunch of assets,and it has a sort of character generator, but you can easily just use your own assets instead, and probably should. The really usable parts though, are the database and the game engine. The database system is great because you don't have to create your own code for RPG stats, items, weapons, etc... And the engine is great because it contains the whole movement, map, fight system, tile engine, etc... All of that can save you lots of time. It is true that there are limits, but many of them can be overcome by scripting your own. The original battle system for example is a front view battle, but you can easily find several different battle engines that have been scripted, for example a side view system, and even some "real-time" systems that have been done as well. Ruby scripting is the base of the engine, so you can modify much more than what you see in a quick overview look at the engine. This is my first/best suggestion because it is tailor made for RPGs and you can do a lot with it.

I'd also recommend GameMaker. It isn't meant for RPGs directly, and so doesn't have RPG Stuff that RPGMaker does, but it is more able to be customized to your game. It also means that it will take more work and you will have to script your battle engine instead of modifying someone else's, except in the case that you find an example which suits your needs. It has some included things though that help with RPGs, like a basic tile engine, and the IDE does the loading of assets for you once you import them too. It is built for more general 2d game creation, so though it does many things for you, it provides a scripting language with which you can do almost anything with 2d, which easily includes anything an RPG would need. It also has advantages over RPGMaker. It allows you to do more, for example other game genres, so learning it will have advantages in the future, while RPGMaker isn't very good for anything but RPGs, GameMaker can do anything 2d, and actually has some 3d capabilities too. The last thing I'll say about GameMaker is that GameMaker Studio is getting better and better. It has a price tag on it, but you can get exports for mobile devices, HTML5, and windows/mac/Linux as well. It is also getting more and more features, and recently got access to shaders, which work with 2d and 3d, and can do any graphic effect that your shader writing capacity can do.

Well, it is up to you how you go about this. But in general it is recommended to use the right tool for the job. So instead of coding your own, you are better off using something like RPGMaker, assuming it can do what you want. I'd assume that it can once you figure out the Ruby scripting system. And where RPGMaker doesn't work, GameMaker would do the job. There isn't much reason to code your own engine when either of these two would do it for you with much less work on your part, getting your game done faster.



@Ravyne Thanks for the info. I have used Unity a bit but I don't think it's what I'm looking for. Unity2D may be a different story. As for RPG Maker, I'll have to see if theres any export features.

@fatzilla Sounds great but I'll most likely be coding already before its release. However, I'll stay tuned.

@kburkhart84 I decided that RPGMaker wasn't going to suit my needs as soon as I found out that you must use a 32x32 tile size. However, I will definitely be using it for a reference when I'm creating my own databases.

Like I said, I've been using Gamemaker so far and I really do enjoy it for the most part. However, I'm having issues with it rendering the graphics when I use a custom view (primarily to zoom in) and I don't see any options so I'm not sure I could do to fix it. Also, I'm not sure Gamemaker games would be eligable for submission for Xbox Live or other online stores. Of course I could be completely wrong because I'm still learning and that's why I'm asking here. :D

It only takes one video game to change the world.

I've tried doing a bit of research on the subject and my thoughts are pretty similar. Is there a reason you'll be going with Java over C++? What software do you use for coding and compiling?

Java seems easier to learn (e.g. due to automatic memory mgmt) and I got a better feel for understanding the syntax (which was important when choosing my first language). Additionally, with Java I can make programs that literally run on any machine (as long as Java is installed), instead of having to write for a specific platform. There's also some other good and bad language structure that Java has that you'll just have to read up on here.

There's a big debate about the bytecode and Java Virtual Machine, and how this makes java programs run many times slower than C++. But this is often exaggerated, as Just-In-Time (JIT) compiling prepares the Java program in run-time to run in the machine code of that specific platform. People often don't seem to take JIT into consideration when judging Java's running speed. Someone even claimed Java to be 20-40 times slower, but it's actually just a little less than twice as slow as C++:

"[...] As of December 2012, microbenchmarks show Java 7 is approximately 44% slower than C++"

- Wikipedia.org/wiki/Java_(programming_language)

Besides, a much bigger factor for speed is in problemsolving and algorithmic methodology, and not the lingual one. But ultimately, I just went with Java and now I just need to stick with it until I know it fluidly enough to expand to more languages, perhaps C++ or maybe even something totally different, depending on what becomes more relevant for me at that time.

--------------------

Coding Software:

Eclipse IDE, I'm able to code on one screen and debug the program simultaneously in run-time on another. However, I've read that you can get a C++ plugin for Eclipse, so this might not be a valid argument.

Compiling Softwares:

Eclipse again (by exporting from .java to ".jar file" for web applets or "runnable .jar file" for ordinary Java files) after having the JDK installed (e.g. Java SE 7), or just the Javac function in the OS command prompt, perhaps combined with Launch4J executable wrapper if I wanna make an .exe file out of it. Haven't tried the latter two yet, though.

Again, note that you don't have to compile your program the traditional way while writing in Eclipse.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

@Ravyne Thanks for the info. I have used Unity a bit but I don't think it's what I'm looking for. Unity2D may be a different story. As for RPG Maker, I'll have to see if theres any export features.

@fatzilla Sounds great but I'll most likely be coding already before its release. However, I'll stay tuned.

@kburkhart84 I decided that RPGMaker wasn't going to suit my needs as soon as I found out that you must use a 32x32 tile size. However, I will definitely be using it for a reference when I'm creating my own databases.

Like I said, I've been using Gamemaker so far and I really do enjoy it for the most part. However, I'm having issues with it rendering the graphics when I use a custom view (primarily to zoom in) and I don't see any options so I'm not sure I could do to fix it. Also, I'm not sure Gamemaker games would be eligable for submission for Xbox Live or other online stores. Of course I could be completely wrong because I'm still learning and that's why I'm asking here. biggrin.png

As far as I know RPGMaker only exports to windows. And I agree about using Unity for 2d. It is made for 3d, and it would be great for 2d gameplay in a 3d world, but for "real" 2d graphics I'd say GameMaker is much better. Also, I understand about not using RPGMaker. I'm not sure if the tile size is something you can change with Ruby scripts or not, and I'm sure that there are a couple things that you can't change. GameMaker on the other hand doesn't have this problem, as you can use tiles of any size you choose, and sprites the same. The only thing with GMStudio is that you can't do any single graphic bigger than the texture page setting, which for PC defaults to 2048x2048, and 1024x1024 for mobile platforms. If you have a graphic bigger than that, it gets scaled down to fit. A workaround for that if you really need a massive graphic is to cut it up into separate pieces and draw them separately, though don't think you would run into this with an RPG in any case.

I'm not sure exactly what problem you are having zooming in the graphics, but if you be more specific maybe I could help, or if you post it on the GMC I'm sure we could help over there. Also, GMStudio has many exports, but XNA and/or .NET is not one of them, so I don't think it could be sent to the XBOX store. But any store that takes PC games would be able to accept GM made games, which includes steam as there are several GM made games already on Steam.



@Malabyte Thanks. I've done a bit of C++ and Java. I'm more familiar with Java so I may look more into that.

@kburkhart84 That is good to know. Where is this GMC you speak of?

It only takes one video game to change the world.

This topic is closed to new replies.

Advertisement