Posts Tagged ‘development’

Epistory: Major Update

Friday, June 10th, 2016

After weeks of hard work, we present to you the new and shinier version of Epistory with Mod & Profiles (multiple saves) support and more... 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.

As always, we welcome your feedback and bug reports. 

How extra budget can increase your visual quality… and put you into troubles!

Monday, March 7th, 2016

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

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 :

  • 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

basic asset epistory papercraft origami

Despite our small budget, all those assets put together created a simple but pretty cool look :

epistory papercraft origami

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…

Change of scope

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.

As the deadlines were pushed to 2016, the art team jumped at the chance to put more visual quality into the game!

New quality standards

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:

  • 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)

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 :

advanced asset epistory papercraft origami

advanced asset epistory papercraft origami

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,…

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!

icemountain epistory papercraft origami

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…

Assets wars

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

There was too much difference between the old “flat” assets and the new “detailed” ones :

versus epistory papercraft origami

Unfortunately the budget was not so big that we could afford redoing all the former game assets to match the final style!

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:

1- At the beginning, as the world unfolds for the first time, you will see the “basic” objects in the “nature” theme

evolution 01 epistory papercraft origami

2- Next, in the first dungeon you will be able to spot some prehistoric assets, made of archaic papercraft assets

evolution 02 epistory papercraft origami

3- As you continue your journey through human evolution, papercraft techniques evolves to show ancient civilizations

evolution 03 epistory papercraft origami

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!

evolution 04 epistory papercraft origami

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.

The combat, exploration and teleporter tiles redone from scratch:

reworked assets epistory papercraft origami

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!

The Story Continues – Epistory Chapter Two now available

Tuesday, November 24th, 2015

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 to restore 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! 

Trick or Treat! Epistory Halloween Update

Saturday, October 31st, 2015

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

screenshot_halloween_mac_linux+455px

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.

Happy Halloween to all!

group_light

Opening Lines – Finding a Voice for Epistory

Thursday, October 22nd, 2015

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.

Posted Image

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

Posted Image

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.

Posted Image

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… 

Breaking the cycle

Monday, October 12th, 2015

The Trouble With Tiles

All of Epistory’s levels start as an isometric RPG in Tiled (as explained in this prior article). 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 duplicate tile instead of a random effect.

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.

tile old

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.

tile new

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.

Start at the Start

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.

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.

tile before

Lean Towards the Abnormal

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.

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.

Here’s how we modified our ground shader in Shader Forge:

2015 09 23 15 34 27

  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. normal blending. You cannot blend normals the same way you blend colors so we use a custom formula.

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.

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.

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.

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:

2015 09 23 15 21 27

Perfect Imperfections

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.

Epistory: Automating Action & Reaction

Monday, September 7th, 2015

A tale of candy distribution.

Introduction

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.

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.

The buildup

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.

2015 09 02 17 25 18

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.

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.

Polish & additional features

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

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.

Conclusion

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.

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.

main schema

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:

- One of the first iteration. Nothing special…

flower power 2

 

- One of the last iteration. Circular pattern, grows from the middle and not all of them at once.

flower power 3

 

- Black mist that will block your path (first iteration, polish will come later)

ink fog

Epistory @ Gamescom 2015

Tuesday, August 4th, 2015

Hi Folks! 

After months of preparation we’re ready to unleash our demo of Epistory and let you play it at Gamescom 2015.

Come and join our adventures at Hall 10.1 Stand E040c. 

 

social_announcement

 

IMG_3147

Visit our stand and get the official bookmark of the game

 

IMG_3148

This is what the wall of our booth will look like

 

IMG_3153

We are ready for Gamescom!

Follow us on Twitter and Facebook to get day to day news about our team @ Gamescom.

@FishingCactus
@epistorygame

https://www.facebook.com/fishingcactus

https://www.facebook.com/epistorygame

Epistory: Fluffy Friday #3 – Burning Brambles

Tuesday, June 23rd, 2015

More on IndieDB

Bite sized news for small stuff. Today: Burning brambles.

fluffy_3_header

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

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!

fluffy 3 burning brambles 2 

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.

fluffy 3 burning brambles 3

fluffy 3 burning brambles 1 

Imagine you’re hanging around with your fox and brambles block the road: burn them! There are monsters on your way out from 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 week.

Epistory: Fun with bones in Unity

Thursday, June 11th, 2015

More on IndieDB

Discovery of what unity can do in terms of jiggly bones and overriding animations.

The inception

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.

jiggly bones 350px

 

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?

epistory fox head move

 

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

First, you have to get a reference to your head bone:

private void Awake()
{
  HeadBone = /*find the headbone in the hierarchy*/.transform;
}

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.

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;
}

You can do all sorts of crazy stuff with this.

The result

fox turn head subtle 350px

 

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.

}