Category Archives: game design

Old school vs modern RPGs

Dsc01420

In the image above, my cat Orfeo (italian for Orpheus) on the bed.

Today I want to talk about some differences between “old school” and “modern” RPGs, since I’m working right now on Loren Amazon Princess that is what I would define a “old school” RPG for some aspect, while “modern” for others.

Below a gallery with some preview images, showing several aspects of the game:

Damageprediction Levelupscreen Newactions Postbattle

One of the main differences between oldschool and modern RPGs is the turn-based / real-time mechanics. Most modern RPG use real-time. Unfortunately, I was kind of forced to use turn-based because making a real-time game needs lots more animation/art, and in general is harder to make.

I still have a battle movement order though, which is dynamic. If you see the column on the right, shows the movement order, and as you hover the mouse on the possible actions, it gives you a “preview” of how your decision will change the order. So beside the power/effects of a skill, you’ll also have to ponder the delay that the same skill gives. Sometimes for example, is better to use a skill that does less damage but lets you kill two goblin thieves already injured, than “waste” a skill that does more damage but pushes you back on the movement order list.

Another difference is auto-mapping. In my game I don’t have dungeons with map, so there will be just a main map of the world, with easily accessible places. But I remember some oldschool RPGs that didn’t have an automap, and you had to write down on paper the map of the dungeon. Seems crazy thinking about this now !

The user interface is also something that was greatly improved over old RPGs. Last year I bought Temple Of Elemental Evil, and was shocked by the clumsy interface: no mouse over, so simple button to change view/move object between players, and so on. Most modern RPGs use a “shared inventory”, that means all player have immediate access to all item owned by the party. If someone has an item equipped you usually need to unequip it to put in the pool, but before every item (even unequipped ones) was carried by a specific player, so the user had to do a much bigger amount of clicking.

The vendor / items comparison wasn’t automatic like now. In most new games, you have a way to immediately see if an item you just looted is more or less powerful than the one you’re carrying. Before instead you had to look at all the statistics and decide for yourself! It was crazy, right? πŸ™‚

Also, with a RPG featuring only one character is quite easy, but if you have a party things starts to get complex: what if there are two warriors in the party? you need to tell the player if the new longsword you just found is better or worse than the weapons equipped by both warriors. This is the problem we’re facing right now with the loot and the vendor in Loren Amazon Princess game!

The difficulty level is also something that changed radically over time. Most old RPGs were very hard, while modern ones offers at least several different difficulty levels, so people that just want to have easy combat and progress in the story, will be able too. In Loren there are three different difficulty levels, and they have a big impact on gameplay rules. At easy level, enemies are easy and the elemental resistances have a marginal impact on battle. At hard level, enemies are tougher and the elemental resistances have a key role: hitting an enemy vulnerable to fire with a fire-based skill will have a much bigger impact.

Lastly, the level progression was completely different. Even if I have to say that JRPG were always different from western RPGs, but in general leveling up after the first early levels was a big achievement. In AD&D games, already getting from level 5 to level 6 could take a LOONG time! Recently, beside the already mentioned JRPG, even in modern MMORPG like Everquest or WoW, you’re going to see the levelup screen much more often.

In Loren, I have decided to use this system: each character has a main class (Warrior, Thief or Mage) and a specialization (unique) class. Each class has 5 different skills, and each one has 3 levels of power. So as you see, each character has 30 different skills that can learn. So I have decided (though this might change during testing of course!) to have a level cap of 60, and give a skill point every 2 levels. This way, at level 20 you could have learned all the skills for every character, but at the basic level of power: so will add some more strategy since the player will need to think which skill to raise up to the maximum power level?

Every level up instead you get 3 attribute points, to spend on Strength, Skill or Will attributes. Will write about those three attributes next friday since the explanation is long and beside… by that time I might be about to announce the open beta preorders! (crossing fingers)

Professional developer’s look at Ren’Py

Editor

