content top

In Fork Parker we trust

Great news everyone! As some of you might have heard, we signed a publishing deal with the fine folks of Devolver Digital. The intrepid men and women who helped bring into the world games like Hotline Miami, Broforce or Talos Principle are now going to help Okhlos see the light of day (and they will have to deal once again with senseless violence, pixel art and deep philosophical questions).

devolver-logo

What does this mean for the game?  For starters, we know this deal will help us make Okhlos a more polished game, by increasing the QA and localization efforts for instance. Their knowledge and expertise will also make the launch as smooth as possible.  Then, and perhaps most important of all, it will help us focus on making the game instead of spending time talking about the game and promoting it. So, win-win for everybody!

They are not ones to waste time, so what was the first thing they did? Bring Okhlos to PAX Prime!

PAX_Okhlos_04

Needless to say it was a great experience. We had the chance to show Okhlos to many, many people, and also got to meet a few who already knew and loved the game. It was four days of frantic activity but very fruitful. So we are extremely happy that they made room in the Devolver booth for an angry mob of ancient Greeks.

This could be the beginning of a beautiful friendship.

Read More

Sketchfab to Unity using 2D Toolkit

Hey there! This week we are gonna talk about our interactive dioramas, show how the 3D meshes mix with pixel art. Particularly we are going to talk about how we made them.

A little history

It all started at the time we were about to launch our  Greenlight campaign. We wanted to do something cool, and show little bit more of the game, but we knew that demos hurt sales, so we our first approach was to do some sort of teaser, something were you could feel how the 3D / 2D worked together, without showing too much gameplay. Not long we ended up with a few prototypes.

The first prototype was a sandbox-oriented single level. To test it, we reached out to a few people that had never played Okhlos before. Their response was not very good. They felt that the lack of objectives was very confusing. We iterated a bit more on this, but we always landed in similar places. Another problem was that were quite a lot of mechanics to learn and not that much chance to include a tutorial in a pickup-and-play single-level teaser.

ImagenSandbox

ideally, you could choose different units to test different mob configurations

So we discarded this prototype, and the sandbox approach, and we started exploring some more goal-oriented prototypes.

Not long after that we landed in a Colosseum mode, where the player would have to battle wave upon wave of enemies. This turned out to be pretty enjoyable, but we still had the problem of a lack of some kind of tutorial. We figured out that we couldn’t throw the user into the level without some basic concepts. Finally, we discarded this prototype as well. It was fun but far from perfect. In addition to this, we were concerned that some players may get the idea that the whole game was going to be that way, merely fighting endless waves of enemies.

Also, at that time, we ran into a new problem: Chrome dropped support of Unity’s web plug-in. The teaser had always been aimed to be played in a browser, so this was definitely a setback.

The bright side of this was that, due to the nature of the Colosseum mode, we had the chance to focus more on the combat mechanics. We learned more than one thing doing this and we took them to the main game. Yay us.

ImagenColiseo

This is an editor view of the combat area in the second teaser

So, the clock was ticking and we wanted to do at least something before launching our Greenlight campaign. That’s when we had the idea of using Sketchfab.

 

Why Sketchfab?

We really wanted to show how pixel art and 3D worked together, and there were few options to achieve this (making an .exe was almost out of the question. Nobody downloads tech demos).

Sketchfab, unlike Unity, runs with HTML5 (I think), so we had no browser compatibility problems. Also, you don’t need to install any plugins to view a Sketchfab model in your browser, it’s pretty straightforward. Finally, Sketchfab has Unity support, which was also a plus for us, since we could use everything we already had set up in Unity to build these scenes faster (as opposed to building them from scratch in 3DSMax).

Unity + Sketchfab

In order to do be able to upload a model to Sketchfab from Unity you first have to download the lastest unity package from the Asset Store.

Plugin

We installed the package in Okhlos’ main Unity project. We had a few compatibility problems with some things, but for the most part deactivating things did the trick. The main problem we had, was that we couldn’t make a windows standalone build if we had the package content in the directory. This was particularly annoying, but deleting the Sketchfab folder is literally one key down (and a left arrow key, and an enter). So it’s not so bad.

Once we installed the Sketchfab exporter we found out that, even though some things were cool, others were very annoying:

  • You CAN’T see how the model looks in Sketchfab until it is online.
  • Automatically, every model is made public for any user to browse. As an artist, I hate this.
  • There are lots of little problems with some textures and geometries.
  • If a shader you are using is not supported, your model will look like a Kandinsky.
  • The plugin is pretty basic, and there is almost no support on the web about using Unity + Sketchfab.
  • You have to set an awful amount of things in the Sketchfab web editor because the Unity Settings are not imported (billinear/point, alpha channel, etc).

Clearly, this tool is not designed specifically to export any unity object, and we are stretching what you can do with the platform, so is not like all of this is particularly Sketchfab’s fault.

 

