Author Topic: Raylin's Rules for Making RPG's  (Read 80812 times)

0 Members and 1 Guest are viewing this topic.

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Raylin's Rules for Making RPG's
« on: August 02, 2010, 09:29:27 pm »
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.
« Last Edit: August 05, 2010, 04:29:10 pm by ztrumpet »
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline shmibs

  • しらす丼
  • Administrator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2132
  • Rating: +281/-3
  • try to be ok, ok?
    • View Profile
    • shmibbles.me
Re: Raylin's Rules for Making RPG's
« Reply #1 on: August 02, 2010, 09:45:17 pm »
[Raylin] Rules edited in.
« Last Edit: August 02, 2010, 09:53:14 pm by Raylin »

Offline yunhua98

  • You won't this read sentence right.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2718
  • Rating: +214/-12
  • Go take a dive in the River Lethe.
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #2 on: August 02, 2010, 09:49:25 pm »
[Raylin] Rules edited in.

* yunhua98 runs
« Last Edit: August 02, 2010, 09:56:43 pm by Raylin »

Spoiler For =====My Projects=====:
Minor setback due to code messing up.  On hold for Contest.
<hr>
On hold for Contest.


Spoiler For ===Staff Memberships===:






Have you seen any good news-worthy programs/events?  If so, PM me with an article to be included in the next issue of CGPN!
The Game is only a demo, the code that allows one to win hasn't been done.
To paraphrase Oedipus, Hamlet, Lear, and all those guys, "I wish I had known this some time ago."
Signature Last Updated: 12/26/11
<hr>

Offline Hot_Dog

  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3006
  • Rating: +445/-10
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #3 on: August 02, 2010, 10:18:01 pm »
You should have this as a PDF release or something...once many replies come in, not many people will see this topc

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Raylin's Rules for Making RPG's
« Reply #4 on: August 02, 2010, 11:20:02 pm »
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)
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.
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.

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

Rule 3: Make sure your menus/GUI and button configuration are the same throughout.
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.

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

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

Rule 7: Draw ALL of your sprites and tiles first!
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.

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

Rule 9: Write your story on paper first. It will help organize your thoughts.
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.

Rule 10: Code your program in subroutines. I don't care if you hate them. It will help.
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.
« Last Edit: August 02, 2010, 11:36:08 pm by Raylin »

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Raylin's Rules for Making RPG's
« Reply #5 on: August 03, 2010, 01:38:56 am »
Maybe I'll sticky this later. :)
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: Raylin's Rules for Making RPG's
« Reply #6 on: August 03, 2010, 10:32:11 am »
Very cool. Added it to the Tutorials thread.
Spoiler For Spoiler:



For the 51st time, that is not my card! (Magic Joke)

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #7 on: August 03, 2010, 12:52:23 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.
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.
Um, have you played Illusiat 13?  I almost gave up in the Dark Cave because I couldn't kill anyone.  Luckily, that's a short space and I made it out and into the funnest calc game anywhere. ;D


Excellent rules Raylin.  I think it needs to be pinned. :D

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Raylin's Rules for Making RPG's
« Reply #8 on: August 03, 2010, 01:53:58 pm »
Done. Keep adding! :D

This only helps people.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline yunhua98

  • You won't this read sentence right.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2718
  • Rating: +214/-12
  • Go take a dive in the River Lethe.
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #9 on: August 03, 2010, 03:02:11 pm »
[Raylin] Rules edited in.
« Last Edit: August 03, 2010, 03:10:33 pm by Raylin »

Spoiler For =====My Projects=====:
Minor setback due to code messing up.  On hold for Contest.
<hr>
On hold for Contest.


Spoiler For ===Staff Memberships===:






Have you seen any good news-worthy programs/events?  If so, PM me with an article to be included in the next issue of CGPN!
The Game is only a demo, the code that allows one to win hasn't been done.
To paraphrase Oedipus, Hamlet, Lear, and all those guys, "I wish I had known this some time ago."
Signature Last Updated: 12/26/11
<hr>

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Raylin's Rules for Making RPG's
« Reply #10 on: August 03, 2010, 03:44:52 pm »
Added Rule 15.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline MRide

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 711
  • Rating: +14/-0
  • You can't see this.
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #11 on: August 03, 2010, 04:47:18 pm »
How about this one?  Not sure if everyone would agree with it, but I like it.

- Do not, do not, do not try an RPG as your first program/game.  You will fail. Try simpler stuff first.  To make a decent RPG requires quite a bit of programming knowledge, planning, time, etc.  Get all that from starting low and working your way up.

Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: Raylin's Rules for Making RPG's
« Reply #12 on: August 03, 2010, 04:52:19 pm »
I think that's basically what Rule 1 says.
Spoiler For Spoiler:



For the 51st time, that is not my card! (Magic Joke)

Offline MRide

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 711
  • Rating: +14/-0
  • You can't see this.
    • View Profile
Re: Raylin's Rules for Making RPG's
« Reply #13 on: August 03, 2010, 06:30:27 pm »
Hm.... well I thought that was more specific toward console game clones, but I do see your point.  I've just seen too many beginner RPG's that weren't ports that were awful and they only uploaded them because they actually completed a game.

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Raylin's Rules for Making RPG's
« Reply #14 on: August 03, 2010, 07:45:32 pm »
So, so true. T_T
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm