Jump to content
  • Advertisement
  • entries
    25
  • comments
    53
  • views
    34563

About this blog

Welcome to our dev's journal :)

Entries in this blog

 

Nanotale, our new typing game is now in development

NanotaleTeaser_with_sound.mp4 Something is wrong with the heart of magic. Play a young archivist venturing out into a dying world, cataloging its mysteries and its wonders to unearth the truth. Nanotale is the new adventure from the Typing Chronicles franchise and the spiritual successor to the acclaimed Epistory. We are proud to finally be able to announce the development of our new typing game, Nanotale - Typing Chronicles, the spiritual successor to 2016’s acclaimed indie title Epistory - Typing Chronicles. 

Something is wrong with the heart of magic. Play a young archivist venturing out into a dying world, cataloging its mysteries and its wonders to unearth the truth.

Nanotale - Typing Chronicles is an atmospheric typing adventure RPG set in a colorful vibrant world that blooms to life under the words of Greg Buchanan [www.gregbuchanan.co.uk]. Developed by Fishing Cactus Games with the same core team as Epistory - Typing Chronicles, we can’t wait to share the adventure! Wishlist the game NOW   Weekly Updates Today is the opening of our Steam page, and with it, the beginning of us being able to talk about the project. To make sure that communication between players and devs flows perfectly, we will post weekly updates about the game on the following channels:

Nanotale Steampage
Twitter
Facebook [www.facebook.com]
Discord [discord.gg] Your voice is important Many of player participated in our survey last year about those features they loved in Epistory and how they would like to see these features in our next title.
That survey has been used as a solid base when brainstorming about the Nanotale - Typing Chronicles. It helped us to capture the DNA, the essence of Epistory, to create a new game that we hope will please the community. Sometimes decisions have to be taken. Some are harder than others, but we will count on you to continue to enlighten us about what you think of Nanotale - Typing Chronicles. We want you to take part in this incredible new typing adventure with us!

Leave us your thoughts in a comment and don’t hesitate to spread the news all around you! 

Thank you!

FishingCactus

FishingCactus

 

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 
Twitter
Facebook 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.


FishingCactus

FishingCactus

 

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? Thanks for reading. Don't hesitate to talk with us on Discord, Twitter , and Facebook.        

FishingCactus

FishingCactus

 

Epistory Retrospective - Looking back over the development of Epistory

[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]We tried several art styles for the collectible images. First try, not in the final game.[/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]There was a girl[/font] [font=arial] When the prototyping phase ended, our next goal was to find a new take on the typing game genre, mostly focused on arcade gameplay for short game sessions. We were aiming for 18 short dungeons instead of the 8 large dungeons and overworld we currently have.[/font] [font=arial] Being a relatively small studio, we had to settle on the amount of money available for this adventure. At the beginning, our budget was around EUR125k. We'll explain later why and how but by the end, we were talking about EUR300k. That's 3 and a half people for a year and a half.[/font]

[font=arial] [/font]
[font=arial] Second attempt at an art style. Also not in the final game.[/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] We have a paper fox in the studio![/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] Final recommended movement keys[/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] Here's the third style for the images - the one that made it into the final game[/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] One of our marketing images.[/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] Anniversary T-shirt.[/font]

FishingCactus

FishingCactus

 

Major Update

[font=tahoma]After weeks of hard work, we present to you the new and shinier version of Epistory. You spoke and we listened. We understand it would have been better for most of you to receive the update in chunks over the weeks but given the amount of changes it was a lot easier for us to handle one big transition to the new version instead of several small incremental versions. We even had to stop planning for a workshop beta.
Without further ado, here's the changelist: Added/Improved[/font]
[font=tahoma]Mod support.[/font]
[font=tahoma]Profiles (multiple saves) support.[/font]
[font=tahoma]Steam Cloud support.[/font]
[font=tahoma]Distinction between gameplay and story language.[/font]
[font=tahoma]Splash screen only when the game launches.[/font]
[font=tahoma]Removed mouse cursor during gameplay.[/font]
[font=tahoma]Improved arena wave randomness.[/font]
[font=tahoma]Single letter words always get typed, even in the middle of another word.[/font]
[font=tahoma]Several small improvements for the map.[/font]
[font=tahoma](slightly) Improved performance, (massively) reduced spikes.[/font]
[font=tahoma]V-Sync option.[/font]
[font=tahoma]Custom mouse cursor.[/font]

