content top

Screenshotmania – Shader/Camera Effects Testing Edition

We are working hard to get a prototype ready before the IGF deadline. This is taking up most of our time, leaving us with little time to write new amazing and exciting updates. But, at the same time, we don’t want to stop posting updates. It’s fun, it keeps us motivated and getting some feedback is an important part of the development cycle. So we decided to resort to this: posting a bunch of pseudo random screenshots, along with some even more pseudo random comments.

This particular set of pseudo random screenshots are the result of some tests I’ve been carrying out, using different shaders, and also some  good old fashioned fooling around with Unity’s camera effects. Most of the stuff you see here will not be in the game’s final version. They are tests, weird stuff. So posting them here is also a way to put them to rest. Of saying goodbye to them. Farewell, random test!

So, without further ado, here they are. Pseudo random screenshots.

 

Smoke in the Stone

(Click on the picture to enlarge it!)

Basically playing around with fog here. The grey tint gives it a smokish look. Perhaps we can use something like this if a whole city or area is burning. Or maybe the ancient Greeks had smog too.

 

Ye Olde Delphi, or the unavoidable need to try a sepia filter

(Click on the picture to enlarge it!)

It just had to be done.

Extremely Loud and Incredibly Close

(Click on the picture to enlarge it!)

Okay, maybe not so loud since it is a screenshot with no sound whatsoever, but it is indeed a closer look at some of our favorite Greek mobsters. Plus, check out the pecs on that warrior. Someone has been working out!

 

The Snake Mode

(Click on the picture to enlarge it!)

Or the mob’s conga line if you prefer.

 

Fisheye Mob 

(Click on the picture to enlarge it!)

Testing some more camera effects. Here another of the classic ones. I don’t think this will make it to the final cut, though.

 

A Lighting Test

(Click on the picture to enlarge it!)

Just a single philosopher, in the middle of nowhere. Plus Unity’s editor thingy up there in the corner (that’s the technical term for it, don’t let anyone fool you).

 

The Shadow Mob

(Click on the picture to enlarge it!)

Booo! They are dark and evil… You know, I kind of like how they look. I am thinking we could keep one of these guys as a hidden character and name him Niatsabes Euqor…

 

Under Medusa’s Shadow

(Click on the picture to enlarge it!)

Testing an overlay effect with a frame from Medusa’s death animation.

Medusa’s Mist

(Click on the picture to enlarge it!)

More crazy medusa-induced effects.

 

Conga Line, Part II: Someone shouts “B”

(Click on the picture to enlarge it!)

And as a bonus a merry group of Carmenmirandesque medusas of different sizes try to join the party.

 

The Brightest Day 

(Click on the picture to enlarge it!)

And still quite some time until someone invents the sunglasses.

 

A Poor Old Man in the Snow

(Click on the picture to enlarge it!)

Life can be tough sometimes. This was a test using a snow shader  (something that would have allowed to create a snow level without changing a whole lot of textures) but it didn’t work out very well. Okhlo’s style (low poly, sprites, pixel art) doesn’t lend itself very well to something like this.

 

Dusk At Delphi 

(Click on the picture to enlarge it!)

Both Roque and I agree that this was the best of the lot. It was the result of testing different shaders and playing around a little bit with the scene’s lights. If everything works out the way we plan, be prepared for more dynamically lightning in Okhlos!

Read More

Delphi playthrough, before and after

Like last week, typing takes time. So, what better way to show you the week’s progress than directly showing it?

I’ll explain the video, otherwise this would be too much laziness.

 

In the first part, you will see original level. Sebastian didn’t implement any specific layout. Just threw some elements to test different enemy behaviours. You will see that it is short, and that you can complete it in like four minutes.

 

The second part of the video, shows how the actual layout of the city will be. And some unfinished things too.
Also, all the enemies are still placeholders.

 

So, enjoy the video and let us know what you think!

Read More

Units for your mob!

This week, we will review what kind of units will join your angry mob! In character sheet form!

 

Read More

A sprite on my soup

I’ll be incredibly frank today. I hate writing in English. I’m a lot more comfortable now than before I started the dev blog, having the obligation of writing each week an update helps a lot, but each update that I write, goes trough Sebastian, for some quick spell check, and to make sure that the sentences are understandable. This same text is then reproduced in our page, our IndieDB page, and our TIG post. If you know other cool sites to post our dev blog, let me know!

