Sylvaniah Post Mortem

This post mortem is an archive from my 2005 blog post on my previous site

The Curse of Sylvaniah is a Action/Platform game that I worked on, in collaboration with Mattias Stridsman, aka Strille. It was released in November 2004 and was an instant success across multiple portals: within a few weeks, the game served nearly 15 million players, and even got covered by a Spanish Game TV program.

The whole project started after coder Strille had released his supertile-based engine, using Sonic graphics. The engine was quite a step up, in the world of Flash based platform engines: it performed extremely fast, and was way more flexible than most of the engines that existed at that time. Such a beauty was screaming to be turned into a “real” game, and not just ripped graphics of a well known license ?

By the time, I had released Two Kingdoms, which was well received, benefited from some attention from Flash developers, and I had been in discussion with Strille for a little while on a possible collaborative work. Both of us had nostalgic memories playing Ghosts’n’Gobelins, and with such an engine on our hands, the next move was a no-brainer.

The Story

While not being very important for the gameplay (well, less than let’s say, a RPG) I wanted to flesh the Lore of Sylvaniah a bit, and explain a little the level progression through a simple storyline.
The Realm of Sylvaniah consist of a giant, idyllic forest inhabited by Elves, Tree-Ents and all sort of magical plants and animals. Unfortunately, all of this changes the day the dreadful dragon, Røyk enters the realm and pick the highest mountain to hibernate. Even asleep, the dragon still exhale deadly fumes that darken the skies and corrupt the fauna and flora of Sylvaniah. Magically preserved from corruption, the Elves decide to send their best warrior in a perilous journey to slay the dragon and free their realm from its deadly grip.

The Game

Levels unfolded to follow the storyline: the player would start in the Forest, then would reached a burnt-down town, before scaling the mountains to assault the sleeping dragon. Levels were laid out directly in Flash, using the supertiles system Strille had designed. The whole system, combined with the way our character moved made it very easy to mix the classic horizontal level unfolding with more vertical approaches: while the first level was basically played from left to right, in a very classic horizontal layout, the second level tricked the player a little bit: Players would run all the way to the right to discover a dead end, and realize that the key to the level was to actually scale those very high trees. The vertical design here is one of my favorite moment of Sylvaniah, as it completely took players of guard and significantly upped the challenge/danger already present in the game.

At the time, we got quite a bunch of comments about the controls (they are all customizable, by the way :)) – and the game still generates some discussions on that level. I believed then, and still do, that the control scheme is just fine. Yes, the combo keyboard+mouse isn’t a very popular one, but once mastered, it gives you the precision and “control” you would expect in a platformer like Sylvaniah.

One thing to note is the amount of “customization” the game offered, which was pretty rare at that time: Strille really went the extra mile to allow the game to perform well of the largest range of machines possible, and players had a lot of options to turn on/off most of the game’s features!

One last noteworthy point of the game was the save-and-replays. I believe that Sylvaniah was the first Flash game to ever use such a powerful system: Each game input by the player were recorded, and saved with the hi-scores. When browsing through another player’s hi-scores, you could actually see them play the game, judge their performance, and learn tricks from the best players. As a designer, it was really gratifying to see how other players played through the game, and I learned my share of tricks by watching other people’s take on the level I had designed :). If we had been further with the rest of the levels, it would have been a great feedback asset to design better, more challenging levels!

For those of you interested about more technical details, I suggest to read the extensive interview Strille gave to GotoAndPlay, about Sylvaniah.

One interesting thing to note is that the whole game is written in ActionScript1! ?

The Art

The Curse of Sylvaniah shares a LOT of DNA with Ghosts’n’Gobelins, and more specifically, Super Ghouls’n’Ghosts, its more recent iteration. As for most of my games, Sylvaniah attempts to resurect the glorious era of rich, colorful 16bits pixel-art graphics.

Tiles

As said previously, the engine was tile-based, so the graphics had to be split into tiles that could be arranged and repeated on the map. But that’s where the supertiles system created by Strille was very convenient: I was pretty free on the size of my tiles – this means that elements that would be fit together would need to have the same size, of course, but from one set of element to another, I was free to change the tile sizes.

