• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
SchweeMonster

Creating My First Large Scale RPG

24 posts in this topic

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

Edited by SchweeMonster
0

Share this post


Link to post
Share on other sites

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

Edited by Malabyte
0

Share this post


Link to post
Share on other sites

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?

0

Share this post


Link to post
Share on other sites

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 =(

1

Share this post


Link to post
Share on other sites

@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

0

Share this post


Link to post
Share on other sites

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.

Edited by Malabyte
2

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

@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?

0

Share this post


Link to post
Share on other sites

Java seems easier to learn (e.g. due to automatic memory mgmt)

 

C++ has automatic memory management. Java doesn't, that's why it requires a garbage collector.

 

http://duncan.mac-vicar.com/2012/08/01/c-does-have-automatic-memory-management/

 

 

Either language, C++ or Java should easily be capable of a 2D RPG. Both should work great on desktop computers and Android. However if you want it to run on iOS too, I have yet to find a decent Java solution for iOS, in which case C++ might be the better option.

 

C++/SDL/OpenGL and Java/OpenGL(JOGL) are some examples of the libraries you could use.

Edited by Karsten_
-3

Share this post


Link to post
Share on other sites

I never got far enough into Java or C++ to learn about memory management.  Sounds like Java would be the easier of the two.  It also sounds like it doesn't matter much either way for a 2D RPG.

1

Share this post


Link to post
Share on other sites

Especially when the article you linked clearly states that C++ does not have a garbage collector, as opposed to Java which does.

Yep, which I agree with. C++ does automatic memory management without requiring a garbage collector.
 
You can strap a garbage collector onto C, however I wouldn't say the C programming language has automatic memory management. Yet this is exactly what people seem to do with Java.
-5

Share this post


Link to post
Share on other sites

I worry a little about the ambitions regarding the Xbox Live Marketplace and Playstation Store.

 

Judging from what I have read it is a huge barrier to cross for indie developers. Maybe that has changed, though?

If that really is a must-have requirement you should look into the specifics of publishing for those platforms first ... maybe at Wikipedia ... maybe google it.

1

Share this post


Link to post
Share on other sites

If you are really looking to plublish on Xbox Live and Playstation Store, you should really look into Monogame in C#. C# is a lot like java, but with some C-like stuff, so kind of a mix of c++ and Java (the two which you seem to be having trouble choosing between). Monogame is an open source variant of the XNA platform which gives you A LOT of customizability, but it further extends it to be supported on pretty much any platform. You can actually code in XNA, and 100% of the code will be transferable to a Monogame project.

 

With the XNA project you can target Xbox/Windows, and then use Monogame to port it over to Linux/Android/IOS/PlaystationStore/Ouya and ore.

1

Share this post


Link to post
Share on other sites

 

Especially when the article you linked clearly states that C++ does not have a garbage collector, as opposed to Java which does.

Yep, which I agree with. C++ does automatic memory management without requiring a garbage collector.

 

Memory management in C++ may be much improved now, but RAII and C++11's smart pointers are not really automatic. At the very least you have to opt-in, and choosing the wrong smart pointer or creating cyclical references inadvertently can still bite you.

 

I like the design and flexibility inherent in this approach, but its quite different from GC, et all, and I'd not classify it as automatic. Its still easy to screw up, and you're on your own when you do. At least with GC and friends, there's usually some hope of it discovering your mistake and cleaning up after you -- now that's automatic.

0

Share this post


Link to post
Share on other sites

If you are really looking to plublish on Xbox Live and Playstation Store, you should really look into Monogame in C#. C# is a lot like java, but with some C-like stuff, so kind of a mix of c++ and Java (the two which you seem to be having trouble choosing between). Monogame is an open source variant of the XNA platform which gives you A LOT of customizability, but it further extends it to be supported on pretty much any platform. You can actually code in XNA, and 100% of the code will be transferable to a Monogame project.

 

With the XNA project you can target Xbox/Windows, and then use Monogame to port it over to Linux/Android/IOS/PlaystationStore/Ouya and ore.

 

This sounds like a great option.  I'm going to look into this, probably today.  Thanks!

0

Share this post


Link to post
Share on other sites

Java means no Xbox Live, no Playstation Store, and IIRC, no iOS either. Porting from PC/Linux/OSX Java VM to Dalvik (Android) is not trivial either.

In any case, I wouldn't try to support that many platforms myself. I'd rather choose a tool I like (I do like Java for example) and try to reap the benefits that go along it (hopefully Linux and Mac support), accepting its shortcomings like the ones I mentioned, and make the most out of it.

 

i usually keep my distance from people/sites that claim that XYZ tool makes multi platform applications "just like that", because multi platform development rarely goes as smooth as you might think.

0

Share this post


Link to post
Share on other sites

 

 

Especially when the article you linked clearly states that C++ does not have a garbage collector, as opposed to Java which does.

Yep, which I agree with. C++ does automatic memory management without requiring a garbage collector.

 

Memory management in C++ may be much improved now, but RAII and C++11's smart pointers are not really automatic. At the very least you have to opt-in, and choosing the wrong smart pointer or creating cyclical references inadvertently can still bite you.

 

I like the design and flexibility inherent in this approach, but its quite different from GC, et all, and I'd not classify it as automatic. Its still easy to screw up, and you're on your own when you do. At least with GC and friends, there's usually some hope of it discovering your mistake and cleaning up after you -- now that's automatic.

 

 

"Automatic memory management" is one of those things that relies on a very specific definition, and Karsten is technically right.  It's sort of like debating whether Java is pass-by-reference or pass-by-value.  It's one of those arguments where you just roll your eyes and say "whatever", because all parties involved already know the semantics.

 

Anyway, OP:

 

RPG Maker has a ludicrous amount of customization potential -- more than you might think.  The real problem is that you lose most of the benefit in the tool to begin with (like the map editor).  There are also serious performance implications with heavy scripting, or at least there were with earlier versions of RGSS.  I'm going to parrot Ravyne and suggest something like SFML/SDL.  Most heavyweight engines are 3D engines largely because 3D is so much more complicated.  You may have to develop some of your own tooling for 2D stuff (like a map editor), but it's not so bad.

0

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  
Followers 0