• ### Blog Entries

• entries
24
53
• views
34066

Welcome to our dev's journal

## Loveable programming puzzle game Algo Bot hits Steam on February 14, 2018

Hello Guys,

I am happy to announce the release of Algo Bot on Steam on February 14th, 2018.

Steam page for wishlisting

Algo Bot is a puzzle game which challenges players to control the movements of a lowly maintenance droid aboard the pan-galactic colonization ship Europa. Over 46 levels, players must devise algorithms to carefully control Algo Bot’s path, borrowing concepts from the programming world - including variables and subroutines.

In the rich single-player story campaign, Algo Bot meets PAL, a cantankerous and aloof line manager, and Gemini, the cheerfully eccentric shipboard computer. When a routine recycling job goes horribly wrong, Algo Bot and this unlikely band of heroes must work together to save the sleeping colonists on board the Europa.

Algo Bot blends basic programming skills with gameplay to make a fun, creative and ultimately satisfying puzzle game.

## Algo-Bot Returns

Over a year after the release of Epistory - Typing Chronicles, we are proud to have reached the milestone of an 'Overwhelmingly Positive' User Review score on Steam. This feels like a perfect time to reveal our next original title: Algo-Bot.

Algo-Bot is a programming puzzle game taking place on an interstellar colonization ship, crossing the galaxy in search of new grounds to settle for humanity. Once again, we’ve teamed up with Epistory’s writer, Joseph J Clark, to give Algo-Bot a light storyline with a touch of British humor.

The concept of the game dates back a few years when we held a Kickstarter campaign to finance its production. Even though the Kickstarter didn’t reach its target, we promised the enthusiastic community that we would make the game if Fishing Cactus managed to secure a budget for it - and here we are!

With more funding secured than our Kickstarter campaign was aiming to raise, we’ve plunged our fingers into the original prototype and dug out the core experience. Out of this, we are building a brand new game with improved story elements, design, graphics and more.

The game tells the story of an Algo-Bot unit helping a robotic personal assistant - PAL - navigate the maze-like spaceship. As the player, you will take the role of the operator and use a visual programming language to issue a sequence of commands to Algo-Bot. Will you manage to solve all the puzzles?

# [font=arial]Once upon a time[/font]

Epistory is a typing adventure game, built with Unity3D and released on March 30, 2016. It received very positive reviews - both from critics and players - and sold over 100k copies (including bundles). You can see the game's Steam page here. We recently opened a Discord channel for the company, which you can join using this link: discord.gg.

It's been one hell of a ride! In this retrospective article, we'll try to give you a sense of progression from the early prototypes up to the release of the game we all know and love. We'll also talk about the great endeavor a game like this represents, even though Epistory isn't a big game by AAA standards. We'll share some of our successes, failures and missed opportunities.

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]It was the best of times, it was the worst of times[/font]

The most critical thing to do in game development is to identify and remove the risks. You take the riskiest feature, and you try it as fast as possible because you don't want a nasty surprise when it's too late to make changes. With an adventure typing game, we didn't know how the typing mechanic would work out: so we created a playable prototype very early on. Our primary goals were to test a typing mechanic to interact with items, handle character movement (which was tile-based at the time), and the mixture of exploration, puzzles and arena fights.

Early game development is the best part because all opportunities are still open and you get to try a lot of interesting things. But it is also the worst part as most of what you try is not as interesting as expected. You experience optimism and doubt at the same time.

You can see our first working prototype yourself, but keep in mind that it is really barebone and that no artist was involved (it is made with the Construct 2 engine). After that point, development restarted from scratch, with a different engine (Unity 3D), but with all the experience we gathered from the prototype.

Play the prototype

[font=arial]

[/font]

[font=arial]

[/font]

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]And she rode upon the back of a great fox[/font]

Since the first story ideas, we tried to link the typing mechanic with the process of writing a book. We started with a muse giving a writer's inspiration by typing words in a fantasy world which represented the writer's mind. As in the final game, at the beginning the world is empty and there is no story, so the project was called The Heroine of no Tale for quite some time. Mildly interesting fact: we got used to the acronym "THONT" and used it for a long time even after we named the game Epistory. Now the nickname is simply "Epi".

If you launched the prototype, you'll have noticed that the girl was walking and that there was no fox around. The great three-tailed fox is based on a mythical creature, a Japanese nine-tailed fox, which looked good in a papercraft style. But the real reason for its existence is that we needed to give the girl a mount, so that we could realistically increase movement speed without changing the world scale.

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]But they were lost[/font]

At the start of the development, it was decided that Epistory would serve as an experiment for a new way to manage our projects. Instead of having one project manager serving as an overseer for the whole project, the whole team would be its own manager while one of the Fishing Cactus directors would act as a client/producer. At that time, there were only three developers in the team. One game designer, one programmer and one 3D artist. Each acted as the manager of the other two, responsible for updating the task list, validation of quality standard and so on.

Of course, when the project first started we didn't immediately see the implications of that kind of organization. After all, there's so much to do! Creating a list of tasks feels pointless when you don't even have a character moving in the game world. Over time, we organically divided the tasks usually dealt with by a project manager among ourselves. One of us would mostly handle the communication with the externs (localization and audio) while another would mostly deal with the task lists and keep an eye on the schedule and deadlines. In the last few months of development, the three of us would take a few hours to do a full update of the task list and the estimated time left, to make sure we were still on target budget-wise.

All in all, we think it worked OK. There's room for improvement, but as a first experiment, it could have been a train wreck!

# [font=arial]They had always been lost[/font]

The first control system, inherited from the prototype, was tile-based and used DFJK to move. We grew tired of the way this worked: it was too slow, too clunky. We quickly changed over to navmesh-based movement, to unleash the player's freedom of movement. This was a lot better: we solved puzzles faster and had a better sense of exploration. But something kept nagging at us.

Why did we use DFJK to move instead of WASD like any other game? That's the question we got from everyone who tested the game at that point (and continued to hear even after release!). The answer is that we did not want the game to teach a bad typing behavior, because by playing you'll get used to typing that way. So we wanted to place the control keys on the middle row, where your fingers are supposed to rest on a typical typing position. But having cardinal direction controls aligned on a single row was very confusing.

So we began searching for more intuitive controls while maintaining good typing form. After repeated internal playtests of many weird control schemes (like 8 keys to handle 8 directions), we settled on EFJI (plus, after popular demand, we added WASD). This stays close to the default typing position and puts each diagonal direction to the corresponding key (that works more naturally because of our isometric-like view). That binding passed our ultimate "intuitivity" test: running in perfect circles without looking at the keyboard, which means that you can switch naturally between the eight possible directions.

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]Until a path appeared[/font]

