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!

2012 Time to relax!

Img_1494

In the picture above my cat Gilda sitting over a “hot water bottle” (hope to have found the right word!).

Yes because at the start of the year, for the first time in the last four years, I got the flu and high fever! So I had to momentarily pause my work. At the moment of writing this post I still don’t feel really well, but at least it’s an excuse for typos/grammar mistakes πŸ˜‰

I think this was a sort of warning. In 2011 I worked like NEVER before, but since I’m human, in 2012 I plan to take things more relaxed. Don’t worry this doesn’t mean I won’t release any games or slow down incredibly! But thank to the effort of the previous years, I’ll be able to release new games reusing good part (or almost all) of the code I’ve already written, speeding up the process.

This is a commonly used tecnique, even in the top AAA games. Making a new game from scratch is one thing, but doing one with already a solid code base, even if of course needs to be changed, expanded, redesigned, is much faster, believe me!

Loren The Amazon Princess uses a new RPG Framework, but luckily the big part of it was written in past year by Michael (also known as “Anima” in some forums). There’s really not much work left, and what I have tested so far seems to work very well apart some inevitable minor bugs. I spent most of this week redoing several times the battle screen layout.

Finalgui

In the image above, an almost final GUI layout. But as the user “Foxfeeder” rightly pointed in my forums, it’s a pity to use those small portraits, when I have such well done waist-up images of all party members and enemies! So I’m going to tweak/change it again next week as soon as I can resume working.

Planet Stronghold: Warzone will obviously reuse the first game code, but with some improvements that will have a big impact on gameplay, like area of effect Psionic Powers. Even in this case luckily, I did most of the update last year, so there’s “only” the story to write and the item/enemies. Still quite a lot of work, but should be done before the year ends (don’t want to say this Summer even if I hope to)!

Joshuaromance

As promised, above you see a “sneak peek” of Joshua possible romances. What do you think? I believe the sequel will satisfy everyone and every tastes πŸ˜‰

Nicole, (the Mystery/Otome game), Amber’s Magic Shop and Roommates (set in college with all romance options available) will use Always Remember Me interface with some changes, so that each game will feel somehow unique. In Nicole I plan to put some clue system, in Amber there will be a potion brewing simulation, and in Roommates you’ll be able to take different jobs based on some of your statistics.

Heileen 3: New Horizons will use a scheduler similar to Flower Shop games. There won’t be any farming simulation, but other mechanics. Some coding will be required, but at it’s core is a Visual Novel, since the first two games were “pure” Visual Novels I didn’t want to transform it into something too complex. There will still be stats, relationship system and other things though πŸ™‚

Sebastian

In the image above you see Sebastian, the “new entry” and 4th male dateable character of the game. The artist Rebecca will be working during January-April of this year on the art for the game, I saw the preview of the romance CG for John – Heileen and is very interesting πŸ˜‰

The “New” Games

If you follow me and knows all the various games I’m working on, you might have noticed that from the list above is missing both Undead Lily and Queen Of Thieves. That is because they are the games which will require more brainstorming, coding, and testing, since will use very different gameplay mechanics:

The Queen Of Thieves will use in part a map/life sim, but also several new gameplay methods. I have already in mind some interesting ideas for it, but I think will either find a coder for it, or if I need to code it myself will take some time… πŸ™‚

Undead Lily is almost finished art-wise. It’s missing only a few backgrounds but all the character art is done. However, I have an idea on how to make it, but I am almost certain that it cannot be done with Ren’Py (maybe using some black magic with the Sprites class… but I don’t know how!). So I might even do this game with Flash or some other language. I had started making it already but I paused it, since I want to make the game the best I can.

2011 The Year Of Farewells

This year was… weird. It was bittersweet, crazy, successful, painful, happy, sad and… the year of farewells.

This year indeed I’ve said farewell to my beloved uncle, the person who helped me to become a game developer more than anyone else since I was a kid.

Imgp4027

I’ve said farewell to several pets: the last one, my dog ArtΓΉ, just a week ago. In the picture above I’m with him during a trip to Germany.

But it was also the year I said farewell to my old car. I know it might seem stupid: but I was somehow attached to it. It was the car I had on my first date. The car I used to go at the office for my first job. Was the car I used when I gave the first passage to my girlfriend, and when I went on my first holiday trip. So many memories, mostly good ones!

