Jump to content

  • Log In with Google      Sign In   
  • Create Account

Creating My First Large Scale RPG


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
24 replies to this topic

#1 SchweeMonster   Members   -  Reputation: 175

Like
0Likes
Like

Posted 19 August 2013 - 11:42 AM

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, 19 August 2013 - 11:43 AM.

It only takes one video game to change the world.


Sponsor:

#2 Malabyte   Members   -  Reputation: 589

Like
0Likes
Like

Posted 19 August 2013 - 11:52 AM

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, 19 August 2013 - 11:56 AM.

- Awl you're base are belong me! -

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


#3 SchweeMonster   Members   -  Reputation: 175

Like
0Likes
Like

Posted 19 August 2013 - 12:01 PM

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.


#4 Ravyne   GDNet+   -  Reputation: 7405

Like
3Likes
Like

Posted 19 August 2013 - 12:24 PM

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.


Edited by Ravyne, 19 August 2013 - 12:25 PM.


#5 fatzilla   Members   -  Reputation: 200

Like
1Likes
Like

Posted 19 August 2013 - 12:56 PM

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



#6 kburkhart84   Members   -  Reputation: 1640

Like
5Likes
Like

Posted 19 August 2013 - 01:13 PM

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.





#7 SchweeMonster   Members   -  Reputation: 175

Like
0Likes
Like

Posted 19 August 2013 - 01:36 PM

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


#8 Malabyte   Members   -  Reputation: 589

Like
2Likes
Like

Posted 19 August 2013 - 01:48 PM

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, 19 August 2013 - 02:25 PM.

- Awl you're base are belong me! -

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


#9 kburkhart84   Members   -  Reputation: 1640

Like
0Likes
Like

Posted 19 August 2013 - 02:10 PM

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





#10 SchweeMonster   Members   -  Reputation: 175

Like
0Likes
Like

Posted 19 August 2013 - 02:30 PM

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


#11 Karsten_   Members   -  Reputation: 1604

Like
-3Likes
Like

Posted 19 August 2013 - 04:37 PM

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_, 19 August 2013 - 04:43 PM.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#12 kburkhart84   Members   -  Reputation: 1640

Like
0Likes
Like

Posted 19 August 2013 - 04:40 PM

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

 

GameMaker Community





#13 SchweeMonster   Members   -  Reputation: 175

Like
0Likes
Like

Posted 19 August 2013 - 05:48 PM

Great, thanks.  I've made a post at http://gmc.yoyogames.com/index.php?showtopic=591667.


It only takes one video game to change the world.


#14 Satharis   Members   -  Reputation: 983

Like
3Likes
Like

Posted 19 August 2013 - 10:07 PM

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/

To be honest I find that article -extremely- contrived. Automatic memory management means just that--automatic, it should happen without your need or concern and garbage collectors do that. You don't have to invoke them and they will run without you ever having to do anything.

If anything smart pointers are just a controlled way of wrapping a pointer so that it destroys itself like something on the stack would, but comparing that to a garbage collector is a bit silly and completely misses the point of what a garbage collector does and why it is useful.

In fact I would say the opposite to your tag line is true. C++ has manual memory management and Java requires a garbage collector because you are not expected to manually allocate and delete objects.

#15 SchweeMonster   Members   -  Reputation: 175

Like
1Likes
Like

Posted 19 August 2013 - 10:17 PM

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.


It only takes one video game to change the world.


#16 Malabyte   Members   -  Reputation: 589

Like
3Likes
Like

Posted 19 August 2013 - 10:27 PM

 

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.

 

    Tbh, I have no idea of what you're talking about and I'm not entirely convinced that you do either. Especially when the article you linked clearly states that C++ does not have a garbage collector, as opposed to Java which does. Java doesn't lack an AMM, The garbage collector IS the AMM. You should read up on it ("Java uses an automatic garbage collector to manage memory in the object lifecycle." - wikipedia.org). There's a whole section on "automatic memory management" on the Java wikipedia page.

 

http://javarevisited.blogspot.no/2011/04/garbage-collection-in-java.html

http://en.wikipedia.org/wiki/Java_(programming_language)


Edited by Malabyte, 20 August 2013 - 04:57 AM.

- Awl you're base are belong me! -

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


#17 dehe   Members   -  Reputation: 118

Like
0Likes
Like

Posted 20 August 2013 - 12:42 AM

this one is for making 2d games in lua:
 
and then theres torque 2d:


#18 Karsten_   Members   -  Reputation: 1604

Like
-5Likes
Like

Posted 20 August 2013 - 04:11 AM

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.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#19 DareDeveloper   GDNet+   -  Reputation: 952

Like
1Likes
Like

Posted 20 August 2013 - 04:20 AM

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.


Given enough eyeballs, all mysteries are shallow.

ProcGames.com


#20 L0gicaL1nsanity   Members   -  Reputation: 107

Like
1Likes
Like

Posted 20 August 2013 - 09:44 AM

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.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS