Calculator Community > General Calculator Help

Raylin's Rules for Making RPG's

(1/13) > >>

Raylin:
Yeah. I've seen too many people flounder about to have it happen anymore.
So, here you go.

Rule 1: If you're a beginner, DO NOT make a Final Fantasy/Pokemon/Borderlands/Ultima/<insert console game here> clone. The sheer amount of content will crush you, your spirits, and your lifespan. This also means don't try to tackle a huge project if you haven't don't enough experience.

Rule 2: Always, always, ALWAYS code the battle engine first. Don't even worry about story right now. Get characters and a couple enemies and make that beast of a battle system now. It will kick you in the face later if you don't do it early.

Rule 3: Make sure your menus/GUI and button configuration are the same throughout.

Rule 4: BALANCE YOUR FORMULAS! Attack, Defense, Speed, Stat Gain, Level Up, EXP... Make it all realistic. I shouldn't be able to kill a LV 10 with an uber-randomed LV 2. Make sure your curves are parabolic but not super steep.

Rule 5: Having Japanese-sounding names in an RPG doesn't make a good game. It's gameplay that does it. Make sure your gameplay is solid.

Rule 6: Immersing the player doesn't involve super-awesome graphics. It's the fusion between storyline and gameplay. Innovation is key on this point.

Rule 7: Draw ALL of your sprites and tiles first!

Rule 8: Have a basis to start on when it comes to stats. Just because you know a Fighter's stats at max level doesn't mean that should be your starting point. Work from the ground up.

Rule 9: Write your story on paper first. It will help organize your thoughts.

Rule 10: Code your program in subroutines. I don't care if you hate them. It will help.

Rule 11: If you are making a pure-BASIC game with limited access to archive memory, make sure that NPC convos are as short as possible, while making sure to not destroy your storyline. DO NOT USE LOWERCASE LETTERS! Otherwise, prepare to run out of memory very fast. Text takes a ridiculous amount of memory.

Rule 12: If you are making an ASM/Axe game (doesn't apply to ASM Flash APPs), make sure that as many things as possible in your RPG is in data form. The NPC/Event text, enemy names/stats, monsters encounters possible in each areas, NPC movement patterns, battle background images, not just the sprites and maps. Data doesn't count towards the 8/16 KB executable code limit in 8xp/8xk executables, respectively. If you just hard-code everything with If blocks, prepare to run out of code space very fast!

Rule 13: Don't artificially lengthen an RPG by making the player level up to a certain amount before advancing. Different difficulty modes are a nice touch, though. If you add them, you can go as crazy as you want with grinding in harder modes. (while making sure it's beatable). Illusiat 6 original only had one difficulty. Later, DJ Omnimaga added an easier mode.

EDIT: A warning if you decide to save memory on enemy formulas by adding an universal level per area, like DJ Omnimaga did in Illusiat 3 through 12 (AKA dynamic enemy stats generation): those are VERY hard to keep balanced. Use at your own risk! Halfway through the game, you may end up having to give the character a magic ring that reduces all magic damage by 80% from now on, like DJ Omnimaga had to do in Illusiat 10 and 12. At that point, no matter how high he was in LV, all magic spells casted by enemies seemed to kill him instantly. Such dynamic enemy stats are good to save space, but the downside is that they're ridiculously hard to balance.

Rule 14: When creating characters and situations, write down your character's personality somewhere. When a character does or says something that goes against what they believe in without any provocation, it detracts from the mood. Nothing is worse that having a selfish thief suddenly give something they took back without a reason.

Rule 15: Do not make an ultimate weapon if you plan to make the game multiplayer or you plan on adding a secret boss.

Rule 16: When coding, get a piece of paper and write down the letters A-Z on one side. Then, put the symbol <theta> on the other. Now, any permanent values you don't want to be overwritten, assign a variable to them and leave them on that side of the paper. When you are completely sure of those values, erase all unused letters and put them on the other side of the paper. There. Now, the variables on the left are GLOBAL variables. Don't touch those. The ones on the left are LOCAL variables. You can use those for your temporary loops, counters, whatever you need. And, if you lack enough local variables, throw all of your globals into a list and save it. Then, run rampant with your local variables.

NOTE: If you are making a subroutine, make sure none of the variables overwrite any of your values.

Rule 17: When programming in BASIC, don't use Y if you're using the graphscreen. Some graph functions overwrite that value.

Rule 18: Optimize as you go. But, make sure that you can figure out what each line of your program does.

Rule 19: Ask for help if you are struggling.

P.S. Please rate me up on this if you like this. My respect is fluctuating.

shmibs:
[Raylin] Rules edited in.

yunhua98:
[Raylin] Rules edited in.

