content top

Prefab Inception

Yes, I know, inception is putting an idea in the head of someone and not precisely recursion, but nowadays is a recursion synonym. And the other option was naming this post “Yo dawg, I heard you like prefabs”.

(All THE IMAGES ARE SCALED DOWN. CLICK THEM TO OPEN THEM IN A NEW WINDOW)

Well, this week we are going to talk about a problem that, although we finally managed to solve,  had us trying lots of different solutions and has given us many head aches, a problem named Nested Prefabs.

Unity’s prefabs are instantiable objects. The problem is that these objects can’t be placed inside other objects, without losing the reference to the original object. It would be like a Flash MovieClip, but the main difference is that the MovieClip allows children to maintain their original reference.

Why did this bother us so much? Well, each stage in Okhlos, is composed by four chunks. Each chunk is, in turn, composed of different buildings. And each building is composed of different props and structures.

CHUNKS

This is a chunk. The main component of the chunks are buildings, but they can also have other elements like hazards, enemies, props, etc., and some of these can be completely randomized.

BUILDINGS

The buildings are composed of a main structure and different props, also some other decorations which may be sprites or the like.

PROPS

Props are the weakest destructible elements. They usually have a small structure and some sprites.

 

The following image will perhaps better illustrate how these things, chunks, buildings and props, fit together.

As you can image by now, when we add this hierarchy to the prefab’s problem you end up with three o four levels of lost references for each chunk or building. At first we simply tried to deal with this without resorting to any kind of nesting of prefabs, but it came at a high price. Basically, we had to redo every chunk and building a couple of times.

What we do now, is use a script we named Building Holder. That script holds a reference to a prefab, and instantiates it on runtime.

This reference points to an object of GameObject type, thus it can be either a GameObject in the scene or a prefab. What we found out when we started using this was that if the reference pointed to itself, when we hit apply, it stored a reference to the Game Object in the scene, not to the actual prefab.

You can see it (kinda) more clearly here:

The green line shows how the reference points to the Project view (to the actual prefab). The red line shows the object in the Hierarchy view (which is the scene view, what we don’t want to happen). And the blue lines show the objects’ structure (chunk, building, prop).

To set the reference point to actual prefab and not  the instance is fundamental to be able to modify a building without having to modify its instance in each chunk (or to put it in other words, to be able to modify a building once instead of gazillion times) but luckily we now how to do it.

 

Finally, a few screenshots showing some chunks together:

 

And closing up this week, a tree destruction .gif!

 

Read More

Destroying things is only fun from your end

These past few weeks, we’ve been working on having cool ruins to replace the buildings when they are destroyed.

This was not easy. In the first place, we don’t want to have stupid amounts of geometry going directly to your video card. In order to maintain the low poly look, we have to be resourceful in how we show the destruction.

While doing this we had to resort to nested prefabs (which we will cover next week. Spoilers!), deal with a lot of trouble we had with the .FBX and with the project order in almost every fracking level of it.

Well, here is the thing:

First, we had these nice little buildings, each one in its own file.

That was cool, except for the fact that when we decided to add the ruins, some of the buildings shared the destroyed version. So, duplicating the ruins in each file would have added useless geometry, and not doing it would have been messy (and my little OCD bug would have killed me).

We didn’t have an satisfactory way of doing it. So we decided to put the meshes in a few .FBXs. Doing this would mean less file access, and putting the same ruins to share models would save us a lot of polys. And everything would be tidy.

In our organized wall society, we do not tolerate new ideas.

So we ended up with only two or three files in this fashion, using only two or three textures per file. I think it is pretty optimized, but not perfect. I really wanted to optimize everything. I… have… to optimize… more…

 

I’m implementing all the solutions in the city of Delphi and when everything is working, I will do the same on the other cities.

As almost every modeler using Unity knows, I have to work with both the modelling tool and Unity to really know how it’s going to look. So, here is how it looks in Unity!

(Click to enlarge!)

Well, next week we will talk about a really bummer, which is… NESTED PREFABS!

Read More

Sound and Vision