So, how do we start?

Doing a Pixel Art Diorama

Starting is easy. You only have to put the pieces together. I suggest creating a prefab, so as not to lose information (Unity is notorious for not being that trustworthy with the scene information). Once you have the prefab, you have to select it in order to export it (alla “Export Selected” in max), but it will only export things in the scene, not in the project folder.

Seleccionado

I really don’t know the amount of polys Sketchfab supports, and because all our buildings are low poly, we didn’t have any problems with the poly count.

Another thing I recommend, is giving the model some context. In our case, because of the Diorama approach, we put a plinth to push the idea a little bit further. Basically you don’t have to do anything like this, you only have to do something pretty, and preferably not very big, the navigation in the Sketchfab viewer is not fantastic. It is not impossible, but I can’t imagine using the tool as a level navigator (but of course you can do something like that!).

Now that you selected the object, you have to export it with the Sketchfab window. There are not many options here.

ExporterSketchfab

Once uploaded, it will appear in your user models.

Subido

Then, you can edit a few things regarding the materials, annotations, camera, and post effects. All of these are easily tweakeable.

I would’ve loved if this was all you needed to know, but because we use 2D toolkit for the sprites, the process is quite more complex.

2Dtoolkit considerations

Exporting geometry is easy. Technically, the sprites in 2D toolkit are simple geometry as well (planes), but we had to do A LOT of experimentation to get it right.

First of all, as I said before, if Sketchfab doesn’t like your shader, it can turn your model into garbage.

monstrosity

Oh god! Kill him! Kill him!

You have to use (while you export at least) a basic shader. Also, keep in mind that every time you create an atlas in 2dtk, it will create a texture and a material (usually called Atlas0, because of reasons). So, if you have multiple atlases, all with different names, but you kept the default name for the materials and textures(Atlas0), Sketchfab will think that they are all the same material, and you will not be able to change them. A workaround for this is naming each material and texture differently. Don’t worry, this brings no trouble at all to the project, you will still be able to update your atlas and it will keep the new names.

atlas0

You should rename all of these.

Once you do this, you will be able to use multiple atlases for the model, using the same atlases that you are currently using in the project. You’ll need to set the alpha channel of each texture, which is a pain. Also, because of the pixel art nature, you’ll have to set all the textures into Nearest (Point in Unity) (they are usually in Billinear in both). This means that it will do no interpolation in the image, and will show every pixel as is.

settingmaterial

Take a look at the transparency configuration. Also, you should switch it to Point (Nearest)

These are mostly the considerations you have to know using 2DToolkit in Sketchfab. However, if you take a close look at the sprites, you’ll notice some imperfections. We couldn’t find a way to fix this, but because they only show in a few sprites we decided to live with them.

errores

Here, Aristotle had a harsh hair cut. And Plato lost his feet.

So there you have it! You can play with the model settings for cool post effects, lights, etc.

 

 

 

Hope you found this info useful!

 

A little disclaimer, I’m not affiliated to Sketchfab in any way (or to Unity, but that’s more obvious). I just liked the tool, and we had a few questions regarding how we made the dioramas.

 

Read More

Crushing the Olympian gods, one language at a time

As Okhlos enters the last stages of development, we have to do more than finishing all the game’s content, we also have to work on some features that may not be as fun or glamorous, but are important nonetheless. And at the top of that list was something we have been postponing for quite a while. Something that many devs have described as “an unfathomable development nightmare which will haunt us until the end of our lives”[citation needed]. Something called localization.

Most people think that localizing a game is just swapping strings in one language to another. And they are right. That’s all there is to is. So we swapped some strings. It was very easy. We won and now everyone is happy. End of post. Or maybe not. Replacing text is just the start. One of the most important ones, yes, but sadly not the only one and not that simple either.

The good news is that, since we are working with Unity, we didn’t have to start from scratch. What we wanted was very simple, something that takes a spreadsheet, parse it, create a dictionary and display texts based on that dictionary. Making this ourselves wouldn’t take much time but getting an existing solution would save us not only a few hours of  development time but a lot of testing too. So we looked into a couple of localization plugins in the asset store, but soon we found out that NGUI, the UI plugin we had been using all along already a neat little localization system in place.

csv

This is how NGUI’s localization rolls.

NGUI system is nice and simple. It has a parser that reads localization keys from a comma separated file, which means you can use a google spreadsheet to store the texts in different languages. Then, it creates a dictionary that can be linked to any NGUI label or be accessed anywhere via code. Just what we needed!

Soon we started working our first officially supported language: Spanish. As you may know (or figure out by reading the horrendous word crimes we commit when Pablo isn’t around to fix them) English is not our native language, Spanish is. This meant that we could translate every text we had into Spanish with ease. We will still have to check a lot of things to make sure it comes across right in every different Spanish-speaking country (which is not an easy task by any means) but  we can do most of the work ourselves.

