Lillypup

In this RPG (Role Playing Game) you star as Lillypup - a small dog that is lost in a harsh world!

Controls: Move with WASD or arrow Keys. Fight strange shapes by typing the availabe commands. If you win you grow bigger. If you lose or flee you will become smaller.

Lillypup Flash Game

Source code and assets

In the zip file you will find the complete project with source code and art assets (gfx). You will need HaXe and OpenFL (and also probably FlashDevelop) to compile from the source. Follow the getting started guide at OpenFL - Learn to get the setup working.

Download .zip (509 kB) 2015-12-13 (Competition Version)

Ludum Dare Theme

The theme for the 34th Ludum Dare Competition was "Growing" and "Two button controls".

Waking up late Saturday morning, after a wild friday out, I went to check the website for the theme. At first I couldn't decode if the theme was "TIED", or "GROWING TWO BUTTON CONTROLS" - a theme which I found to be a bit strange! Well, disregarding that strange theme, I began thinking about spiders, because they are tied up right? Then I went onto the blogroll (on the LD site) to see what the other fellow programmers had come up with... Thus I soon understood that the theme actually was either "Growing" or "Two button controls" - aha! - much more traditional LD themes at work, heh.

So finally a theme that was inspiring! And two themes I could combine and choose from at will. Great! I lay in bed toying with a few ideas and eventually and came up with this little RPG. Initially I had very grand ideas and a much more complex story in mind, but then the alarm clock rang and RLG (Real Life Game) started.

Real Life Game

Since this LD took part in late december the weekend was packed with obligations and stuff that needed to be done - stuff that has to be fixed before the big red demigod descends from the icy north and ups the GDP of various countries. This means that I had very few hours available, so during the entire weekend I did this game in small bursts and sessions while doing general chores and other life/family stuff (and spending some heavily taxed money). In the last hours of late Sunday coding I was really burnt out and just wanted to wrap it up and go to sleep. In the last hour I just had to laugh madly at misstyped words and missplaced semicolons that made it impossible for the compiler to convert the code into this piece of art.

Coding

Coding this game was pretty straightforward. I did not ran into that many issues with life-depending bugs or other major hickups. My main obstacle was the available time that made me cut a lot of content and lower my ambitions of pretty much everything.

Making a "RPG" with enemies and a separate battle screen was a new venture and I had to think up some new things to solve this problem. The solution I chose was to make a special FightData class that took care of all things battle related and just having the PlayState fire a BattleState with two "enemies" battling and having all the skill logic put into the FightData and the BattleState executing the skills. The separation was OK, but it really needs a bit of refactoring to divide the responsibilities further so a (future) expansion with a more complex fighting system would be made simpler.

Lack of time also made me unable to balance the fighting and creating a more complex battle system, so basically all skills/spell affect HP/Hitpoints or flags a variable to flee or do nothing. I had wanted to do more traditional stuff like magic points, poison, rage and similar status settings but that would have needed to much playtasting as well as a lot of graphics and sound.

I also had plans to make more of the enemies dynamic and walk around on the map, but I decided to scrap it to avoid "wasting" the few hours of coding I had left.

Content

As for the content most of the stuff was done in Blender. I really wish I had more skill and was more speedy when it comes to making 2D/pixel art animations, so to at least have something that moved on the screen I resorted to model the graphics in blender with some bone posing and then export the animations as sprite sheets. The graphics came out a bit dull and one-colored because I forgot to make more than one material for my 3D-objects. I also had wanted to make a bit more nice looking intro and start menu screen, but having about 3 hours remaining before deadline and a very dull head I just gave up and smashed some stuff togheter without any regard for looks. At least I did all the initial components/parts I set up to do, but in my head everything initially looked a lot more nicer!

Growing Two Button Controls

The theme of Growing is tightly coupled to the RPG-genre so it was a pretty natural starting point. Also having some 2 button controls in the mix could make for an interesting take on the battle dynamics. Comparing to last the LD theme I enjoyed this one a lot more, since it was much easier to work with these kinds of restrictions. With a strange theme I think you can really explore new ways to think about game mechanics design. And I think that was the central thing I disliked about the last theme ("you are a monster") since it naturally lead to many games using very classic game mechanics but having a monster protagonist instead of a "normal" hero.

Reflections

I really wanted to make the "growing" dynamic much more complex and suitable for winning the game. Having the hero both grow and shrink in size to solve various puzzles - a lot of RPG:s are focused on just crafting god-like tanks with maxxed out stats, so I felt it could be a good deconstruction of the genre to play a bit with one of the basic premises. Sadly I didn't have enough time this weekend to balance and make the entire package work! With a few hours left I had to stop "polishing" the battle system. And just ship what I had done..

I don't think I will attempt a RPG again for another 48h LD. It's just too much work. But it was a very fun attempt! Also if one wants to become a bit more philosophical the game can be "won" by actually avoiding battles all togheter and flee for your life ... I'm not sure if this is a real shortcoming (due to lack of playtesting) or if it should be looked as a deep, reflective statement about RPGs in general :)