In the image above, some Ren’Py code (people familiar with python might recognize some keywords/syntax) from my current project Loren Amazon Princess in my preferred editor, SciTe.

Ren’Py was created by Tom Rothamel, as a tool to help everyone to create visual novel games, with very little or no coding knowledge required. I first learned and started using it around Summer 2008, and since that year it has evolved quite a lot. So it’s been 3 years and half since I started using it, and right now I can prototype many games rather quickly, even if works better for certain kind of games: heavily story based, with no real-time animations and of course 2d, since Ren’Py is a 2d game tool.

Currently Ren’Py is available for PC, Mac, Linux and is still experimental on Android, though it should be available sometimes in the future. There’s no iOS version planned at the moment of writing, even if the author seems to be thinking about it.

The language

Ren’Py, as the name suggest is based on Pygame and Python, which I consider the most advanced language available today. Simple, concise, but at same time powerful and easy to use.

It was love at first sight for me: I was used to type the Divine Comedy in C/C++ to load a .csv or do string operations, and when I realized how quick was to develop with python I immediately started to learn it, and it was very simple process (thanks also to the online documentation).

Ren’Py is NOT a visual tool. You don’t use the mouse to place UI. You use an IDE, currently available are SciTe or Jedit. This might discourage many people who first approach it, especially if they’re not coders but are used to play with Flash, Gamemaker, Stencyl or other visual creating tools. However, you soon realize that for certain kind of games there’s nothing better than Ren’Py and you don’t actually need a visual editor at all.

As I said the language was designed with visual novels in mind: though you can use it also for any story-based game like dating sim, RPG games, or adventures with some extra coding.

Recently a new Screen Language and ATL (Advanced Transform Language) were introduced, making the creation of interactive screens and special effects (zoom, rotation, movement, etc) even easier.

The Good

Very simple cross-platform capability. Since python is an interpreted language, this means that you can build the game for the three platforms (PC, Mac, Linux) with ONE CLICK. This is simply amazing! And you don’t have to worry for different behaviors: if the game works in one platform, it will behave the same in another. This was a big plus for me since I was used to have mysterious bugs on Mac when coding in C and Xcode, that weren’t present on PC.

With Ren’Py, I went as far as copying new .rpyc (Ren’Py compiled source scripts) directly into the zip (Mac version) or the tar.gz (Linux versions) from my Windows computer, without rebuilding the games and it worked, I didn’t encounter any problem. So for example you can develop for Pc, Mac and Linux without the need to buy a Mac or have a machine with Linux installed.

Powerful language and syntax. The language is really simple and intuitive. Remember that it’s a tool specialized for Visual Novels, but you can effectively write most 2d games with it. Probably the only ones that I wouldn’t reccommend coding are those who rely on real-time movement, like a RTS, shooter, or similar. Note that is still possible to make that kind of games, but I would pick another tool honestly.

Still for any other 2d game it’s really a great solution. Very strong GUI system, combined with the ease of use of python makes this a great tool.

Easy to debug. In most other languages, debugging is a pain. Not just finding the bug, but finding out which line of code cause it. With Ren’Py thanks to Python you get very detailed crash reports, telling you exactly where the problem is.

Magic reloading and rollback system. Those are without any doubts the BEST features I’ve seen in ANY 2d development engine. Not even Unity has something so powerful. What is that, you might ask? First, the reload: since python is a scripted language, you can ANYTIME (and I mean literally anytime) hit shift+R and see immediately the changes you’ve made to the current screen.

The rollback system instead is something inherited by the visual novel mechanics, but that works surprisingly well even to debug. In practice, the program stores the path you have choosen, and memorizes XX amount of “steps”. This was doen so that the player could “rollback” with the mousewheel or keys, to a previous situation in the game story. But it works even for coding!

Trying to explain better: if you start the game, then visit in order: screen 99, do action 32, screen 32, click button 2, screen 12, type your name, screen 42, click button 5. Can you remember that? the game can, and provides you with a way to go back, a sort of “Undo” but you can use it when directly playing the game in debug mode!