This whole process isn’t helping us reach our new goal, which is the IGF. So I thought that this week, which was quite busy, I could post only some images, to show how the integration between the mesh and pixel art sprites is coming.

 

I had a few questions about the technique I use. I really want to give a full detailed description of the process, but unfortunately, it takes a lot of time. So, maybe in a few weeks, I can post something about this.

 

Just to give you a sneak peek of the explanation, the technique is:

-Make the structure in your favorite 3d software.

-Add some sprites in Unity.

-Enjoy your pixels

 

(Click in the picture to enlarge it!)

The text between the pictures has no importance whatsoever.

(Click in the picture to enlarge it!)

This text is added only to make the post look cool.

(Click in the picture to enlarge it!)

Putting two images together and no text in between is wrong! “(Click in the picture to enlarge it!)” Doesn’t count

(Click in the picture to enlarge it!)

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt.

(Click in the picture to enlarge it!)

Lorem Ipsum was one of the possible names for Okhlos.

(Click in the picture to enlarge it!)

I know you are reading these texts. Please Stop. Just focus on the nice pictures

(Click in the picture to enlarge it!)

This text has been read 18 times.

(Click in the picture to enlarge it!)

Every time you read this text, A kitty dies somewhere

(Click in the picture to enlarge it!)

Thankfully, this is the last filler text I have to do. I ran out of ideas.

(Click in the picture to enlarge it!)

Well, that’s pretty much meshes + sprites.  Thanks for not reading the in-between texts!

 

 

Read More

Terrains, everywhere!

I’ve been, for the last few weeks, trying to decide how we will be doing the environments of Okhlos.

This process was not pleasant, to say the least. It would normally be a cool process, prototyping, trying to decide aesthetics, profiling, etc. But with the IGF around the corner, every method I discarded, made me feel more pressured to have something definitive, and less time I had to have something nice to show.

We are planning on having two “playable” levels for the IGF, where you can have an idea of what will be the overall aesthetic, plus the core mechanic.

 

It all started with the buildings (I will do an update on how I managed to get the pixel art in the textures, soon).

We had  some nice buildings. The main problem was that they were too historically accurate. They were damaged, filled with imperfections, and mainly made of stone. The rock texture gave the impression of something old and neglected.

Later, Sebastian pointed out that they were no fit for Delphi, as Apollo represents order, thus Delphi should have been spotless, and showing that everything is in order. I thought that changing the textures should suffice, unfortunately, it required some uv mapping changes, also removing the sprites objects in order to make everything more marble-like, and some geometry changes were in order.

That took me some time, but the result helped the general idea of the level.

Previous house model vs new one. We may utilize the old one for some other levels.

Later, when we had what would be the main buildings of the levels (we could add more variation later) it was time to figure out how to put these buildings into this:

 

First try: Tilemaps

We use 2dToolkit. It’s extremely cool, fast, intuitive, yadda yadda yadda. We use it mainly for the characters and ornaments It has some tilemap functionality, but it’s not its core.

First of all, setting the map was not very intuitive, we had to upgrade the plugin, which was not that painful, but it took some time, in order to be able to have the new features specially for the tilemap editor. Finally, we figured out how to set a scale congruent with our current one.

Later, we found out that the meshes didn’t have normals, so we must generated them by code. (without normals, we wouldn’t have shadows!)

And finally, we had the problem of Y (in Unity, Z in Max). Greece was full of mounts, mountains, cliffs, and working in 2d for a map that would be 3d was not practical at all.

We could have discarded the Y, and made all the levels flat, but there was one more main problem, and that was the materials we use for the bump mapping. There was no easy way of setting the normal maps in the atlas we used for the tilemaps. And that is one of the main things I use to take some work form the textures :P

Unfortunately, there is no picture, as I deleted it accidentally, and it’s a long process to do it again, just for the sake of the screenshot.

I do have here what could have been the necessary tiles for making different roads.

Combinations for a lot of roads! And none of them take you to Rome

And some tiles that could eventually end up in the final version (not in the same way probably)

 

Jepegized image!

 

Second try: Unity terrain