A few months after starting development, we saw more enthusiasm for the project's potential both inside the studio and among players. At first, we didn't know if there would be public demand for a typing game so we were really cautious. After showing the game a bit, we knew that we would be able to make something that players would be interested in. Besides that, the first independent game of Fishing Cactus has to be a critical success for the studio's image.

Our confidence was increasing and we decided to commit more resources to the project, considerably increasing its budget. What was supposed to be a small-ish arcade game was now going to feature a deeper story and have a bigger scope overall. The game was already in an advanced state: we had prepared a short demo for the upcoming Gamescom and we had the first hour or so of gameplay ready.

[font=arial]

[/font]
[font=arial]

## We added a meteorite early to test some story ideas. We kept the effect, but the text changed a lot!

[/font]

We tried doing the story ourselves but it quickly became clear that, a) we were not gifted for that skill and b) we already had a lot of work just creating the game. We applied for pitches from writers for the game with story and structure intentions. We received a lot of answers: some of them were comical, some were a bit disturbing, but one struck us as the perfect match for the game.

The idea of a narrator looking for inspiration shifted to a deeper story: something personal, emotional, and introspective - something which can be read on different levels. We use different fonts and voices to give the player a few hints. You can read more about the story without spoilers.

With the story in place, we began searching for a voice. We needed someone who was capable of reaching the emotions needed for the story. Strangely enough, we received a lot of samples sounding like a radio commercial. Not bad by itself but so far from what we were looking for. Finally, we found her! Rachael Messer has a lot of experience voicing games and her voice was just right for Epistory. Her voiceover added a powerful dignity to the narration which really helps the story come to life.

# [font=arial]And so she followed[/font]

The next big step was to rework the introduction of the game according to the new story direction and finish the first dungeon. The goal was to bring that first hour of the game to final quality, kind of like a large vertical slice.

Usually, a vertical slice (or VSD for vertical slice demo) is an early demo of the game that aims to show how the game could be at its best. It sets the target for the final visual quality and gameplay experience, but only for a small part of the game. Imagine that we take the final game and cut a thin slice of it; that's your vertical slice.

With one hour of gameplay at the middle of Epistory's development, we had the same objective as a vertical slice but with a larger chunk of the game. The other objective of polishing that part of the game was to get it ready for an early access release.

# [font=arial]Was the path leading her?[/font]

And finally, that day came. We released Epistory in early access on September the 30th 2015 with the first chapter of the story (two of the eight dungeons). An early access release is like a mini-release: you feel the same joy and relief of leaving your game to the players, though it reaches a smaller audience than a full release. But the game is not finished so you come back the next day as if nothing had happened.

Well, actually not, because when you wake up the next day, you have received a lot of feedback for bugs and features. Mostly bugs. That means extra work for us to do - and quickly, because new players are seeing the game while you are working. It can be stressful, but that is valuable feedback we could never hope to get from internal playtests alone. So, thank you to all of you who took the time to write comments and send feedback.

That core group of early players also helps the game grow in popularity. And that is the other reason we released in early access: to build a community around the game before the actual launch. We get Steam reviews, shares on social networks, media coverage and word of mouth. When you are an indie and don't have a marketing budget that equals your development cost, it is what makes the difference between a commercial success or failure.

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]Or was she leading it?[/font]

Naturally, we developed and added the rest of the game in the order of the story. The initial plan was to release it chapter by chapter throughout the early access, and we did that for the second chapter. But that method was taking us too much time to make temporary versions of the game, and we needed that time to make the game as polished as it could be. Since the updates were not really followed by more sells or visibility, we took the decision to wait and release the rest of the game in one batch.

While we are talking about the dungeons we can reveal some small anecdotes for each one.

As the first one to be made, Burning Hollow, has been the most reworked dungeon. From a linear beginner level, we restarted from scratch to add hidden treasures and backtracking. Forgotten Forest and Drowning Halls were more straightforward to design: the first one is focused on getting lost in a forest (more than what we could do in the overworld). The second is focused on solving puzzles. Ice Mausoleum has a lot of props which are modified versions of the ones in Burning Hollow as they are basically both underground caverns. One difference is that we added a bit of elevation on this one.

For the next half of the game, we were more experienced and we didn't want to make the same thing over and over. So we tried to make the dungeons look different, mostly by making them less flat. Creation City does exactly that: it has 7 stages and from the final fight at the top you can see everything behind. All items are sorted by stage and the stages above you are hidden so they do not block the camera. The more technically challenging was probably the Crystalline Mine because we added a new gameplay system with light switching. Setting all those lights and having the words hidden in the dark was way more complicated than we expected. Shattered Isles' design is inspired by the part in Forgotten Forest where you can see small islands floating under the level. Finally, Lost Desert has regular point of view of the mountain that symbolizes your final goal. The mountain you see there has additional parts that are hidden when you actually reach it.

# [font=arial]She didn't know. It was just there[/font]

For eight years, we developed games for others and we used to keep our games secret until the publisher decided to release it. So, our first question was: when should we make the game public? Having the choice of going public early in development was quite shiny and new and definitely what we wanted. But the real question was: what did the game need?

Releasing a typing game as your first product is a big challenge. We knew from the beginning that Epistory was going to be a fairly niche game. Too often categorized as an educational game, we tried to emphasize on the art style and the "RPG - Adventure - Puzzle" side of it and after early feedback from the community, we came up with a tagline: "If Zelda and a keyboard had a baby, it would be Epistory."

We didn't like to explain our game solely by comparing it to others, but with such a nebulous concept, it felt like a necessity.

Our whole team got involved with public communications, which was definitely an advantage to us. It saved us time and helped present a better image of ourselves. It helped with community management, both during events and when we needed to write articles about development. The idea was to try our best to give a real, honest insight into development to people who followed the project. We will publish an article diving deeper into our communication strategy soon.

[font=arial]

[/font]
[font=arial]

[/font]

# [font=arial]All of a sudden, she knew where she was[/font]

Throughout early access, we were careful to always be present, active and helpful in the Steam forums. We were (and still are) firm believers in direct communication between players and the development team. It creates a strong community and we even received praise just for being there. It's also great to get to interact with streamers and YouTubers, mostly as a surprise random encounter in the video's comments or the chat.

Since we don't have the resources to organize extensive playtests, checking Let's Plays was a major source for bug hunting and player behavior analysis. Our tutorial messages were updated to be clearer after seeing videos with players not fully understanding the fire magic burning effect. Thanks, by the way, to any streams and LPers who gave us this excellent feedback!