I know that even in Unity you can modify the game world with the 3d world editor and see the changes, but here I mean something different: you can see the changes without having to EXIT the game, and restart.

A few simple examples:

case A: you’ve been testing for 6h a complex RPG. You see a visual bug. You look in the code, find that a button was aligned badly, change the code and reload. You see the change immediately, and go on testing. “Flawless Victory”.

case B: you’ve been testing for 6h a complex RPG. You click “done” and the next screen crashes. Thanks to Python built-in descriptive crash you see where the problem was, in previous screen you assigned a impossible value. You do a rollback, in practice executing an Undo of all executed code, then fix the bug in the source with the game still running, reload, and go on with the testing. “Epic Win”.

And the documentation? it’s good, at least for the basic features.

The Bad

As I said, there’s no editor apart an IDE. There is no intellisense/code completion, and you cannot browse classes or labels (some people managed to use Eclipse or other tools for python to code with it, but it’s definitely a hack). This is definitely something that could be improved, since in particular in the first weeks of use you can’t remember all the commands by memory and you’ll be looking at the documentation extensively.

Bad documentation for the most advanced features. How does Sprites work? What is im.ConditionSwitch? and so on. The documentation explains everything, but sometimes seems written like if the author assumes the reader is a good coder/clever as him, but often that’s not the case πŸ™‚ I consider myself an average coder but surely not a beginner, and sometimes I have hard time to understand how some of this stuff works. But it’s not bad as it was in the early days when documentation was really scarce!

It’s an hobbyst project. Don’t get me wrong: the author is doing an awesome job trying to reply to all the support requests, mainly done through the specific Lemmasoft forum dedicated to Ren’Py. However it still is, at least for now, an hobbyst project. The author doesn’t make any money from it, and so obviously there’s no guarantee that you’ll get an answer to your question. I repeat, he is doing the best he can, and sometimes other people help answering the most common questions, but still you must not expect to get immediate responses to your problems.

Personally, I’d love to see Ren’Py become a professional tool, with full support of deployment for Android/iOS, and maybe future porting to HTML5 and more. I am sure many other gamedevelopers even outside of the “visual novel / dating sim circle” would pick it up because of its features.

In conclusion

Ren’Py is a tool with double face. If you want simply to use it for what was made for, it will do the job without problems and is simply the best visual novel/dating sim system around, at least for desktop computers.

If you’re a more advanced coder and want to build simulation games, strategy games, rpg games, or any 2d game that doesn’t need a lot of things moving on the screen (but even in that case, you could make it) you’ll be surprised by the ease of use and powerful features that Ren’Py has to offer, combining the power of Python with one of the best GUI / scripting systems I’ve seen in modern 2d libraries.

Yes, to use it in advanced mode it has a steep learning curve, but once you get the grasp of it, is really hard to get back to… anything else. I had to do some C coding last week, and wondered why the “rollback” wasn’t working, or why I couldn’t just hit Shift+R to see instantly the changes I’ve made!

At least this was my experience. If I was able to release 12 games in three years and half (almost one every 4 months) it’s only because I discovered this powerful tool. Thanks again to Tom Rothamel for the incredible piece of software he managed to create!

Numbers, numbers and formulas…

Img_0390

In the picture above, Batman looks broken. In reality, he was sleeping since hours…

What’s about the numbers? Well, not many people know what’s behind a game. It’s much more complex than what you think. That is, if you do the things like a good game designer should! πŸ˜‰

Numbers of a dating sim

What’s behind a simple dating sim like Heileen 3 that I’m writing right now? nothing, you might say, it’s just text and images, and a few choices. No, not really: the choices needs to be balanced, otherwise the gameplay would be a disaster! So, even for an apparently simple game like a dating sim, there’s a lot of work behind the scenes. Check the image below:

Heileen3

