Hey guys, so I'm going to be making a 2d RPG game that plays a lot like Zelda and Final Fantasy. There will be 4 dungeons/levels where you receive essential items like you would in Zelda, but in major boss/mini boss fights you would play a mixture of Fire Emblem/FF turn-based battles .I'm not 100% sure what I should use to make the game though... I have LWJGL downloaded, although I would rather use Java2d because I am much more fond of it. Somebody suggested I use Slick2d because it's syntax is closer to that of Java2d, but I'm not so sure. Anyways, here is a list of questions that I need to know:

- How do I make the character's world? Should I dl a tile-editor engine or something of that sort? And are there any other plugins that I should know of?- How should I load and read sprite sheets and load them for characters?- How should I go about making a save file and loading it again?

Any other suggestions would be appreciated! As you guys can tell, I'm new to the java game developing, but I reeeaaaally can't wait to see how this game turns out. Thanks

TL;DR: In Warcraft 3 language: Either rush tier 2 for better programming skills, or focus on producing games even if they're only tier 1... xD

I started out by trying to make a 2D tile-based MMORPG which isn't too unlike what you want to make. I just sat down when I had gotten started and made a Character class and then everything just started popping up by itself after that. Characters lead to levels, levels lead to a small game where you walk around, that leads to more features, e.t.c. I'd say that I only really did one big mistake when I started, and that was to treat all code I wrote as permanent. I sat around doing a lot more *thinking* than writing, and in the end I always forgot something or simply changed my mind or came up with a new idea which made my old code obsolete. Today, I instead try to see programming kind of similar to sculpturing. You don't start by cutting out details, you start by cutting out the general shape of the sculpture and leave the details to later. Don't get stuck on one thing for too long, just move on to another part of the game. There are so many different parts, and you pretty much need to learn all of them to some extent. Start by making a minimal Player class, a Level class with tiles and a level loader/parser. By simply doing this, you'll realize that you also need collision detection of some form, which obviously is related to both your Player class and your Level class. By now, you'll realize just how wrong you made your Level and Player class. Then you add an inventory and equipable items. Bam, your player rendering is worthless. NPCs and other dynamic objects? Lots of collision testing needs to be reworked and optimized. A GUI? Wait, how do I get out all the data from my Player class and put it on the screen? And it goes on and on...

Start with Java2D, make something simple and runnable and move on the next part. This however isn't meant to be a quick way to produce lots and lots of games though. It's meant to be a way to learn how to code games quickly. The better you get, the less you'll have to rewrite when you learn the right balance of flexibility and the time it takes to write something. I love game development. Some people love to make games. They're kind of different. Obviously the goal is to make at least one game in the end, but one of them focuses on learning HOW to do that quickly, and the other on producing lots of games as you go.

In the end, I rewrote my character class dozens of times, I had wrote over 5 different versions of my Level class, a bunch of LevelRenderers, 3 somewhat functional GUI systems of different complexity, 3 different entity systems for game objects, e.t.c. They all had problems that I tried to solve in the end with the new version. I even "migrated" to LWJGL when I realized hit a performance wall with Java2D (the whole migration was actually triggered by wanting a zoom function in a map editor) However, this was really really tiresome, since I was still expecting my code to be "permanent", and in the end, the game currently is only a bunch of test programs for different parts of it, and there were problems I never solved. Took me around 2 years I think until I gave up. What do I have now? Not a single complete game, but I'm a lot better prepared for my next game, and so far it's moving a long without many real problems. Now I can understand that some people can't program for 2 years and then end up with pretty much nothing and still want to keep on going, but that's how it was for me, since I felt that I had learnt so much. You seem to really want to actually finish the game, so I'd say you have two choices here: Do as I did, aim high, use the game as a motivation to learn game programming quicker, but realize that by the time you have gained the skills to actually realize it you'll probably have lost interest in the idea; or aim much lower than I did, the goal is primarily to complete the game as quickly as possible, but also of course also to learn as you go by.

Cas is probably going to tell you that I'm an idiot for telling you to program games without actually making games since he thinks people should complete their games, but I have gotta have done something right along the way since I'm kind of employed by him right now. >_> Anyway, try to ask for as little help as possible. Obviously, if you're stuck on something for a long time, either work on something else (presumably concerning the same game) or ask about it here, but the more you figure out by yourself, the better. Maybe I'm completely forcing my own way of doing things onto you, but that's my story at least.

Many people start with a RPG, and its destined to fail.That being said, I did it and I would do it again regardless.

You learn from failing.

Once confronted with all these problems theagentd listed, you will SEE that you have to make something more simple first.

But if you really want to do something RPGish, you can still be basic.

My first RPG, I made 10 years ago, consisted of 3 screens: City (start), the Shop, the fieldCity sounds already complex, but all it was, was an apple lying around, a shop, a few house walls you couldnt passthrough and a path out of the city to the field.

no tiles, just one color backgroundno saving/loadingno sprites, just simple geometry shapes

Yeah I agree; I should probably start on a simpler basis. I'm probably not going to start the game right away then, and rather start with small, little dummy RPG games of my preferred type. However, it'd be nice if I could work backwards and figure out what I eventually need to know. I just learned how to load sprites and animate them with a BufferedImage, which was pretty cool and useful. I just don't want to learn things the wrong way in the beginning and struggle to learn the ideal way when i become a better coder (ie i know it's horrible to hard-code your map, etc).

Yeah I agree; I should probably start on a simpler basis. I'm probably not going to start the game right away then, and rather start with small, little dummy RPG games of my preferred type. However, it'd be nice if I could work backwards and figure out what I eventually need to know. I just learned how to load sprites and animate them with a BufferedImage, which was pretty cool and useful. I just don't want to learn things the wrong way in the beginning and struggle to learn the ideal way when i become a better coder (ie i know it's horrible to hard-code your map, etc).

I felt the exact same way, but it's dangerous think too much about the "right" and "wrong" way if it prevents you from going on. As a beginner you need to learn how to do things, and the best way to do so is to program! There are so many things that almost all games (and even "normal" programs share), so almost no matter what you program you'll still improve.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org