* yunhua98 runs

Hot_Dog:
You should have this as a PDF release or something...once many replies come in, not many people will see this topc

DJ Omnimaga:
I'll give my point of view on some of the rules, as I also worked on calc RPGs for several years (specifically from 2001 to 2005 and attempted at making new ones in 2007 and 2009)
--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 1: If you're a beginner, DO NOT make a Final Fantasy/Pokemon/Borderlands/Ultima/<insert console game here> clone. The sheer amount of content will crush you, your spirits, and your lifespan.
--- End quote ---
I agree partially with this, because I saw many newer programmers or programmers who never did a RPG before start with a clone of a copyrighted game. However, if he's making a stripped down clone of it, it can work. If you do the later, you need to make it somewhat good anyway, though, so in the end you end up having to do something medium to big. Another thing I want to add is that it's good to have originality sometimes. When downloading a FF clone, people may expect more than if you make a new game. Making a new original game may lower the pressure on you as well. Regardless of if you make a clone of a game, please do not start too big. If you want examples of RPGs I did in my early days of TI programming, check the first 3 Illusiat games and then give Illusiat 6 a try. It should give you an idea of what I started up with.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 2: Always, always, ALWAYS code the battle engine first. Don't even worry about story right now. Get characters and a couple enemies and make that beast of a battle system now. It will kick you in the face later if you don't do it early.
--- End quote ---
I personally think coding the battle engine early in development is a good idea too. You need to setup a base on how will fight occurs in the game. That said, for some reasons, I always prefered to code the in-game menu (starting with most of the stats screen) first, though, then I jumped on the battle system.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 3: Make sure your menus/GUI and button configuration are the same throughout.
--- End quote ---
Do you mean for example not having some choices selected with 2nd, others with ENTER then suddently require a number input to select something else? I remember FFTOM did that and it was sometimes annoying in long battles. Some of my old games also had this problem, I believe.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 4: BALANCE YOUR FORMULAS! Attack, Defense, Speed, Stat Gain, Level Up, EXP... Make it all realistic. I shouldn't be able to kill a LV 10 with an uber-randomed LV 2.
--- End quote ---
On the other hand, make sure that a LV 9 char won't get instantly killed by a LV 10 enemy, then instantly kill that enemy when he reaches LV 10. Either the game difficulty will rise too fast or it will get too easy if you are over-leveled. ANOTHER IMPORTANT THING (IMHO): Make sure the first game enemies are not too hard, or at least if they are, make sure leveling up is fast enough with them! To be honest, if I try a RPG and can't even beat the first few enemies at all, I will be tempted to give up and delete the whole thing.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 6: Immersing the player doesn't involve super-awesome graphics. It's the fusion between storyline and gameplay. Innovation is key on this point.
--- End quote ---
Well said. Some people think graphics is all it takes to make a good game, but if the story is boring and the game lacking in features or too easy/hard, people won't enjoy it. On the other hand, avoid MUD/text-only (by text I mean words describing the area you are in instead of an actual map) games. People in general prefer to have at least a certain visual representation of what they are exploring. That said, TI-City and the first Potter Quest were quite good for text games, though.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 7: Draw ALL of your sprites and tiles first!
--- End quote ---
I partially disagree. Sometimes you may get a better sprite or enemy idea later during dev and may want to add some more stuff. However what I do in general is make a bunch of enemy sprites and map tiles that I'll use and I make some more in case I migth want to use them later. That way during dev, I do not need to stop everything to spend hours making new tiles/sprites. When you are on a coding rage, having to do something else instead of coding is enough to kill it.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 8: Have a basis to start on when it comes to stats. Just because you know a Fighter's stats at max level doesn't mean that should be your starting point. Work from the ground up.
--- End quote ---
True, when I make my stats, I try various formulas to make sure the characters starts and end at reasonable stats. Also make sure to not end up with like 50 HP at LV 1, 500 at LV 50, 2000 at LV 75 then have your HP increase by 500 for the last few levels. It makes balancing the game even harder.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 9: Write your story on paper first. It will help organize your thoughts.
--- End quote ---
Yup. I did not do this for the Illusiat 1 through 12 games, same for Mana Force 1, and you can see that the story was rushed. Making it as you code often leads to strange, undeveloped storylines.


--- Quote from: Raylin on August 02, 2010, 09:29:27 pm ---Rule 10: Code your program in subroutines. I don't care if you hate them. It will help.
--- End quote ---
True, else you end up in lack of RAM issues. In Illusiat 11, I had to split the boss program in half near the end of development because it was too large.

[Raylin] Rules edited in.

Navigation

[0] Message Index

[#] Next page

Go to full version