this is the OpenOffice spreadsheet of the first 37 scenes of the game. In each row, I put a short description of the scene, and then I added a “1” when the choices possible involve one of the seven Sins or Virtues. Below, at the bottom (but is not visible in the screenshot), there’s a formula called “Summatory” that sums all the values. Why? Because a well designed and balanced game should offer the player the same amount of choices for each of the seven Sins/Virtues!

So, while writing, I keep constantly open the spreadsheet, and I try to balance the game so that the player will always have the chance toΒ  get one of the 14 possible job endings (tied to the Sins/Virtues).

I’m not going too much in the details since discovering the skill+sin/virtue combo will be part of the fun of the game, but for example, the “Nun” ending will involve having max Chastity and max Faith skill.

On the right part instead, there are the choices that will affect the 6 possible romances of the game. The labels means: Morgan, John, Jonathan, Sebastian (the 4 male characters, Sebastian is a new one) and Marie, Lora (the 2 female characters).

Numbers of a RPG!

If a dating sim is so “complex”, imagine a RPG! Making a RPG without spending at least one month first designing the rules, is a suicide. Don’t do that. I can guarantee that you’ll be unsatisfied by the result.

Now check the OpenOffice screenshots below:

Lorencondition Lorenweapons

one is the condition/skill relationship for Loren the Amazon Princess RPG. How you read that? is a bit complex, but in practice:

  • the first table is the warrior skills. the cells with orange background require the target to be “Staggered”. Once it is, you can use for example the Gladiator “Battle Cry” (which has chances to Scare enemies), or the Blademaster “No Mercy” (which has chance to Weaken the enemies).
  • the second table is the thief skills. Thieves have weak attacks, but if the target is in the right condition, they can deliver powerful critical attack using their skills. They can set a target in a specific condition themselves. For example, using the Flaming Torch on a Slowed target, they can set a target in the Burning condition too. Then, a Demonblood (Mesphit) can use the Immolation skill to deal an incredible amount of damage.
  • the third table is the mages. Differently from Warrior and Thief class, a Mage doesn’t need any condition pre-requisite. They can just attack using their spells, which will inflict specific conditions as you can guess (Blizzard will inflict Frozen condition, Plague inflict Poisoned condition, and so on).

The second image instead is a work-in-progress of the weapons dabatase. Some values might not yet bet final. But as you can see there’s already a good variety of items! We’ve decided to use the following weapon division based on damage type: Edged (dagger, sword, axe), Impact (mace, club), Flail (Flail, Morning Star), Polearm (Staff, Halberd), Bow, Missile (Crossbow).

Explaining all the values will take too long, but if you’re familiar with RPGs you might understand already what is their use.

This was just to show the tremendous amount of work behind a RPG, and just for the skills and weapons (there’s more, balancing the classes, the enemy encounters, and so on). Now you understand why I’ve decided not to make more than 1 RPG a year? πŸ˜€

Homosexual relationship in games

I want to spend a few words about the homosexual relationship that I plan to put in all my future games. First of all, I am honestly a bit shocked by how Spirited Heart Girl’s Love announcement was mostly ignored by the press and reviewers. It’s not something new for me (I’m used to that) but this time was even worse than usual.

I really hope that is NOT because of main theme (women homosexuality) of the game, and hope is due only to random circumstances (I know from past years that September is not really one of the best months to do a new game release).

In any case, everyone who played the game said that the romances are much better than the original game, and in general the players’ feedback was overwhelmingly positive, and that’s what matters to me. So I plan to keep adding homosexual romance in all my future games, alongside the straight options, since all I care about is what my customers think!

Announcing Queen Of Thieves game


Here’s my cat Leon sleeping seen from a very fun perspective πŸ˜€ It’s one of my favourite pics of my cats.

In the image above instead you see the three main characters of my new game “Queen Of Thieves”. Before you say “what, another game in production!” – just know that all those games I’m announcing are just in the EARLY STAGES. It means that this game might be not ready before Christmas! Remember Flower Shop: Winter In Fairbrook? I announced it in July 2010 and is not out yet… and that’s just an example πŸ™‚