By February 2016, after releasing two chapters on early access, most of the game was ready. The finishing touches were being added to the last dungeon of the game. The ending sequence and the accompanying video were being finalized. The list of bugs was shrinking day by day as we polished the game, getting it ready for its big day.

# [font=arial]She was home[/font]

Fast forward a few weeks and: Launch Day!

The game has been polished until it shines like a mirror. After several months of prototyping, followed by a year and a half of production, we were finally ready to hit the big green LAUNCH button.

In the days that followed, we were ecstatic. The players loved the game, the critics loved the game, we loved the game and we were -and still are- proud of our achievement.

But this was only the first part of the journey. To this day, one year after that release, Epistory is still being worked on albeit at a slow pace. We can't wait to share our next projects with the community.

[font=arial]

[/font]
[font=arial]

[/font]

## Fonts of Wisdom: Choosing Typefaces for Epistory

[color=#333333]

### Choosing a font is never easy and for Epistory, it nearly drove me mad. We didn't have to find only one font, but

[/color][color=#333333]

[/color]

[color=#333333]

### We had just a few constraints:

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

### To support a wide range of symbols (French, Portuguese, Polish accents, Russian symbols...)

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

### To always be easily readable

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

# Typing Font

[/color]
[color=#333333]

[/color]

[color=#333333]

### We also wanted to suggest that the font belonged to a book, so we chose a font with serifs. "Optimus princeps", already used for the subtitle in our logo, was our first selection but there were too many missing symbols.

[/color][color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

### At first we added constraints in order to determine with precision our needs:

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

### Find a vertical font that allows us to add long words without taking too much space

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

### Simple, no serifs, no extravagance to increase the readability

[/color]
[color=#333333][font=symbol][size=2]. [/font][/color][color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

[/color]
[color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

# The Secret Font

[/color]
[color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

[/color]

[color=#333333]

[/color]

## Epistory is now out on Steam!

Hi Fox Riders! Epistory is finally fully released. Can't wait for you to discover the end of the game. Good luck with hours of game waiting for you.

Also, we'd like to thank all of you for the support and love during the early access. Don't hesitate to share our new trailer around you.

In the coming weeks, we plan to fix the very few remaining bugs you could find in this version. We are even thinking of adding more languages.

But now let's party!

Play the game here.

[font=arial]

[/font]
[font=arial]

[/font]
[font=arial]

[/font]

[font=arial]

[/font]
[font=arial]

[/font]
[font=arial]

[/font]

[font=arial]

# Words to Type

[/font]
[font=arial]

[/font]
[font=arial]

### Gameplay wise, our solution was to give to each kind of element a dictionary from which a word is picked up randomly. The dictionaries have a given theme and word length restrictions. For example, the action of creating flowers is defined as easy, and so its dictionary has words which are flower names under 8 characters. The destruction of a rock is considered harder (thus it gives more points), therefore its dictionary uses scientific names of minerals between 8 and 10 characters.

[/font]

[font=arial][/font]

[font=arial]For localization, translators were asked to fill up the dictionaries using the same constraints for every language.[/font]

[font=arial]

# Several Languages in Early Access

[/font]
[font=arial]

### Epistory is reaching the end of a six-month early access period, during which we added story content as well as gameplay features. All that content was available in English, German and French since the first day of early access. Spanish was also added later on.

[/font]

[font=arial][/font]

[font=arial][/font]

[font=arial]

### On the one hand, it was a good thing to make early access available in several languages (at least, that's what our German and French players said). Besides opening the game to more buyers, it allowed us to check the quality of the early access builds thanks to our most dedicated players. For example, without them, we would not have thought about creating a German-Swiss dictionary (which uses "ss" instead of "ss"). One German fan even proposed to proof-read the script directly!

[/font]

[font=arial][/font]

[font=arial]

[/font]
[font=arial]

[/font]
[font=arial]

[/font]

[font=arial]

# Special Characters

[/font]
[font=arial]

### All those beautiful languages have their own eccentricities and colloquialisms, and it is far from obvious to know how they are used when you don't speak that language. What concerned us the most were the special characters (o in French, ss in German, ? in Polish...). We even have a Russian translation, which means cyrillic alphabet.

[/font]

[font=arial][/font]

[font=arial][/font]

[font=arial][/font]

[font=arial]

[/font]
[font=arial]

### That information helped us set up the rules for the words that players have to type (the dictionaries). We decided that common special characters are an important enough part of a language to be conserved. But the very rare ones (that exist mostly because of etymological history) and the ones that require more than one keystroke have to be avoided. In short, we wanted to avoid any frustration from players confronted to the most complex words their native language can provide.

[/font]

[font=arial][/font]

[font=arial][/font]

[font=arial]

[/font]

[font=arial]

# Editable by Players

[/font]
[font=arial]

[/font]
[font=arial]

[/font]
[font=arial]

[/font]

## How extra budget can increase your visual quality... and put you into troubles

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]This article shows the difficulty of maintaining Art Direction consistency on a project when its scope and visual quality suddenly increase during production! First, we'll explain the assets creation guidelines we decided at the beginning of the project. Then we'll see how quality problems emerged as the production budget increased, and how we dealt with them! Art constraints for small budget

[/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]When we started the production of Epistory (codenamed "The heroine of no tale" in those ancient times), the sales expectations were quite low because we thought we were targeting the niche of typing games. We already wanted a unique art direction, made of unfolding environments and paper-crafted items, but the budget constraints made us humble concerning the visual quality of each asset. So we ended up with those production guidelines to create game assets :

[/font][/color]

• Simple geometry
• All assets using the same multi-usage shader
• No complicated texture mapping (basic planar UVs)
• No unique texture per asset, only generic colored patches gathered in a few textures

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]Despite our small budget, all those assets put together created a simple but pretty cool look :

[/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]Those constraints made us 3D artists sad but it should have allowed us to make all assets and environments in time for the game release, so we were quite happy with it! But that was before we started communicating on the game...

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]Change of scope

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]The art team was producing the first levels of the game, and we started to spread some images and videos, building the community. At that point we understood that something was happening, youtubers were talking about our game, forums and conventions gave us very positive feedbacks. Our little typing game was becoming pretty popular, people were really loving it! The first round of Early Access conforted the first impression. As thousands of people added "Epistory: Typing Chronicles" into their steam wishlist, we realized that instead of making a funny but small scoped typing game, we could scale things up. We decided to transform it into a unique story driven adventure game, with lots of dungeons, collectibles, a scenario written by a real professional writer, and even give a voice to the narrator.

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]As the deadlines were pushed to 2016, the art team jumped at the chance to put more visual quality into the game!

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]New quality standards

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]We wanted to make the most of this extra production time, and we put more details into the new assets, so we basically took the opposite of what we were doing until now:

[/font][/color]

• More interesting paper-like shapes for the geometry
• More and more complicated shaders
• Clean unfolded texture mapping coordinates
• Unique textures per asset (or one texture for the same group of assets)
• A subtle but efficient vertical gradient (the base of the asset is darker than its top)
• With unique texture coordinates, we could paint paper folds, and add details like hand painted highlights on the edges and Ambient Occlusion (darker color at the junction between surfaces)

[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]On those two images it's easy to spot the quality gap. You can notice the polished shapes and the greater work made into the textures, which add a lot of depth and details to the assets :

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]The production time was obviously far longer than the old technique, because for EACH game asset, we had to unfold clean texture coordinates, calculate the Ambient Occlusion pass, calculate the vertical gradient, paint the edges highlights and details into the texture,...

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]We also put extra time to the environments creation process by adding an "artist layout pass" to polish each dungeon, and by working more on the lighting setups and effects. And the overall visual impact was far better than before!

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]The problem was that we quickly found out that the "old" assets looked dull compared to the new ones, but we couldn't afford redesigning all of them...

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]Assets wars

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]With each new asset being prettier than the last, we soon spotted a problem in the consistency of the art direction and assets quality !

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]There was too much difference between the old "flat" assets and the new "detailed" ones :

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]Unfortunately the budget was not so big that we could afford redoing all the former game assets to match the final style!

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]That unexpected constraint gave us the idea of showing a progression in the art style through the game, and we implemented a chronological progression into the overall papercraft quality of the adventure. That is to say the first part of the game is made of more basic shapes, and the quality of the papercraft technique evolves to be more and more noticeable as we progress into the game, following the steps of humanity evolution:

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]1- At the beginning, as the world unfolds for the first time, you will see the "basic" objects in the "nature" theme

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]2- Next, in the first dungeon you will be able to spot some prehistoric assets, made of archaic papercraft assets

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]3- As you continue your journey through human evolution, papercraft techniques evolves to show ancient civilizations

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]4- Later, you will travel through complex origami buildings, and much more, but we won't spoil you the pleasure of discovering it in the game!

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]We managed to add a real meaning to this papercraft evolution, but still we decided to redesign several old assets to match the quality gap. We've done this only for the assets we could see all over the adventure. Moreover, by doing those important assets prettier, they would be easily noticeable at the beginning of the game, where the assets are simpler, and better integrated in later dungeons, where the assets are polished.

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]The combat, exploration and teleporter tiles redone from scratch:

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]