I have to stop using so many music references for the titles. But they are an easy way out, and I’m lazy!

Anyway, very briefly, these past weeks we’ve been finishing up the design of most of Okhlos’ HUD and windows. We had to make a lot of hard choices, and we are still changing a lot of things that aren’t closed yet.

(Our previous HUD vs. the new one. Click to enlarge!)

It’s hard, because you have to anticipate how the player will interact with the given information, so you have to guess a lot.

The most significant change was adapting everything to a 1 on 1 pixel aspect. Every element was 2x in the original pixel art work. We decided (actually, I didn’t consult Sebastian and went on with it without telling him until it was finished) to make everything 1x, meaning to respect the pixel art as is.

This is the Items Thing (technical terminology). It’s function is to show you the keys assigned to each item and tell you if anyone in your mob is carrying one of those items.If you don’t have an item, it will be shown in gray.  The image you see is here is the one that will be shown if you are using a joystick, we didn’t do the keyboard graphic yet. And as you can see, it’s much prettier if you treat each pixel as a pixel, instead of scaling them.

This is the story of the basic buttons. At first, we used to use the Dalek font (don’t know the relation between a Greek font and Dr. Who) and the sprites at 2x. Later, we switched to a more pixel-friendly font. Finally, last week, we took them to the actual size.

Here you can see the mob count tab, that shows the number of people you have in your mob , how it was and how it currently is .

The “1P” in the first  image is a sign of how much more we were focused on multiplayer during the early stages of development. The second attempt added the mob’s rage bar. This bar basically shows how rampageous your mob is,  increasing when the mob smashes things or tramples enemies, and decreasing over time. Finally, I made the third option last week, it’s not final yet, but we decided to show a mob icon/graphic, and separate the bar from the mob count.

(click to enlarge!)

This is the pause menu. This may be the most important window of all. Here, you will see all of your units, heroes, and the mob modifiers. If you have a hero that gives you +10% attack bonus, you will see it here. It’s faaar from finished yet but we think that is important to keep it as simple as possible. Too much information will ruin the window completely, it will frustrate the player when navigating it. So we will try a lot of mockups to see how we can best convey all the information.

And keep in mind that things can get a little crowded.

Yeah, that’s too much information. Feel free to feel overwhelmed by clicking the picture and pressing F11 (In chrome and in PC, don’t know in other systems).

As always, we love your comments! You can reach us in Facebook, Twitter or right down here! We try to answer all of them! (Please stop sending us nude pictures)

Well, as John Green says, Don’t forget to be awesome!

Roque

(Yeah, I know, I never sign the posts, I suppose that I’m very hipster lately)

 

Read More

Bigger than Jesus (ish)

Ahoy! So much time has passed since the last update. These past weeks have been a rollercoaster. Some good things happened, some not so good also… Whatever. Today I will talk, among other things, about cholulaje. Cholulaje is an Argentinian lunfardo (or colloquialism) word that means something like celebrity junkieness, or screen personality fandom.

It all started quite suddenly one day. I woke up, made some coffee and started my morning routine, which involves checking mails and checking Facebook for like half an hour. I had two mails and Facebook messages stating the same thing: we had appeared in Rock Paper Shotgun! That was incredible, we couldn’t believe it. We had never sent anything to any media outlet, but there it was, a beautiful article about Okhlos! (Here is the article)

 

It was amazing. Suddenly, we had a lot of tweets. People following our twitter account (here :) )! And our owns accounts also. Lots of people retweeted the article.  Also, we had a few comments on the article, and I could argue with the public for the first time!

A few hours later. Mail from Kotaku. Chris Person wanted to do a Let’s Play of Okhlos. We were beyond words. We worked a lot in order to have a semi stable version for Chris. Setting a deadline always helps to keep the rhythm and prevents from getting too relaxed, so the pressure of having to send them something quickly ended up being a good thing .

Some days later, when everything was sort of OK, we sent him the version. What a thrill! (sounding like a little school girl). A week after that, during my morning routine, I noticed that we had a lot of musician offers, some mails and lots of tweets. The reason was obvious, Kotaku had published the article. 