So, don’t get too excited or start thinking “how can he make so many games” and so on. Simply, nowadays if you want to survive as full-time indie you either have to make a BIG game that must also be successful (and it’s very difficult) or produce games at faster pace. Since I like to create stories and design gameplay, the latter solution fits me more than the former.

By the way don’t worry – I will write the main plot of Queen Of Thieves but the actual dialogues will be written by a native English speaker. I’m thinking about the same person who edited Vera Blanc texts since she did a very good job.

So what’s the game about? Without revealing too much, the story is about three girls who gets their mother killed when they’re young (I might change this and have her imprisoned rather than killed!). Her mother was the famous Queen of Thieves, so when the three girls grow up they’ll pursue the same “career” as their mother, with the help of Sambo, their father, who runs a shop in town.

The three girls are from left to right: Thalia, swift rogue, Joanne, powerful wizard, and Kira, deadly warrior. They’re all of three thieves, but each one has a specific training, what would be a Class in a RPG. Indeed this game will have strong RPG influence even if I am not sure yet it will be a real RPG. There will be battles but I’d like it to have more gameplay elements beside battles, so for now I’ll classify it as “strategy game”.

So I was saying ,each girl is a thief, but every one does it her own way. Thalia is the most close to the classic thief, and her skills involves sneaking, hiding in shadows, lockpicking, backstabbing, using light armor and dual wield and so on. Joanne is a wizard so can use magic for most of her task like opening door/locks, levitating, becoming invisible, charming guards, etc. Kira instead is the classic tough warrior: she’ll prefer to bash open door and locks, and will be able to defeat guards fighting them.

The main idea of the game is that you have to do both “solo” missions, so you can pick any character you want and have a very different gameplay experience, and have missions where you need to use all of the three characters, taking advantage of each class-specific skill.

Okay, that’s all for now, I’ve revealed even too much about this game! πŸ˜‰

Why making RPGs is so hard?


Good RPGs are few. Probably are the kind of genre where there are less games available. Note that I’m not talking about hack’n’slash RPGs, or “simple” RPGs. But story-based RPGs with lots of gameplay rules and many dialog choices and ethical / moral decisions.
It’s hard to write interesting dialogues that aren’t banal (and for a non-english speaker like me, is even more difficult!). In the screenshot above, Rumi Kai poses a good question to the player: she struggles between her interest in medicine and healing, and her innate destructive powers. She asks herself what is more honorable: to harm, or to heal?

That is an example from the various romance subplot I’m currently writing right now for my sci-fi RPG game “Planet Stronghold” which should be out at end of this month (with another beta 0.9 release around mid-January).

Dialogues and story apart, another aspect why RPGs are so hard to come by is gameplay balancing. I tested this game more than any other game I’ve ever made. Partly because it’s fun (so that’s a good sign!) and partly because every update, I regularly unbalanced the game πŸ™

How this can happen? Easily, I’ll make you an example. The Psionic Power “Harm” at high level can do a lot of damage. Like even 100hp of damage. This would mean that some monsters could be killed with one attempt! That was bad for gameplay balancing of course, so I raised the Psionic Points cost (think of it like if is Mana in fantasy RPGs). Problem is that a few weeks later, I realized that even with higher mana cost, if you had two Psionics you could still do 200hp of damage even to boss enemies! A boss that can be defeated so easily with just two hits would make the game a bit ridiculous πŸ˜€

So, my idea was to introduce enemy evasion bonus. Some enemy have a very high evasion value, that doesn’t apply only to avoiding weapon shots but also Psionic Powers. So before the Harm would always hit the target. Instead now you could miss the enemy, and since every attempt costs high amount of PP, that would balance the game well. The problem was that I forgot to lower the PP cost, making the game insanely difficult to play!

This is just an example of how two small changes would affect the whole game! So, if you make a RPG, everytime you introduce a game/ruleset change, think about all possible secondary effects otherwise you’ll start hear (rightful) complains from people in your forums πŸ˜‰