I’ve also said farewell to portals: or at least, to submitting to them. I’ve come to the conclusion that they get so many submissions that unless you make a perfectly “targeted” game, you won’t have any chances. Or you need to be featured on the most popular websites, which is something that seems forbidden to me for reason behind my control. So, from now on, I’ll just save my time and take care only of my followers!

How was business in the 2011

On the “business” side, this has been my most successful year ever since I was indie. This month was the best one, despite the various indie bundles, sales, and the crisis. I really hope business will continue like this month, would help me to relax a bit!

Of course, I’m not getting too much excited. Since I know that in a fast paced technology-related business things might change completely in just a few years (or even months). Still it feels good for once not being worried to pay the bills!! πŸ™‚

It’s interesting, if I think back about 2010 which was a rather disappointing year (mainly because of the two Vera Blanc games and Card Sweethearts, the worst-selling games I’ve ever made!). I was sad and angry because of the various failures, but I still had all my pets and my family members alive. I think this year taught me what really matters in life, not money or success – but love and being loved.

Next Year Goals

I really have big hopes for next year, since I’ll release many interesting new games of all kinds (RPGs, dating sim, otome, etc). The only thing I fear honestly, is that I might have to slow down a bit. I am not a machine, and this year for various reasons I was forced to be at home, and since at home I have my computer and internet connection… I worked! I didn’t have a SINGLE DAY of holidays. Of course I didn’t code or write all the year, but even managing people/sending emails takes lot of time.

And as a consequence I released 5 games in a year, which is something never happened before. I’ll try my best, but don’t expect 5 games next year! Even if who knows, maybe will still happen.

Happy New Year to everyone!!

Merry Christmas and Best of 2011

Img_1334

In the photo above, my cat Othello sleeping peacefully in a basket with a cushion πŸ™‚

Merry Christmas to everyone! To celebrate, from today until the 25th December EST timezone, you can get a single game from the whole Winter Wolves catalog for 50% off, using the coupon “XMAS“.

And what about the title “Best of 2011”? Well in the last week I’ve seen around internet lots of “Best of…” by almost all sites. The fun thing, is that they talk always about the same games! I don’t want to argue about Minecraft or Skyrim being the best games. However, I want to remind that there are small niches, who don’t care at all about those two games, and there’s nothing wrong with it!

Personally I TRIED playing Minecraft but I quit after 5 minutes. I know many other people who did the same. Does it means that it sucks? Of course not, but while that game entertained lots of people, there is a minority (a niche) that maybe preferred to play other kind of games, maybe one of my games.

So of the games I have released this year, I want to make three “Best Of”. I talk about my games because sadly this year I was so busy with work and real-life stuff that I really didn’t had time to play accurately ANY other game (including AAA titles) so I cannot judge anything.

Best Art

1. Planet Stronghold
2. Winter In Fairbrook
3. Always Remember Me
4. Love & Order
5. Spirited Heart Girl’s Love

The first two places are very close. However, while in Winter In Fairbrook the character art by Deji is lovely as always, the backgrounds are definitely worse than Planet Stronghold ones (they also had a different budget, so it’s normal!). Always Remember Me has slightly better backgrounds than Love & Order (and same character artist) while Spirited Heart Girl’s Love had the beautiful characters drawn by Meago, but it was an add-on, so it mostly reused the old game art.

Best Writing

1. Spirited Heart Girl’s Love
2. Winter In Fairbrook
3. Always Remember Me
4. Love & Order
5. Planet Stronghold

Ok I know that everyone loves Ayu’s writing. I do too πŸ˜€ But I think that Aleema writing on SHGL was a bit overlooked because of the game theme (yuri) which is much less popular than WiF one (otome). I might be also biased because obviously I like more yuri than otome πŸ˜€ Anyway, was a close call and depends on tastes. Always Remember Me writing was nice I think, while Love & Order was good but definitely short and not well developed in the romance scenes. Planet Stronghold…<coughs> I know, that’s the weakest point of the game, but the sequel won’t be written by me, I swear! πŸ™‚

Best Gameplay

1. Always Remember Me
2. Planet Stronghold
3. Love & Order
4. Spirited Heart Girl’s Love
5. Winter In Fairbrook