To give a concrete example, all my floor tiles, because they were meant to fit with one another needed to be one size, but the trees to would stand on top of the floor, or behind could be sized differently.

This proved very convenient, and much, much faster when designing levels and breaking down assets.

Background

In addition to the levels graphics, I wanted to have a very rich and vibrant background that would set the tone for the game (and help visually integrate the foreground elements. The graphic used had to big very big, to accommodate both the horizontal and vertical scrolling, keeping in mind that the levels in Sylvaniah are rather large.

The background was created in photoshop, combining photographies, hand painted elements, and digitally painted graphics, using very similar techniques used in mate-painting.

The whole setup was varied enough to provide an interesting scrolling backdrop, while not taking anything away from the foreground, where the game “really” happened. The general mood of the backdrop evolved from left to right, from “light” to “dark” and was reminiscent of how I wanted players to feel, as they were progressing further from one level to the next.

Sylvaniah was using only one background at release, although several (one per level) were originally planned.

Sprites

Sprites were handled a very classic way, mostly through spritesheets (meaning, one render per animation).

A notable exception was the end of level Boss, the Tree-Ent. Because of its sheer size (almost the full height of the screen) it would have been a very heavy spritesheet to generate the usual way.

Instead, we went with a Rag-doll approach: each moving limb was cut into it’s own asset, and assembled and animated within Flash.

This had two main advantages: first, the overall weight of the sprite was much, much smaller (no need to generate each step for an animation – but also, repeated limbs like legs and arms portions were only exported once). Second, it allowed us a much smoother animation, as the transitions were tweened, and not hand animated, unlike the other sprites.

This end-of-level Boss really needed to stand out, as a reward for the player, and I think that our approach really nailed it! ?

The player spritesheet was of course the one that required the most work. In-game, our character could use a lot of different weapons, and perform multiple actions. Each of these needed to be animated, on a basis of at least 4 frames per animation. The complete spritesheet for the player includes over 60 frames of animation!

Overall, the sprites drew inspiration from many classics, and even though I think that some could have been better, the look and feel of the game, at the time, was rather uncommon for Flash games.

Reception

When the game got released, it gathered quite a bit of attention! Strille‘s engine was already known as one of the fastest and most efficient Flash platform engine. This existing popularity, combined with the brand new graphics and IP, and some refinements Strille had brought to the engine (Ropes physics, for example) really brought The Curse of Sylvaniah under the spotlights.

And that’s where the somewhat sad part begins.

In a matter of days, our game got hacked, decompiled, stolen or hotlinked on various gaming portals. We had some loose plans to get some sort of sponsorship for the game, but hadn’t really come up with any battle plan yet. It was too late: the game already had gone viral, and could be accessed on dozens, if not hundreds of portals linking to it, or even worst, embedding the stolen file at various screen sizes, aliasing or distorting the graphics.

The site hosting the game got literally hammered with intense, constant traffic, bringing our host to its knees. Within a month, the game had served well over 15 millions sessions, and counting. At this time, Sylvaniah.com made the top 100.000 of the most visited websites in the world (90.000 something according to Alexa.com).

We never made a dime on this game, and if it wasn’t for the generosity of our host (Nils at 2iceMP.com if you read this Nils, give me a shout :)) we would have lost quite a bit of money!

Post Mortem

Well, first and foremost, I learned a valuable lesson: don’t-ever-make a pre-release for a game you haven’t secured a sponsorship for yet! – NEVER! ?

Aside that, the whole project was a blast! It was my second “real” game, and working with Strille has been smooth as ever. The project was completed in a timely fashion (6 months from idea to completion, working on week nights (some) and week-ends(all!)) and got very positive feedback. As with Two Kingdoms, it helped me put my name on the map as a game designer/illustrator, and generated “professional” contacts and friendships that are still kicking in nowadays ?

Strille got very busy, and ultimately landed a job in the game industry – I got busy as well, and we departed ways, never really finishing the rest of the game levels. At this day, only the first 4 levels are accessible, the rest awaiting to be finished…