[/font][/color]
[color=rgb(51,51,51)][font='Trebuchet MS']

### [indent=1]The conclusion of this article could be that it's far better to know the scope/budget BEFORE beginning the production process! If the scope suddenly increases, you will have to choose between more content or more quality, but keep in mind that most of the time you will not be able to use a trick like we did, and you will end up redoing all of your assets from scratch! And as artists will always tend to increase quality if you give them extra time, do not forget to keep an eye on them!

[/font][/color]

## Sneak peek of what

We've sent a small update with various bug fixes on Steam. But that's not all we want to talk about.

We have a few teasers for you. The biggest change recently has been the recording of the voice over. We prepared a short video to give you a taste of what it sounds like. It still need work to be fully integrated but we are quite happy with the results so far.

We also are roughly half done with the third chapter. We can start showing some part of it, and let you guess what kind of magic you'll discover. Here are two of the new items you'll encounter.

[font=inherit][/font]

Another planned feature is to rework the skill progression which is currently lackluster. More skills, which will be more useful will make their debut next year.

As a final word, we would like to thank everyone for their vote during the first phase of the Indie Of The Year. We reached the top 100 and we cannot wait to see how far we will go! Feel free to help us and vote for us one last time.

[font=inherit][/font]

Happy Holidays!

The Epistory Team

## The Story Continues - Chapter Two now available

After fighting an insectile corruption and embracing the power of fire, we left our heroine and her companion at the edge of the Forgotten Forest. Along the treacherous, twisting paths of her adventure, she began to uncover the secret pieces of her story. Now she must fight not to drown under the crushing weight of uncertainty and fight with dignity torestore her inner peace.

Discover new enemies, learn new magic and explore two brand new dungeons full of mystery. Be brave; for there is no turning back on the way to the truth.

After a bug in our save system was found, we cannot guarantee compatibility between the update and the current (Halloween) version. Depending on where you last left the game it will work, or not. Regardless of the state of the save, we recommend a new game because of the work that has been done in the first two dungeons.

Please be aware that this update marks the end of our early bird pricing. Epistory now be fixed at \$12.99 due to the major updates that have been done since launching on Early Access.

Thank you to everyone who has supported us on this adventure so far. We hope you will enjoy this new chapter and we can't wait to hear your feedback!

The Fishing Cactus team

## Trick or Treat! Halloween Update

As promised, Epistory - Typing Chronicles is now available on Linux and Mac! If you encounter any bugs please give us a heads up and we'll fix them as soon as possible.

The challengers amongst you will be pleased to find the new "Arena" mode in the main menu. It's a special place where the world will finally recognize the value of your typing skills. We're still working on the leaderboard that should come soon. It's also a bit rough around the edges.

Note that Spanish language has been added to the game. More languages to come during the Early Access.

Here's the patch note for the new version:

New Features

• Added: Infinite Battle "Arena" mode, where you'll soon be able to challenge yourself and get your name at the top of the leaderboard.
• And plenty of stuff behind the scene for the upcoming Chapter 2...
Various improvements

• Removed magic effect on enemies' last word.
• Special characters are displayed when the required magic is locked.
• Reworked "Burning Hollow" level design.
• Reworked story in "Forgotten Forest".
Bug fix

• Fixed: typing the word while it moves result in some letters not colored properly.
• Fixed: avatar moving using the last letter of a word typed if the typing mode auto switch is triggered.
• Fixed: auto typing mode switch was not happening if an untypeable (fire) word was displayed
• Fixed: brambles were reorienting upon hit
• And a lot more.

## Epistory needs to establish a subtle, layered narrative voice within its opening moments. Join the game's writer in a deep exploration of why this story is harder to begin than most.

Wether you're writing a game, or a movie, or a novel: it's always difficult to start a story. There's just so much riding on those opening moments. This difficulty is basically the premise for Epistory's plot, in which a struggling writer is trying to start a novel. The player assumes the role of the muse, helping the story come to life.