Finally, IndieGames on Twitter asked developers for .GIFs of their games. After a few technical details, I prepared some GIFs and sent them. Thus we also made it into in the article for #GIFriday!

After that, I talked to John from IndieGames and he told me that he wanted to do a series of GIFs explaining the game, we were thrilled, and we started to work on more GIFs. If anything can go wrong, it will go wrong when you are talking with the press. My PC started to freeze when I tried to convert the video into gif, the hardware acceleration in photoshop suddenly decided to stop working, and our first 480px gifs ended up with a size of 20mb (which is not a good thing). Fortunately, we managed to make the gifs, and of a reasonable size. I will not post them here, because the article hasn’t came out yet, and I don’t want to spoil their exclusivity. But I will post them on future updates.

Here is the first post of IndieGames showing Okhlos!

Also, to add more to this media coverage / cholulaje account, a cambridge P.h.D. specialized in ancient philosophy wrote about Okhlos in his blog.  Which is as terribly cool, as completely off topic.

PS: In order to have more images (c’mon, we know you just look at the pictures), here in the bottom is a sneak peak of the changes we are making to the HUD

So, that’s all for this week! As always feel free to send us your feedback about anything you want!

 

Read More

Generation Logo!

A new year started. We can now talk about Okhlos’ development in terms of years. Many things happened throughout the first year of development, good and bad. While it usually is a good idea to recap the year we found it too cliche, so we did something else and took the time between last update and this to rest.

The result was this update about a topic I usually hate: logos.

Nowadays, designing a logo seems to be about following a series of strict steps. A lot of logos are very similar to each other. Looking at a small sample of logos, we can see the following characteristics.

Some excellent designs came out from following these guidelines. Even Gravity Fleet didn’t escape from them (although that doesn’t make it a good example). But there have also been lots of logos that are very formulaic.

Many of you know my background. I am an illustrator, not a graphic designer, so I have enough of an aesthetic sense to realize when something is wrong but it would be hard for me to find a way to fix it. So I end up fixing it by trial and error, which is both costly and tiring.

We have a mini-rule for a lot of our deicisions regarding Okhlos: doing the opposite of what we did with Gravity Fleet. Taking that into account, I decided to not priorize readability above everything else and focused on making the logo in a pixel art style that went along with the game’s aesthetic, at the same time making it a nice image by itself. I didn’t follow guidelines for design, readability, color contrast nor anything like that, simply an image that says “Okhlos” and that the splash suggested the game’s context.

I started the most obvious way, by making stone letters.

This is the first draft. Perspective, stones with some cracks and the design inside the letters that have a little Greek touch. The romboid-shaped “O” were something that I ended up taking from my research on different fonts.

These are some of the fonts that I researched. From this list I took various characteristics that suggested Greece.

Found the characteristics, I started scribbling different ideas about a more polished logo. With ornaments, styles and other embellishments.

The problem with these approaches was that the letters , although they were made out of stone, didn’t have much weight. Somethign was missing.

I decided to made the letters in 3D, change the font and play around with the camera to make it look like something stupidly huge seen from ground level.

This brought me to this next version, which let me start the pixelation and gave me a clearer vision of what I was working to acomplish.

To make the 3D I ran into a series of problems. Mi idea was to take my strokes from Illustrator to Max and work them there. They were horrible hours of trial and error, checking what could be imported into Max, because almost everything that I exported from Illustrator was rejected by Max. Finally I found a way to save an .ai as a Legacy (Version 8 ) and that solved my problems using Max to extrude the shapes from Illustrator. After that, it was all camera effects.

This is how it looked on Max. The image above shows the first part of the work where I start drawing over the letters, separate them and correct some imperfection, etc.

Once I have this as a base, I started pixelating this but at double the resolution I should, making me waste some hours. Finally, I ended up with the 3 options that I show next. Although none of them are finale, they are close to what we believe could be a good logo/splash for Okhlos, always taking into account the idea that we want it to work more as an image than as a logo.

 I got inspired a bit on Norman Rockwell for the one with the red background, but both Sebastián and Cristian (Panchín, a designer friend that was giving me some tips about the logos) insisted that it suggested Japan way too much. I think it’s one of my favorites, from a completely aesthetic point of view.