So texts got translated, spreadsheets were spread, CSVs were parsed and, lo and behold, we now have translated ingame texts!

What kind of sorcery is this !?

 But, as I said before. This was just the start of the ride. A long journey was ahead, with many an obstacle to face. What were those dangers we encountered, you say? Here is a list conveniently summing them up for you!

  • Really Long Words (we are looking at you, German). Another typical localization problem. A button or a text box may have enough room for any of the words the game uses for a given language, but switch to another one and it is spill-out madness. Being aware of this beforehand, we made all buttons and labels in Okhlos scalable, so if a word gets too long we can easily adjusted them.
  • Character Codes. While you are programming, living inside the dictatorial world of the compiler, it is easy to forget that there are more characters than those in the ASCII code, and many languages. Even the extended ASCII, which adds support for most romance languages, can fall short. So it is always best to use Unicode encoding when dealing with strings. And so we did
  • Fonts. So your game supports UTF encoding, with a potential for thousands of characters. But what good is all that if you can only show them in plain, old and boring Arial font? This is something we have yet to deal with. Okhlos uses mainly a pixelated font called Dalek (insert Doctor Who joke here), which is pretty neat and fits the game’s theme very well, but only supports ASCII characters. So we will have to decide whether to find a new pixelated font that has all the characters we need, or modify the current font to add the necessary characters.
  • Procedurally Generated Texts. Texts that are generated on fly can be next to impossible to translate, and we have a couple of them in the game. However, one of them is the name generator, which generates a unique name for each non-hero unit, and since all those names are in ancient Greek(ish) they don’t need to be translated. The other is the useless skill generator, which during the implementation phase was trimmed down to more of a randomizer than a generator, so all we had to do was translate each item individually and voilà.
  • Graphic Texts. We always knew we had to keep them to a minimum but there are still a few instances in which we use texts that are not rendered dynamically. Because of this, we had to make a custom script (but still using the NGUI system) to replace the images when the language changes. We still need to make a different image per language but since we have so few of them is not really an issue.
  • Lip Syncing.  Most voice effects in the game are just gibberish. And most characters don’t have mouths. So we dodged that bullet.
ImageSign

Begone, vile text , we banish thee!

This is by no means the end of it, we will have to deal with a lot more stuff once we add more languages but for the moment we say ciao!

Read More

Log the change! Change the log! Changelog!

[Previously on The Changelog… Version 0.4.4]   (revision 1914)

Welcome back to the one and only  changelog! Since last time we have traveled the world (a little chunk of it, to Brazil and back), won a number of international awards (one) and eaten many empanadas (around 100 of them) but what about the game? What new and exciting stuff have we been adding to Okhlos? Well, the changelog is here to answer that. Here is what happened …

botonChangelog_050

Lots of new music and sfx

Yup, Gordon has been really busy these last couple of months and has come up with some really amazing tracks for Sparta, Ephesos and Atlantis, plus Boss Battle Music! You can check them out on Bandcamp right now!

The Agora

Imagine a place where anything is possible. Where every dream you ever had comes true. A place of infinite wonder. The Agora is not that place, but exercising your imagination is always a good thing. The Agora is the place where all play sessions after the first one will start. Think about the camp at the gates of the castle in Rogue Legacy or the village in Desktop Dungeons. It will be filled with all kind of special things that we will the unveiling soon. How soon? Soon as in right here in the next paragraph.

The Agora v 0.1

A sneak peek at the Agora

Persistent Heroes

Some Heroes are like diamonds, they are a girl’s best friends. No, wait. It wasn’t that. Some heroes are forever. That’s it. Some heroes may fall but they never truly die, they are the persistent heroes (cooler name pending). They are a new kind of heroes that when once you buy them will always spawn at the Agora, so they can be part of your mob from the very start of every sessions. Think about the blue chests in Lufia’s Ancient Cave. Or think about kittens. It’s always nice to think about kittens.

Philosopher Selection

Plato or Aristotle? Heraclitus or Parmenides? You can settle the millennia-long debate once and for all with our brand new Philosopher Selection Screen. Find new philosopher as you play, and then they will be available to be selected when you start a new session at the Agora!

Building Destruction FX

Taking the destruction of  invaluable buildings to a whole new level. Roque thinks the effects can still be improved but they are awesome as they are nonetheless!

The poor building stood no chance whatsoever

Kaboom!

The Encyclopaedia

The lives of the most eminent heroes, gods and mythological beasts all summed up in one convenient place. As of this version we now have the all mighty encyclopaedia in place! Find monsters, buy heroes, unlock their entries. Gotta catch’em all!

Continue