Epistory adds an additional complication: as well as attracting the player's interest immediately, it must also establish the narrative voice. In this article, I'll be explaining more about what this means and how I've tried to solve the problem.

What's In A Voice?
By 'narrative voice', I simply mean the voice of the narrator: who is telling the story? Why? And in what context? Are they speaking to the audience directly? Are they writing a letter? Is the audience an active party in the story, or are it given a camera's eye view into someone else's world? Ultimately, narrative voice defines the relationship between the storyteller and the audience.

Most narrative voice is established by its medium and a few quickly-gleaned implications. When a written story starts with a line like "Call me Ishmael" (a la Moby Dick), we instantly understand that there is a person telling the story to the reader. We understand that the narrator has their old world view, and agenda, and feelings. But when we watch a film and a camera sweeps across the Earth - like no human can do - we understand that a picture of the world is being presented to us impartially. We are invited to watch through a window.

Whose Voice Is It Anyway?
In Epistory, the narrative voice comes from a writer who we never see. All the words of narration - from the introductory sequence to the writing stretched over the levels - are the words this writer has written in their novel. The player's goal is to help the writer create the story: typing words and discovering things to encourage the author's inspiration.
This is a very hard thing to explain in-game: not least because we don't meet the writer. We have to inferher presence. Originally, the game's script did this the obvious way: it begins with a writer saying "I hate writer's block! How am I ever going to write this story?", and quickly settles down into the story itself, "She looked like a lost little girl". This establishes the narration as the writer's voice and ensures it makes sense within the context of the game.
This works - but it's messy because it creates two distinct narrative voices. The author's ("I hate writer's block!") and the story's ("She looked like a lost little girl"). Because we don't really know which is which, we have to infer every time - and so there's a constant dissonance. It's hard to know who is telling the story. Also, writers tend not to ask themselves questions in their own prose, so the voice may not sound authentic to player.