This one, after a lot of failed tries that I haven’t posted (from all the stages of design, there are a lot that I think should not be seen by humankind), is the one that had that illustration component that I was looking for. I cleaned up the rocks quite a bit, take off the lines (that in this case makes it more readable) and added a few city things in the background.

Although I think that unfortunately we can’t close the chapter on logos, we are closer to what we are looking for.

Any feedback is welcome! And yes, the name from the update it’s inspired by this song.

Read More

Top 6 bugs of the year (that are kinda funny)

As the end of the year gets near, you know it’s a tradition to start making lists, lots and lots of lists. For some, it’s a way to look back into the year that’s about to end and see what has been accomplished. For others, it is a way to look back at the things they’ve missed and swear that next year will be the year. For others, it’s another chance to remember the good moments that passed, the joys that the year brought. And for others, it is a way to not having to think in a proper update. Of course, this is not our case.

These are bugs that (while they may have been annoying, difficult, easy or anything in between to fix) brought at least a smile to our faces when we saw them, made us look at the rest of the team and go “Hey! Look over here! This damn thing is broken again!”

So first we start with numero seis.

6. This is thriller, thriller mob

Once we found out that the mob would turn to face the wrong side while moving or not turn at all, as we can see here in an extreme case. At the time we had more pressing issues, so fixing this bug was a bit low in the queue and we ended up having a moonwalking mob with us. And someone would always start whistling Thriller while playtesting. That was the worst part, I think.

5. Oedipus summons an otherworldly horror

The horror! THE HORROR! It seems that time travel, cloning people, being the father of your brothers and sister… these kind of things aren’t without consequences for your sanity… and Oedipus knows this very well. At some point, he tried to escape this torment by splicing DNA from the people he cloned to create a vessel for a Great Old One to inhabit so it would wreck havoc on ancient Greece. Or maybe he just created copies of animated sprites that got stuck together at 0,0,0. I still think Oedipus is not to be trusted, but the guys will still use him in the game. Iä! Iä! Ph’nglui mglw’nafh Cthulhu R’lyeh wgah’nagl fhtagn!

4. Oedipus has gone too far…

This is a last minute addition to this list! It happened this morning, and both Sebastian and I agreed that it deserved this spot.  We were working on being able to replay a level with the same mob when we realized that crossing your own time line leads to unfortunate situations like that one. And Oedipus hadn’t said anything to us. Yet another reason not to trust him.

3. Apollo uses his Rapid Shot Feat

Ouch, that looks like it hurts. A lot. Poor philosopher. Now imagine you are testing, battling Apollo with your mob. Then you pause it for a moment to check some variables and stuff, to check if everything is behaving as expected. Then you go back to the game to move on to the next critical moment aaaaand… this welcomes you. A bunch of arrows shot rapidly by the god Apollo. It’s not fair, is it? Also, notice how they are arrows and not cats? Damn Roque.

2.Perseus goes Garry’s Mod all over Delphi. Or just slithers around. One of those.

Many are Perseus’ exploits, as we all know, but it seems griffons have a funny effect on him. When brave Perseus was attacked by one of the majestic beasts and later rescued by the rest of the mob, he never recovered from the experience. But he gained the ability to phase through buildings and stuff, so there’s that.

1. Hallelujah, it’s raining philosophers!

And this is the top of the list! The best one! The philosophers rain! Why the background is dark grey, you ask? Because this happened among a complicated series of things breaking one after the other, including the level not loading and the action phase getting stuck in “spawn player”. But seriously, I think this picture speaks by itself. So behold the best bug of the year!

And that’s it. There were more bugs, of course, but those were more of the “AAARGH!!!” kind and not memorable at all. I hope this list has made your life 780% percent better (±780).  Enjoy the upcoming holiday, celebrate responsibly and don’t aggravate Santa by throwing rocks at the reindeer.

Read More
content top