Well, there are no doubts that Planet Stronghold has the most complex gameplay, however I think that even Always Remember Me life simulation system, with the map and time of the day was not bad. A close call really, but Planet Stonghold probably was too much niche for most people. But again depends on tastes!
Love & Order wasn’t bad even if maybe a bit too much repetitive. The last two places could be considered a tie, since they were using the gameplay of the original title without much innovation.

Loren Amazon Princess release plan

Img_1398

In the photo above, my cat Gilda sleeping in a plastic bowl πŸ™‚

In the image below instead you see the almost final main menu of my upcoming fantasy roleplay game “Loren The Amazon Princess”. Please note how I wisely placed the Buy Now text πŸ˜€

Buyboobs

Current Game Status

Jokes apart, the game story is nearing completion, even if there are still many things left to do, mainly finding typos and checking the flow. It’s going to be a very LOONG and detailed game. Without doubts, my biggest game under every aspect: story, characters, art, sound effects/music, gameplay, longevity (you can play as male and female, and there’s a big variety of party members to select).

For the first time I also used an artist to do the GUI (windows,buttons, icons), and I must admit that it was worth it. Special thanks also to Aleema who helped with tweaking the GUI as well!

The Game (Many) Features!

Every character has a main skilltree (the Class, which can be Warrior, Thief or Mage) and a specialization skiltree which is unique to each character. In the image below you see the Berserk Skill description of Ramas, the dwarf berserker warrior that you’ll recruit early in the game.

Berserk

The quest system is also more complex than Planet Stronghold, since you can have quest and sub-quests (or steps). In the image below you see the main game quest “Find Queen Karen” (Loren’s mother) and also the first step, that is going to the town of Grimoire to gather more informations.

Quest

The game will have a map system and also lots of items, divided into weapons, armors, potions/scrolls/useable items. Each item will be divided into sub-categories like happens in most RPGs, for example you have cloth armors (usable by Mages only), light/medium (usable by Thieves) and heavy armors (usable only by Warriors). Same thing for weapons. You can also have items that can be used only by a specific character.

I have added already over 200 items in the game database, and will add more in the final version!

Of course, there’s no need to say that the game has a lot of romance options, including all the possible combinations (straight and homosexual of all genders)! You can advance the romance talking to characters while in the camp, and also during the main plot. The writer Aleema did an awesome job in the character interactions/romance paths!

Postbattle_copy

The Battle System

So I’d say the only thing that still needs lots of tweaking is the battle system. Not the rules or the skills implementation which is at good stage, but the layout. Right now there are 8 vs 8 battles, but as the coder remarked, they could be too long. My idea was to have the player fight epic battles against “hordes of undead”, so having 8 enemies would be cool. In particular for the mages and their Area Of Effect spells! However, perhaps I should limit the number of party members, since controlling 8 members every battle could be too much: I am thinking to limit it to 6 or perhaps even 5, and keep the 8 enemies instead.

Also, I won’t be able to use the same display view of Planet Stronghold, because of the bigger scope of the battles, so the battle might use the view of a sort of card rpg game. Getting feedback on the battle is one of the main reason why I’ve decided to release the game as beta pre-order (see below).

The Soundtrack

The game will feature another custom song by Cristina Vee & Matt Myers. I have it already but for marketing reasons (we’ll launch the song also on youtube and itunes) I will add it to the game only on the official release day (so pre-orders won’t have it). Trust me when I say that is one of the best pop-rock song I’ve heard this year!

The Release Plan

Those of you that follows me on twitter already know that I’ve decided to release this game in beta pre-order like I did for Planet Stronghold last year. However, differently from Planet Stronghold, I won’t be able to sell it initially at a cheap price, because I put too many hours and invested too much money on this, sorry πŸ™

So the game when will enter the pre-orders beta will be regularly priced at $24.99, while the expansion will be likely priced at $9.99.If things go as planned I’ll start the pre-orders stage in January – however is more likely the END of January.

The expansion instead will be released about 1-2 months after the main game. All the people that buy the game during the preorder phase though will be able to play it in exclusive before the others, and will also receive some extra items inside the game as reward, and possibly other “goodies” (suggestions are welcome!)