A New Voice
I wanted to try and do something a bit more subtle and seamless: using a single voice that represents all the narration. I've tried to do this by presenting the story as a work-in-progress and showing the writer's edits. The theory runs like this:
The game begins on a black, foggy screen. A blank canvas. Then some text appears: "Once upon a time". This is how all fairy stories start, right? The player knows that a story is beginning. But the text is quickly erased character-by-character. The story has changed, the writer's hand is revealed by implication.
The writer tries again, and this time she writes: "It was the best of times, it was the worst of times". This is how Charles Dicken's A Tale of Two Cities - the best-selling novel of all time - begins. Even if the player doesn't follow the reference (and most won't!), they should understand that the story has been restarted.
But this beginning is rejected too, and so it is also erased. The pattern has been established now: the author doesn't know how to start the story. So, third time lucky, the narrative begins in earnest: "There was a girl. And she rode on the back of a great fox.". And hey presto - the fog clears to reveal the player-character.

Voice of Reason
Because there is only one narrative voice, the player can trust that it represents the words of a story being written around their actions. We build on this start by adding more interactions which make the player aware of the author - and vice versa - by changing text as the player interacts with the world. It's a subtle idea, and maybe not everyone will get it. I expect most people won't be able to articulate it. But subconsciously, I believe people will understand that a story is being written around them by an unseen author.

Successful execution relies on two things: using recognisable (or cliched) opening lines, so that the player understands what the writer is trying to achieve (ie, the beginning of a story); and a character deletion effect, so that the player is aware that the writer is deliberately erasing and rewriting text. Sound effects can help reinforce the idea of writing and erasing, too.

This, however, is not the whole story. While we work hard to establish and contextualise the narrator's voice early in the game - we later sow in a few seeds of dissonance. Because in Epistory, not all is what it seems...

# [font=inherit]The Trouble With Tiles[/font]

[font=inherit]All of Epistory's levels start as an isometric RPG in Tiled (as explained [/font][font=inherit]in this prior article[/font][font=inherit]). This is a great foundation to build on - but it brings some technical limitations which we have to deal with. For example, we have to respect the TiledToUnity plugin rule that each tile must be a square of equal size. It doesn't help that any tile rotation must be done as a [/font]duplicate tile[font=inherit] instead of a random effect.[/font]
[font=inherit]As a result of this, the tiles use to build each level stand out too clearly. We can see the seams, the joins, the patterns. The effect is fatal to immersion within the game world.[/font]

[font=inherit]This old screenshot illustrates the problem nicely. Each tile is the same as the previous one, creating a very obvious pattern. This is just a small example - sometimes the whole screen will have the same tile, interrupted only by the occasional prop or decoration.[/font]

[font=inherit]In this article, I will guide you through the steps we used to break this ugly pattern and improve the overall look of the ground tiles, which currently look like the screenshot below. It's unlikely that we will change the tile's look again - but you never know.[/font]

# [font=inherit]Start at the Start[/font]

[font=inherit]If it sounds obvious, it's probably because it is! Rotating each tile will help make it look different and vary the seams created where they join.[/font]
[font=inherit]We started by rotating our tiles randomly with an editor script. Since our goal in art direction was to create a hand-made paper world, we decided early on that a tile would be considered an independent square of paper. Based on this fact, we agreed that imperfect tiling between two tiles was acceptable: meaning that rotation gives us variation. The result was better but still a bit jarring.[/font]

# [font=inherit]Lean Towards the Abnormal[/font]

[font=inherit]Because each tile is supposed to be a piece of paper, it's hard (not to mention expensive) to make each one visually unique. We aimed to solve this by dynamically changing the normal map on each individual tile.[/font]
[font=inherit]A normal map is a 2D image used to replace or modify the normals of a 3D surface. Because our tile models are mostly flat, we use normal maps and lighting to give them some paper-looking wrinkles.[/font]

1. world position.
2. a parameter which allow us to tweak how much a change in world position affects the overall look.
3. division.
4. frac. It takes only the fractional part of the input. Effectively producing a value from 0 to 1, based on the world position.
5. append allows us to create a vector 2 (UV in our case).
6. normal map sampling.
7. [font=inherit]normal blending. You cannot blend normals the same way you blend colors so we use a [/font][font=inherit]custom formula[/font][font=inherit].[/font]

[font=inherit]The effect of this is that instead of having one normal map per tile and limited to its bounds, we have two normals, whose UVs will depend on their world position. This effectively spans (and repeats across) the whole level. If you look carefully you can see that one of them will have U & V depending on the positions X & Z while the other will map U & V to Z & X. This "crisscross" allows us to have very different looking tiles each time, instead of having the pattern being simply repeated less often.[/font]
[font=inherit]If you want a more visual way of understanding this, you can see it in the editor view. We created a gif but it was too heavy to be posted inline. You can find it here.[/font]
[font=inherit]You can see that when I move the tiles, the normal on top of it doesn't move. The apparent seam on the normal is a result of the tile rotation around Y.[/font]
[font=inherit]As a bonus, we also added a detail texture. It's a common technique so I won't explain it here - but here's the shader forge screenshot:[/font]

# [font=inherit]Perfect Imperfections[/font]

[font=inherit]This was the first time I did major shader work and it turned out quite well in my opinion. With the current art direction we had to improvise a bit - but we successfully fixed the tiling problem with no rework on the assets. This results in a seamless, believable game world.

PS: Epistory is now on Steam[/font]

[font=arial]

[/font]

# [font=inherit]The buildup[/font]

### [font=inherit]As time went on, that simple "points giver" script was updated to include various behaviors like prefab spawning, door unlocking and so on. It worked well but it was not very flexible. So I changed the structure to include a parent class to have a common entry point and place each behavior in a child class.[/font]

[font=inherit][/font]

[font=arial]

[/font]
[font=arial]

[/font]

[font=arial]

[/font]

# Fluffy Friday #5

[color=#333333]Today, we'd like to take you back months ago when Epistory was nothing more than a tiny idea in our heads. That idea needed to be exposed to the rest of the team. That's when the concept artist joins the party.[/color]

[color=#333333]The concept artist is a 2D artist who explores game design with concept art of characters, monsters, and environments. His work contributes to the visual direction the game will be taking for the rest of the team, even if it's 3D game.[/color]

[color=#333333]So, our 2D artist drew a couple of concepts to allow our 3D artists have a better vision of what kind of assets he should create for the Game. Here is concept of Epistory paper look and how it looks in 3D.[/color]

The paper look was definitely a key point for Epistory but sometimes you just need to convey a feeling and you come with things that tell stories just like this one:

Hope you felt the magic. See you next week for another incredible Fluffy Friday!

Have a great week.[/font]

## Fluffy Friday #4: Meet the Monsters

Bite sized news for small stuff. Today: Meet the Monsters

Hello fox riders and welcome to another installment of our fluffy sweetness. If you missed our burning brambles gifs last time you can check them here

# Fluffy Friday #4

The particularity of the chosen Art Direction is that it's not that easy to create assets "looking like paper" but with a non realistic look. Specially when it comes to put colors on them.
We use an origami/folded paper look for the monsters. You already know the spider.

Let me introduce you the Worm Tank, a vicious crawling creature that bear you down when you're on sight. How scaring, isn't it? Below the white paper concept following by the first color test and...

The full colored Worm Tank, ready to attack, as you'll find it in game.

Hope you felt the magic. See you next week for another incredible Fluffy Friday!

Have a great week.

## Fun with bones in Unity

[font=verdana]

# The inception

[/font]
[font=verdana]A while back, after slowly becoming mad tweaking animations and movement behavior on our avatar, I decided to have some simple fun with Unity. See where the limit was and what's possible in a certain domain. Since I was obsessed with the character's animation, my attention was driven towards improving what our animator gave us in terms of natural movement. Even though the animations were quite good, I wanted some physics madness in there. So I went on a quest to mess with the bones of mecanim.
It turns out it's rather straightforward to activate the so called "jiggly bones". A few changes in your model before export does the trick. It does however require a great deal of value tweaking and physics engine know-how. You may follow this tutorial if you want to try it for yourself.
Here's what I could do as a quick 'n dirty test. This will *not* be in the game. Even if the effect could be nice, It is at the bottomest bottom of our priorities.[/font]

[font=verdana][/font]

[font=verdana]But doing this as a playful "what if" helped me learn a lot about how Unity works with animations and physics. Even better, I would never have thought of what I'm about to show if I hadn't gamed the system.
A few days later, the movement and animation finally polished, I found one last thing I could do, turn the head of the fox in the direction of where the avatar will go next. Providing a subconscious feedback on the movement. Using the head bone and overriding the animation, it should be possible. Right?[/font]

[font=verdana][/font]

[font=verdana]It turns out it is. This gif was taken when a bug prevented the fox to move or turn so you can clearly see that the head orientation is overridden (and a bit disturbing, sorry).

# How to do it

[/font]

[indent=1][font=verdana]

## [color=rgb(51,51,51)]First, you have to get a reference to your head bone:[/color]

[/font]private void Awake(){ HeadBone = /*find the headbone in the hierarchy*/.transform;}
[indent=1][font=verdana]

## [color=rgb(51,51,51)][color=rgb(51,51,51)]There's nothing to do to your model. All you have to do is use the LateUpdate function which is called afterthe internal update of the animations.[/color][/color]

[/font]private void LateUpdate(){ Quaternion look_at = Quaternion.LookRotation(Direction, new Vector3(0.0f, 1.0f, 0.0f)); look_at *= Quaternion.Euler(-90.0f, 0.0f, 0.0f); // Our models are rotated HeadBone.rotation = look_at;}
[indent=1][font=verdana][color=rgb(51,51,51)]You can do all sorts of crazy stuff with this.[/color][/font]

[font=verdana][color=rgb(51,51,51)]

### # The result

[/color][/color][/color][/font]

[font=verdana][color=rgb(51,51,51)]

### [color=rgb(51,51,51)]

[/color][/color][/color][/font]

[font=verdana]

[/font]

## Fluffy Friday #3: Burning brambles

[color=#333333][font='Trebuchet MS']Bite sized news for small stuff. Today: Burning brambles.[/font][/color]

[color=#333333][font='Trebuchet MS']

### Welcome to another installment of our fluffy sweetness. If you missed our Critters gifs last week you can check them

[/font][/color]here[color=#333333][font='Trebuchet MS']

### .

[/font][/color]

# Fluffy Friday #3

Ok! To recap, we had a world quite pleasant to walk in, decent levels and dungeons, epileptic Critters... and a girl riding a giant fox fighting against monsters and corrupted nature. Fighting how? With words. I mean MAGIC FIRE WORDS!

So, here's the fire animation, shown in our previous paper on art direction, in action. Yes, we know, burning the forest is bad but these brambles were evil, very very evil.

Imagine you're hanging around with your fox and brambles block the road: burn them! There are monsters on your way outfrom the dungeon: burn them! There are cute critters... wait... stop. May I draw your attention on the fine and not final spell forging animation before the girl sets the world on fire?

Hope you felt the magic. See you next week for another incredible Fluffy Friday!

Have a great weekend.

## Fluffy Friday #2: Adding critters.

[color=#333333][font='Trebuchet MS']Bite sized news for small stuff. Today: Adding critters.[/font][/color]

[color=#333333][font='Trebuchet MS']Welcome to another installment of our fluffy sweetness. If you missed our world uncovering gifs last week you can check them [/font][/color]here[color=#333333][font='Trebuchet MS'].[/font][/color]

# Fluffy Friday #2

After our world building, level crafting & dungeon inaugurating, we were left with a grim realization. For all the beauty in display, we were missing something crucial. We had a beautiful but empty painting. A canvas ready for: Life! *crackling thunder*

So, here they are presented with their idle animation. Minding their own business until you come along:

They'll spawn in small groups where it's relevant and flee when you come close. Now that the system is in place we could add more variety if we find the time. It's not completely done but I can already tell you it adds a lot to the look & feel of the game.

We'll show more soon and I wish you a nice week end.

More on our IndieDB page

## Fluffy Friday #1: Tile appearing

[color=rgb(51,51,51)][font='Trebuchet MS']

### More on our IndieDB pageBite sized news for small stuff. Today: Tile appearing.

[/font][/color]

[indent=1][color=rgb(51,51,51)][font='Trebuchet MS']

### Today I present you a new kind of post that we will try to do regularly. As an introduction I'll simply say that we have a lot of small juicy stuff to show that would feel lost in a bigger article. It will take the form of a few gifs or pictures and a bite size article. The topics should range from fluffy things to weird but funny glitches and all that stands in between: gameplay shorts, animation tests and so on. Now that it's out of the way, let's continue to...

[/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### Fluffy Friday #1

[/font][/color]
[indent=1][color=rgb(51,51,51)][font='Trebuchet MS']

### During your wandering in the world, you will slowly uncover more and more of it. Akin to a blank page filling up with words. We wanted that event to be enjoyable to watch because it marks progress in the game. So we did something like this:

[/font][/color][/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [font=inherit][size=1]

[/font][/font][/color][/font][/color][/font][/color]

[indent=1][color=rgb(51,51,51)][font='Trebuchet MS']

### While this gif is not the final version we had at the time (I can still see a few bugs) there was no sense of accomplishment. Just another chunk of land coming in.

[/font][/color][/font][/color][/font][/color]
[indent=1][color=rgb(51,51,51)][font='Trebuchet MS']

### So we decided to wait. Once the gameplay mechanism is in place, your priority shifts to another gameplay element. Polish can come later, right? Yes! And we did a pass of polish on that system along with better graphics overall, I'll let you see the differences for yourself.

[/font][/color][/font][/color][/font][/color][/font][/color]

[color=rgb(51,51,51)][font='Trebuchet MS']

### [font=inherit][size=1]

[/font][/font][/color][/font][/color][/font][/color][/font][/color][/font][/color]

[indent=1][color=rgb(51,51,51)][font='Trebuchet MS']

### More on our

IndieDB page[/font][/color][/font][/color][/font][/color][/font][/color][/font][/color]

The constant dilemma between more control (but time consuming) and more automatism (but never perfect) in Level Design, and how tools can help.

# The problem

As in most puzzle / adventure games, Epistory's level design, is designed manually from the world layout to the smallest puzzle. But to save time and money, we need the automation of everything else, like generic and repetitive patterns or effects that give life to the world. That is what this article is about: the level building of all the things that are not unique or designed for a specific purpose.
A good example of that is the placement of every tree in a vast forest. We know what we want (a group of trees), where (a delimited zone), and how (dense and diversified). So we have parameters that could drive a procedural generation of trees. By the way, game engines have similar tools for vegetation generation.
But in the same time, we want to draw a path in that forest with a specific level design, and the trees' shape and position influence that design. This is where lies the dilemma: a full control allows us to place each tree as we want but takes a lot of time, and a full procedural gives results that will never be perfect.
If you want a metaphor - everyone loves metaphors - imagine you are drawing a diagram or taking notes. If you use one black pen, the result is not as clear as if you use a color code. But if you have full rainbow pens at your disposal, you are always tempted to choose the right color for the right thing and, inevitably, you lose time. Limitations can have a positive effect, be it saving time & money or coming up with creative solutions.

# Our tools

Before explaining our solutions to that problem, I need to talk about the tools we are using and a bit of our level building workflow. Epistory's level design is tile based and we use the Tiled editor, which is perfect to prototype, create and edit tilemaps really quickly.
The essential criterias when choosing a tool are its usability and the level of control it allows (or in reverse, its constraints). Of course there is also the cost to buy or develop that tool, but I will not talk about that aspect here as I am focused on design (plus Tiled is free and Unity plugins are relatively cheap).
You can get used to Tiled pretty fast and come up quickly with a rough prototype. It saves you time while doing repetitive tasks and is easy to edit. In sum - as long as you stick with tiles - its has no big usability flaw.

So I start by creating the map with Tiled. But the game is in 3D and developed on Unity. So here comes theTiled to Unity plugin that uses the exported tilemap to generate the level in the Unity editor. It simply places the right 3D asset at the right place.

For more specific features, we modified the plugin source code to add more functionalities. An example: when you progress in the game, new zones of the world will appear. So we need to be able to delimit those areas. The easiest way to do it - from a level designer point of view - was in a specific layer on Tiled. So the plugin can also add the generated tiles to a tile manager, and determine to which zone it belongs from that "Zones" layer.

Finally, I place interactive elements and puzzles manually in Unity. It is easier and more editable this way because they all have specific behaviors and parameters. Unique decors used as landmarks and localized visual effects are placed the same way at the very end.

# Some solutions

Controlled randomness
In my opinion, the best solution to the "control vs automatism" problem is the more obvious one: a random (or procedural) generation in the editor, which is corrected manually only where it is needed. Note that the random aspect only exists in the editor, it cannot be regenerated in game. As long as you do not change everything, that controlled randomness has a good time / quality ratio.
For a concrete example in Epistory, I will use the example of the forest again. I use the random mode on Tiled to randomly paint with elements from a selection. Then I change some of them manually in Unity if it creates strange looking patterns. I try to have a continuous border for smooth collisions. And I place a few mushrooms, again with a bit of randomness.

Localized procedural
Another solution is to use a more ordinary procedural generation but limited to a very few parameters and/or a small area. Here the randomness happens in game, but not on the key elements of the design. That localized solution allows a correct placement at macro scale without having to place small elements one by one.
In Epistory, we use that method to spawn critters. Potential spawn points are defined and only some of them are chosen a game start. They are not always at the same place but always at a suitable one.
There also are large zones in which groups of particles are randomly spawned. That lets us quickly define the areas in which you will find butterflies, fireflies, fog and so on.

Item variations
Finally, only one attribute of an element can vary randomly. This way, you can use item variations that keep - for example - the same size and function in game but can look a bit different. You do not have to bother about the small variations if they do not affect the design.
On Epistory, we made little use of that but we consider adding variations like size and texture for trees and rocks, rotation on tiling textures, ripped paper effects on some tiles, and so on.
I am sure there are plenty of other solutions and applications to them. I hope that you found those ones interesting and that they could be useful elsewhere.

## A paper on art direction

The "Art Direction" is basically a set of visual rules you decide to follow during all the creation process of your project. All the visuals you will design will stick to it, and in the end your project will end up coherent, with a specific look everyone will recognize.

When Epistory was just in the shape of a playable prototype, we were just finishing a serious game on 1st world war. Despite the seriousness of the theme, the Art Direction of this project was really cute, showing flat scrapbooking characters and paper styled interfaces.

Our game about 1st world war. Notice the "scrapbooking" art style !

We really enjoyed making all the game assets with this look, but couldn't push the style beyond the limits. Then Epistory came within our grasp: "A muse lost into a writer's mind, creating the world as he imagine the story, fighting against the blank page fear" ? Hell yeah ! We immediately saw that we could continue with the paper style thing, but pushing it a lot further into a full 3D game !

Art "right" Direction
We first started to look for interesting references and we made moodboards with it.

Some of our "papercraft" styled references

We quickly noticed that the scrapbooking style couldn't be enough. Despite the 2D movements of the avatar, we had to make full 3D environments, and relying only on 2D paper collages would appear flat and boring. We decided to go for a more "papercraft" approach, with some additional elements taken from the origami techniques.

First 3D test to see what we could do with those papercrafting/origami techniques. Once we defined the shapes, we worked on a basic colored layout.

Paper pot
After testing differents approaches we ended up with a mix of different paper techniques:
> Scrapbooking for the environments ground tiles:

> Animated objects made of paper crafted volumes for destructible assets:

> Folded paper for texts and logos:

> Origami/folded paper for the monsters:

"Hot paper"
Once we had chosen the path of paper, all the assets had to stick with it, even special effects and particle systems ! We made "folded paper" styled textures, and used almost no alpha or additive techniques. It was complicated at first to find elemental paper styled effects to replace "classic video game effects", but once we did the first ones we just had to stick to the technique.

Fire effect without using the classic additive method, only with plain opaque paper sheets !

"Crapbooking"
The major drawback of this Art Direction is that it is often difficult to create assets "looking like paper" but with a non realistic look. We wanted to keep things cartoonish, with strong shapes and colorful
environments, but when you have to make a style of paper you can find in real life, the risk is to end up with a great but too realistic asset. The difficulty is to make believable paper looking assets, but still looking cartoon... It's an everyday fight to maintain consistency between the assets, but
the challenge is motivating and we believe the final visuals of the game will make it really unique !

## Lessons learned while switching to Unity

[font=inherit][/font]

Daily routine
Coroutines can be achieved in pure C# but Unity made their use very easy and intuitive. It is akin to starting a new thread without the problems associated with thread safety issues like concurrency, race condition & deadlock. The coroutine also behaves like any other member function. It has access to other functions and member variables.
I will leave the implementation details aside (see links below) but know that it can easily be used to provide easing to an object over time or calculate the next score increment. Another, more advanced, use-case is a very elegant way to implement a state machine. More information here and there and state chartshere

Eventful delegation
Event firing and registering is built into the language. Events & delegates are two sides of the same coin. The delegate provides an equivalent to an array of function pointers and the event is the message being sent. This makes for painless event driven programming and we all know how much a game can be event heavy.
This could make a post topic by itself so I leave you with the documentation and an in depth tutorial/study

Epilogue
There you have it. A non-exhaustive list of tips, tricks and gotcha. Thank you for reading and feel free to ask any question in the comments.

## It all starts with (good) intentions

The beginning
When you start creating a game. When you think you have a great idea to turn into a great game. When that idea has just been tested and when your team thinks it may become that great game you have in mind. There is something you have to do without waiting. You may have already done it during the early design process but the original vision has changed now that you made different rough gameplay tests and added new members to the team. That thing - the title already spoiled it - is defining your intentions.
Whether you call them guidelines, pillars, objectives or mantra, it is the long term vision, the global idea of what you want to do with your project. You should keep it to the essential, as it will serve as a reference to drive the whole production.
Epistory is a keyboard driven game. So that is obviously one of our intentions. But there is another one we have, not so obvious, and which came from its genre. Define the genre was needed to better define the game and communicate about it, and that is exactly why it was a problem.

The Typing Game Problem
Our core feature is the full keyboard control. So I already hear you say that we could just call it a typing game and move on. The problem is that, when I think of a typing game, I have two things in mind - and it's not just me, a quick google search will give you the same results. First, it is most likely a mini-game or an edu-game. In other words, something I do not plan to play for a long time, or to have fun with. Secondly, I will only type words. No deeper gameplay, no choices. And eventually my computer will remind me that I am not a very good typer!
Do not get me wrong, those games are not all bad - some are even really fun for a while. But they are absolutely not comparable to Epistory: the term typing game gives the wrong idea. In fact, it is probably harder to explain what we try to do with Epistory using this comparison than starting from scratch - but now that we are here, I will try anyway.

Playing a game means making choices
What we absolutely want in Epistory is to make it really feel like a game and not just a typing application. For that, we believe that it requires a non-linear experience and meaningful choices. And when I say meaningful choices, I am not talking about a big decision which follows you for the rest of the game - well, not only that - but constant small choices. A few examples in games would be taking the short risky path or the long safer one, exploring the east or the west of the magic forest first, upgrading one skill instead of another... Even positioning your car in the fastest racing game implies constant quick choices. You made them depending on the track, your opponents' position, your current speed, the ideal trajectory, and so on.
To make those choices meaningful, I try to remember that as a Past - Present - Future rule. The player needs to understand that he has a choice (Present). He has to know what it means from past experiences (Past, in this game but not only). And he has to expect something in the future from his action (Future). If it is not a meaningful choice, the player is not an actor but just obeys the game as there is no other possibility of action.
We made that one of our intentions - even if it is important in every game - to make sure it was applied to Epistory's design. I am not going to describe Epistory's gameplay deeper on this article - there are more to come, but we will not fall into the trap of your ordinary typing game.