Because now that we are adding more and more levels, it comes kind of handy.

Mouse is here

I was going to add a nifty gif showing how we now have a custom cursor that fades in when you need it and fades out when you don’t, just like Spelunky does. But gifcam hates me so I will just leave that to your imagination (again).

Extreme Make Over: Ephesos and Atlantis

This could very well be an update on its own, so I won’t spoil much but I’ll tell you they just keep looking better and better.

Boss Battles v 2.0

Boss battles have been an issue for some time. They lacked something… More enemies! We’ve added a small system that spawns enemies throughout the battle based on certain conditions. This not only makes the combat more epic, but it also adds a new level of dept,h as you now have to divide your attention and your resources between the boss and the stream of enemies. It is something that still requires some playtesting and fine tunning but it is already proving to be a nice improvement. Plus, it also solves another problem we had: endless battles. Until now you could hide from the gods and keep on playing with a very small mob for ages, but no more. If you do that now, the horde will eat you alive in no time.

LOTS OF ENEMIES!!!!1!

It won’t be as chaotic as this but, yes, lots of enemies!

Buffing Up the Morale Stat

As you may remember from updates like A Matter of Morale!

Turning the Heroes up to 11

Once again, this is still a work in progress and we may write an update on the subject on the near future so I won’t say much, but let me tell you that some things were done and elevens were reached.

The Sprite Batcher (and other optimization)

Premature optimization is the road to perdition but sometimes you can’t help it (or it is not premature anymore), so we optimized a few things. Among them, the sprite batcher may have been the most important one. Each time you render a material in Unity it issues a draw call to the graphics API. Texture atlases and static batches are the most common way to deal with this, and that is what we have been doing from day one. However, due to the way ingame sprites are handled in Okhlos we couldn’t use the default sprite batcher. We had to take matters into our own hands and we finally did, customizing the hell out of that sprite batcher to suit all of our kinky needs. The result? Less draw calls! So sexy!

More Configuration Settings

The config window is slowly getting filled up. We’ve added a couple of graphic settings, and handful of game settings and the ubiquitous sound settings. There are many more to come but it is already starting to look like a proper config window.

And bug fixes!

Fix one bug, add two more!

 

And thus we reached version  0.5.0. It has been long way since the birth of Okhlos. 2,317 revisions. 456 files. 41,510 lines of code. Countless Monty Python jokes.  But here we are, with lots of stuff still to come but getting closer and closer to beta.

 

But where are the new cities? The new enemies? The new heroes? The new gods?

Well, some of them are already implemented, some others are in the works, but will soon read more about them right here at your favorite dev blog. So stay tuned for future updates!

 

 

 

Read More

Okhlos won best gameplay at Brazil Independent Games Festival

July 03, 2015 – Sao Paulo, Brazil– Coffee Powered Machine is thrilled to announce that its game, Okhlos, was chosen from among 700 hundred competitors from all over the world as the winner of the Best Gameplay Award, at the Brazil Independent Games Festival.

 

Brazil Independent Games Festival (BIG Festival) is the largest one of its kind in Latin America and the third largest in the world, with almost 700 hundred submissions this year from countries from all around the world. Of the games submitted, 50 were chosen to be showcased at the festival. Last night, during a ceremony in Sao Paulo, 9 awards were presented, and out of the 5 finalists in the Best Gameplay Category, Okhlos arose as the winner.

 

The festival’s official site, which should be updated with the winner’s list soon: http://www.bigfestival.com.br/

 

2015-07-03 11.33.18

Melhor means Best in Portuguese!

Earlier this year Okhlos was chosen to be part of the Leftfield Collection and showcased at the EGX Rezzed in London, so this would be the second time the game receives an international honor.

We promise to do a more comprehensive post about this, and our experience in Saõ Paulo in the future, but right now, we wanted to share this awesome news with you guys!

 

Read More

Brazil, here we go!

As some of you may have heard, this week  in  São Paulo, Brazil, the largest indie gaming event of all of South America is taking place:  Brazil Independent Games Festival. This is exciting news for any indie game developer in the region, but we are particularly excited because out of more than almost 700 entries, Okhlos was selected as one of the finalist, and is running for the Best Gameplay category!

 

a1

 

In this category, we are competing against these fine videogames:

 

A Good Snowman Is Hard To Build by Alan Hazelden & Benjamin Davis

 

Klang by Tinimations

 

Big Action Mega Fight! by Double Stallion Games

 

Circa Infinity by Kenny Sun

 

Most of the games haven’t been released yet (just like Okhlos) so we haven’t had the chance to play them yet. We are looking forward to give them a go at the festival. However, based on the trailers alone, you can already say it will be a very tight match!

Once again, thanks to the people of Big Festival for choosing Okhlos as a finalist! Wish us luck!

Brazil, here we go!

 

Read More
content top