At first, a long shot, but it could be cool, the contrast. Eventually, mixing high poly mesh, low poly buildings, pixel art characters, was not such a good idea.

The first problem, as always, was setting parameters that would be consistent with our scale. It was not easy, and the values were extremely different.

From the aesthetic side was not good either.

I tried to export some heightmaps, making them by hand in photoshop, and later working them into Unity or Zbrush. Eventually I could set up some kind of pipeline, but it was not very efficient, as the heightmap, when exported into Unity, was not very precise.

(Click in the picture to enlarge it!)

The terrains in unity, are definitively nasty. The vertex painting part is incredible cool, but otherwise, there are just a headache, or just something quick for prototyping (if you are working in the same scale).

 

The third try: Modular and low polyhhhh

Before I came to this, I was really frustrated. I was searching for something consistent within the game, something beauty, and light in performance. Also fast. I wanted to do a few clicks and have something working.

Eventually, it hit me. We are making low poly buildings, for pixel art characters. The environment it has to be all low poly. And as it would be a stupid amount of work making an entire city unique, the best approach was to made it modular.

In this train of thought, I arrived to my second error. The concept (which all of you can see here!) was very vague in some areas. I didn’t figure out how all parts would fit together, and the blank spaces in which “I’ll put a mountain or something later” were really not helping to gain a big picture.

So I sat, tok the map, and did it again, now having in mind a tile size, and that each square had to be declared.

That helped me figuring out what will be the definitive layout.

(Click in the picture to enlarge it!)

As for the side of the amount of meshes, eventually, I realized what Sebastian was trying to say for a week now. It’s not time for optimization. We will have that time, but for now, we can take a few liberties. Also, the performance problems are coming from the physics side, not the rendering one.

 

 

Read More

Flocking Like It’s 1999

When we first started discussing the game’s idea with Roque, and the word mob was mentioned, another word come into mind: “empanadas” (because we were hungry, and we always eat some delicious emapanadas on Fridays). But immediately after lunch yet another word come into my mind: flocking. The algorithm that mimics the coordinated movement of bird flocks or fish schools (http://www.red3d.com/cwr/boids/) seemed like the way to go. Sure, people were not going to behave exactly like fish or albatrosses, but the three rules that govern the flocking algorithm, separation, alignment and cohesion, were going to be more than useful to determine how the people in the mob behave.

The three rules of the boids

The three rules of the boids: Separation, alignment and cohesion

Being the lazy programmer that I am … errr … I mean, the efficient programmer that I am, and trying to avoid reinventing the wheel, I set out to seek flocking algorithms implementations on Unity. Soon I came across this neat little set of scripts on the Unity Wiki: http://wiki.unity3d.com/index.php?title=Flocking. It was very simple to implement and the use of a centralized controller made it very efficient as well. It allowed to create a mob of several hundred boids at a very low performance cost. So I used this as the mobster’s behaviors’ foundation stone. Our early prototypes were all done using a modified version this algorithm.

And so everything was peace and quiet, months went by and the game grew until one day the algorithm was not enough. The game’s needs had changed and it was time to write a new super efficient yet flexible and versatile flocking algorithm … or search the web again. So I did the latter and this time met Unity Steer: http://arges-systems.com/blog/category/unitysteer/

 

One of the older prototypes

One of the older prototypes

Unity Steer proved to be very flexible, you can add or remove different steering behaviour to get different results easily. It seemed just what we needed. But this came at a performance cost. My good old MacBook started to suffer when a couple hundred boids were added.

What I did then was a fiddle around for a while with the different behaviours, to see which combination worked best (and because it was fun to do so, wiiiii, flocking!!!) until I found something I liked and then merged the behaviours together. The next step was doing some more optimization, taking advantage of the mob’s specific characteristics, removing a little bit of this, merging some of that, profiling, adding a little bit of that, profiling again, checking imdb to settle some arguments about Willem Dafoe’s career, removing some more stuff and profiling once more. You know, the usual mob optimization process.

The Cubes are Back

The Cubes are Back

 

When it was all over, several hundred boids were moving smoothly around the computer’s screen, doing their boiddy things, aligned, separated yet cohesive. The boids were ready to be integrated into the game, to spark some life into those pixelated and angry Greeks. Pure beauty.

 

Read More
content top