[font=tahoma]Fixed[/font]
[font=tahoma]Several sound errors. Please let us know if you still encounter any problems.[/font]
[font=tahoma]Game not loading on Linux when the OS is not set to English locale.[/font]
[font=tahoma]Several small bugs for the map.[/font]
[font=tahoma]Several small errors in the story texts.[/font]
[font=tahoma]Several keyboard specific patterns.[/font]
[font=tahoma]Music/effects volume preference not always respected.[/font]
[font=tahoma]Entering the "Ice Mausoleum" door without triggering the scene change.[/font]

[font=tahoma]And of course several small improvements/fixes across the board that would be too long to list. As always, we welcome your feedback and bug reports.[/font]


FishingCactus

FishingCactus

 

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] three. Three fonts that needed to match together, follow constraints and have their own identity. [/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]To give an idea or a hint of its purpose [/color] [color=#333333] ...Simple. [/color] [color=#333333] Typing Font[/color]
[color=#333333]The first font we decided to work on was the typable one: the font that will lead players through the game and on which the gameplay relies. The difficulty was to have a font readable on which we could add different kinds of feedback: such as the kind of magic needed, the right magic selected and so on. [/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]Instead, it became our reference for our future selections. [/color]
[color=#333333] Serifs turned out to be a bad idea. The problem we encountered with those fonts was that they were not easy to read at all. I'll spare you from all the steps we passed through because it will be a long and annoying description of research. Instead, I'd prefer to simply explain why we choose "YanoneKaffesatz". [/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]Large enough for adding FX (but not too much) [/color] [color=#333333] After that, our decision came naturally. We forget it too often, but sometimes "feeling it" is the most important way. [/color] [color=#333333] Feeling the Font[/color]
[color=#333333]When your brain drives you mad with all its "what if", it's time to turn it off and focus on what the font makes you feel. [/color] [color=#333333] The "YanoneKaffesatz" was, for me, the perfect font for many reasons. The regularity of the letters suits to a "book", to a story, and the roundness feels "womanly". Eech letter is readable, serene... perfect for when half-dozen monsters come to you. [/color]
[color=#333333] For the main story font, which appears drawn on the world, our research didn't last as long as for the first font. We noticed quickly that "Kingthings Petrock" would suit to our needs. Like "Yanone", it was large enough to be readable in the bright grassland as well as in the dark cave, not too fanciful, but it also has the style of an illuminated manuscript, suits the story we wanted to tell. [/color]
[color=#333333] The Secret Font[/color]
[color=#333333]Our last font one keeps a secret... it's a whisper, it's like it isn't really there and as soon as you see it, it's already gone... [/color] [color=#333333] I chose this one only by instinct. I wanted something womanly, something personal, handwritten but not conventional. It had to be attractive... and disturbing as well. When I found "luna" I knew right away that it was the font I was looking for. [/color]
[color=#333333] With Unity, I added some effects to this jarring, mysterious text: a little cloudiness that makes it less material and increases the impression of strangeness. The reasons why I chose it are pretty much spoilers so I won't expand on that subject. [/color] [color=#333333] I spent weeks - maybe months - on these choices, but I've learned a lot. Principally to trust myself. I've done my best on it and sold a part of my soul for the game. [/color] [color=#333333] In the end I hope that you'll enjoy the experience - because that's what really matters. [/color]

FishingCactus

FishingCactus

 

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.

FishingCactus

FishingCactus

 

Finding the Right Words

[font=arial] The challenge of localizing of a typing game[/font]
[font=arial]In Epistory, typing is the sole interaction the player has with the game. You get to type a lot of words, in fun, varied ways, so we end up with a lot of text content. We don't just use random words, but words that fits with several constraints (of theme and gameplay). That makes the translation work crucial for the experience of the non-english speaking players. [/font]
[font=arial]So let's take a look at the main challenges we had with localizing our text-based content and the solutions we came up with. [/font] [font=arial] The Story's Script[/font]
[font=arial]First of all, the easiest and less interesting one, the story's script. Well, the way the story is made is a very interesting topic (and our writer wrote an article about it). But its localization is just a regular translation. [/font]
[font=arial]In the game, script text is displayed as sentences scattered across in the game world, that you can read as you explore. As a result, the script looks like a list of unrelated sentences. The challenge was to give our translators a sense of how those sentences were linked together to form a whole story. We wrote comments about the context of each sentence and it worked just fine. It was particularly useful to give instructions on what was the most important aspect of the text to translate: was it the literal sense, an underlying meaning, or the style (like when there is an alliteration)? [/font] [font=arial] Words to Type[/font]
[font=arial]Outside of the story script, our other use of text is to display prompt words. We show words alongside "interactive elements" to trigger some kind of interaction - like planting a flower or destroying a rock. Our intention was to give meaning to what you type while avoiding repetition. But we couldn't possibly manually assign a specific word to each element. We also needed to easily control the complexity of the words used, to keep the difficulty balanced. And finally, we had to deal with languages having different word lengths and special characters. [/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] On the other hand, that forced us to go through translation process several times as we iterated on the script and level design, which is quite time consuming. The challenge here was to allow an easy integration on our iterative versions. [/font]
[font=arial]After several adaptations, we ended up with a configuration that works (surprisingly) well: the script is in an Excel document that directly exports an XML file, while the dictionaries are in a Google spreadsheet with a homemade script that exports a JSON file. [/font]
[font=arial]The key was to keep a limited number of languages during early access (3 more languages will come at release). But given the amount of work required to do the translation and keep it up to date, I would not recommend to do that for games with heavy text content. It is preferable to stick to English, at least until the source content is sure not to change too much. [/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]Our first approach was to work closely with professional translators in order to have a good understanding of each language. We asked a lot of questions about what special characters are used, how frequently they occur, what keyboard layouts are popular, and so on. [/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]The other side of the problem was to display those words with a unique font. We have several fonts depending on where text is used in the game, but we did not want to change the font depending on the language. We choose the simplest solution: which was to meticulously choose the fonts we wanted and add any special characters ourselves. We had to buy a specialised software licence, but finding a good font with all the characters required would have been an almost impossible struggle. [/font] [font=arial] Editable by Players[/font]
[font=arial]Finally, I want to add something that is not a challenge but an opportunity. We are leveraging our heavily text-based content as an advantage: it's easy for anyone to edit and create something by just changing the dictionaries. [/font]
[font=arial]That's why we will find a way to let players edit and share their own dictionaries to be used in the game. We've already met a teacher who wanted to use Epistory to teach foreign languages to his students. So we hope to see a lot of inspired user-created dictionaries, from the funniest jokes to the most serious creations. [/font]
[font=arial]If you want to have fun with word as much as we do, Epistory is currently available in early access and will be released the 30th of March 2016 in 8 beautiful languages. [/font]

FishingCactus

FishingCactus

 

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]

FishingCactus

FishingCactus

 

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.

[youtube] [/youtube]
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

FishingCactus

FishingCactus

 

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

FishingCactus

FishingCactus

 

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.
Added: Linux version
Added: Mac version
Added: Spanish version
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.
Thanks for reading!

FishingCactus

FishingCactus

 

Opening Lines: Finding a Voice for Epistory

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.


Epistory Early Access - NOW on STEAM


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...

FishingCactus

FishingCactus

 

Breaking the cycle

[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]
[font=inherit]Here's how we modified our ground shader in Shader Forge:[/font]

world position.
a parameter which allow us to tweak how much a change in world position affects the overall look.
division.
frac. It takes only the fractional part of the input. Effectively producing a value from 0 to 1, based on the world position.
append allows us to create a vector 2 (UV in our case).
normal map sampling.
[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]

FishingCactus

FishingCactus

 

Automating Action & Reaction

[font=inherit]Automating Action & Reaction[/font]
A tale of candy distribution.

[font=arial] Introduction[/font]
[font=inherit]Most games can be reduced to a series of actions and reactions. Today I would like to share with you a way to facilitate iteration and expansion of these interactions. It will sound obvious to a lot of people but I would have loved to see this kind of example 6 months ago. When I was not yet used to component based mechanics.[/font]
[font=inherit]It all started with a simple request a few months ago, we had just designed & implemented the scoring system and we needed items in the game world to be able to give points when activated. Easy, I wrote a small script which would be attached to objects that had to add points when activated. Controlled by our item's base class, it would be called automatically.[/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=inherit]It's not standard notation but you can see the rewards and the items have a base class, and only these base classes interact with each other. The same kind of effect could be achieved with interfaces but I prefer to have a default implementation.[/font]
[font=inherit]The true power of this structure lies in the modularity. Every trigger or actionable item in the game works with any reward and you can place any number of reward in a game object. The most basic action/reaction you can do is simply "collider - trigger - reward". The player walks in the scene and something happens (tutorial message, cinematic, ...).The possibilities are exponential and a new reward behavior is very easy to add.[/font]


[font=inherit]Polish & additional features[/font]
[font=inherit]Over time, features were added. Like the possibility to set a delay between the action and the reward. Camera travelling firing rewards at event points... What started as a joke -"reward" as in skinner boxes- is becoming a running gag: we'll call this one "reward_kill_player".[/font]
[font=inherit]I recently did the same kind of structure for visual effects. A few key points (creation, destruction, hit, ...) are exposed via a base class. You just have to derive from it and you get all the hooks that an artist would need to handle animations or particle effects.[/font]


[font=inherit]Conclusion[/font]
[font=inherit]The system is currently powerful enough to allow our designer to create our whole in-game introduction & tutorial with only the reward system. Looking back my only regret is that this system was not put in place earlier to have more of the game relying on it. Also, calling it "reward" when it's in fact a "reaction" was a bit shortsighted.[/font]
[font=inherit]I can share some sample code if some of you are interested. I leave you with one of the more complex interaction that we can produce.[/font]



[font=arial]P.S.: As a very tangible reward after a long wait between news here's a few free gifs. Both features were added this week: [/font]
[font=arial]- One of the first iteration. Nothing special... [/font]




[font=arial]- One of the last iteration. Circular pattern, grows from the middle and not all of them at once. [/font]




[font=arial]- Black mist that will block your path (first iteration, polish will come later)[/font]



FishingCactus

FishingCactus

 

Fluffy Friday #5: Concepts Art and wallpapers to download!

[font='lucida sans unicode']Bite sized news for small stuff. Today: Concepts Art and wallpapers to download!

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

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:



You can download the wallpapers here.

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

Have a great week.[/font]

FishingCactus

FishingCactus

 

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.

FishingCactus

FishingCactus

 

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)][color=rgb(51,51,51)][color=rgb(51,51,51)]The result [/color] [/color][/color][/font]

[font=verdana][color=rgb(51,51,51)] [color=rgb(51,51,51)][color=rgb(51,51,51)] [/color] [/color] [/color][/font]
[font=verdana][color=rgb(51,51,51)][color=rgb(51,51,51)][color=rgb(51,51,51)]Here you can see the result in game. Slowed down on purpose to make sure it's seeable in a gif. The effect is very subtle but you can see that the head will always point to the right direction (almost instantly) and the body follows soon after.
The next time you are frustrated with a particular task or simply bored out of your mind after a day of repetitive tweaks. Do yourself a favor and just play with the tools on your workbench. Who knows what kind of gem you'll unearth.[/color][/color][/color][/font]

FishingCactus

FishingCactus

 

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.

We are on Facebook
We are also on Twitter

FishingCactus

FishingCactus

 

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

FishingCactus

FishingCactus

 

Fluffy Friday #1: Tile appearing

[color=rgb(51,51,51)][font='Trebuchet MS'] More on our IndieDB page

Bite 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'][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'] [color=rgb(51,51,51)][font='Trebuchet MS'][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'][color=rgb(51,51,51)][font='Trebuchet MS'][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'][color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS'][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'] [color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS'][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'][color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS'][color=rgb(51,51,51)][font='Trebuchet MS']There you have it. Of course the final version could differ slightly from this and the gif doesn't show the best framerate and color. I hope that this is already enjoyable and that you will want to see more posts like this.

More on our IndieDB page [/font][/color] [/font][/color] [/font][/color] [/font][/color] [/font][/color]

FishingCactus

FishingCactus

 

Handmade vs randomized level design in Epistory

Handmade vs randomized level design in Epistory
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.

FishingCactus

FishingCactus

 

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.

"Paper" please
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 !

FishingCactus

FishingCactus

 

Lessons learned while switching to Unity

[font=inherit][/font]

Paradigm Shift
When we started working on Epistory, we had to choose whether to use our proprietary engine or not. For reasons that go beyond the scope of this post we decided to go with Unity. While the prospect of working with a tool as streamlined as Unity was stimulating, after five years working in a workflow dominated by C++ my C# habits were rusty if not inexistent.
After some time with C# I remembered and saw some of the neat tricks you can do with this language. I also received and read a few tips for Unity itself that can do wonders to keep performance high and coding time low. I will keep this as code free as possible and direct you to the relevant documentation -if necessary- to get all the juicy details that would needlessly blow up the length of this post.

Stay organized
While Unity is very flexible and lets you do basically anything, it can be a blessing as well as a curse. If you don't force yourself to organize the project and the code from the start, it will become messy really fast. One performance hit that is negligible at the beginning but can grow into a big problem later down the road is the caching of your GetComponent(). Basically each time you ask for a specific component in a GameObject, Unity will go through its component list. In most cases you can safely cache the result and keep a reference. If you start adding components at runtime you'll have to decide whether to cache it or not.

Leave no warnings behind
Even though most programmers will treat warning as error -or at least minimize the amount of warnings- it bears repeating. The more serious warnings are almost always a bug waiting to be triggered. That is even more important in C# because of some leeway given to the developer. For example: you can hide a virtual function if you don't explicitly add the override keyword to the sub-class function declaration. And a warning will remind you to make your intentions explicit. The difference between overriding and hiding is that the overridden function will call the runtime type and the hidden function will call the compile-time type.

False friend
The switch statement is a good way to keep the code readable. But in this case its behavior is slightly different in C#. You cannot fall through to the next case section. You have to place a break/return/goto... However, there is a walkaround. You can use something like "goto case 1;" to jump to another case. More details here

Missing Link
LINQ can be a powerful tool to interface a program seamlessly with a database. Even though its syntax can be off putting, you should at least try it before you leave it. You can use SQL-like statements to query an xml file, for example. You can also use it to perform operations on IEnumerable (a.k.a. Arrays and Array-like) classes. All you can eat buffet here


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.

FishingCactus

FishingCactus

 

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.



A keyboard controlled adventure
So Epistory is an exploration / adventure game, and we like to call it like that. It gives the player the opportunity to explore an imaginary world, use magical powers to interact and fight enemies, and upgrade them as he wants.
You should see the typing aspect as an opportunity, not a constraint. Because that is what we did: using a keyboard as the unique game controller to create new gameplay experiences. Not only to type words, and not only to earn points. We like to say that you will type the story - but that is for another article.
Thanks for reading. Don't hesitate to support us on social networks.




We are on Facebook
We are also on Twitter

Website coming soon

FishingCactus

FishingCactus

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!