What do you do when you’re home sick? That’s right, you game jam. That’s at least what I just did during my spurts of energy between the ever closing prospect of death as I have the flu.
I decided two make a small two button arcade controller and a game to utilize that controller. I came up with a two player one button game.
So each player have their own button that they are in charge over. But together they most get the ball to reach as far as possible and as quickly as possible. There are three lanes, if no player pressed there button or if both players do, the ball moves down the middle lane. If only the first player pressed her button the ball moves down the left lane and if only the second player presses the button the ball moves down the right lane.
The level was quickly created with the help with the ProBuilder Unity Asset that makes it easy to create al from basic to advanced shapes directly into the scene.
While some people have had an entire week of, grrr, other have not, but others aren’t angry about that! Because that means that some have gotten a lot done this week, at least that’s what others are hoping for!
J Some have been looking into particles and Houdini Engine this week, it’s been quite a busy week for me and I’ve gotten way less than I wanted to done.
Hippo carrying sash
Got started on some gear for the hippo, a cute African Kayayo sash for head carrying practices, after that I got caught up in trying to create a wicker basket in Houdini Engine, mainly since I want to use it later to create nice dungeon tiles for Eco’s adventuring part without having to fit pieces together constantly, it will look great!
I skipped out on doing that in Houdini and instead maybe a wheel for a chariot, then I turned it into a modern wheel and saved, so… Here’s a picture of my mistake.
Lastly I watched a nice talk on VFX by Blizzard’s Lead Technical Artist Julian Love, I decided I just had to implement in Unity, here are the three textures used to make the effect possible.
Starting from the right is the main fire sprite, the alpha doubles as a mask for Additive and Alpha Blend as well as just plain old Alpha. Next up is a noise texture which makes the entire effect come to life and gives a flowing/flaming look without the use of a sprite sheet. Lastly, an optional life giver to add some colour variations to the fire.
Textures used for the effect.
Here is the final test effect! This is nothing but a few particles which grow over time, while slowly moving upward, the entire effect is being driven by the shader, extremely cheap, even for mobile!
Testing out Blizzard’s Main VFX Shader from Diablo III
K I love being a teacher, especially one that have the luxury to teach my passion of game development, another reason is of course that I sometimes get the same time of from work as the students do meaning I can put all my focus on Eco Tales.
This week being one of those weeks I got the full seven days off to work but also some other interesting but game dev related things that I will tell you about.
Starting the week with full Eco time I have worked on making my previous work as crisp as possible and ready for testing before we can show you that progress, now considering we are still early in the process you might not be impressed but we can’t go from point A to C before visiting B for the quality reasons, we want to make this proper and not half-arsed and sloppy.
What we have so far code wise is a working camera system and player movement in the dungeon mode, and yes the game has two modes, adventuring and merchant mode. We have a inventory system and a weapon you can pick up and equip, a Bastard Sword to be exact and you can swing that around against a training dummy.
Hopefully we will be able to show you a short sequence of this in a near future.
I have also been working on our upcoming website for Eco Tales and that my good people is a show of dedication from my part, I absolutely loathe web design, web development, web anything, it is not for me but I do it anyway because it needs to be done, for the project and for you and when we are ready to announce it you can lay your eyes on it but for now it remains hidden from snoopy eyes.
I could only be there for a little while on Friday, the first day because I had a moving in party the following day.
The event was great, good speakers and most importantly awesome games.
So it has been a busy week indeed and the final bit related to my work as a teacher was when some of my awesome students asked me before their week of if we could sit in school and make games, and me and my soft old game developer heart smiled at the thought and here I am happily working on Eco Tales while my great students are working on their projects, this is why I love being a teacher, that level of passion is something I want to be apart of.
LBS Stockholm students
Now after such a hectic week ending with a moving in party on my part, a few months too late I can finally rest my head on my pillow and look forward towards a new week tomorrow.
First of, and this one is REALLY exciting! Our Facebook page is now live, you can find it here : Eco Tales Facebook make sure to like it for steady updates!
It’s true, we’re on Facebook!
In addition, Jona has been a so called Straw Man, or gräsänkling in Swedish during most of the week, so he’s managed quite a few hours every night, most of these have been spent in SpeedTree so that’s why this post is extra long!
There will also be a special post on SpeedTree soon:ish, so look forward to it!
JWow, what a week! It’s been amazing, and things are sure starting to look more and more interesting. That’s why you have to make sure to follow us on Twitter @EcoTalesGame and also me @Gruckel, did we mention we have a Facebook page now!?!
This week I managed to find my credentials for an old Unity account, in it I found the SSAO Pro plugin which is now attached to the main game camera, it’s amazing, so amazing in fact that I decided to buy SE Natural Bloom & Dity Lens as well… Not that they are related.
These two along with Colorful FX which I recently upgraded, will form the basis of our post-effect line-up, I wanted to write some of my own, but that’ll have to be a fun side-project for when I’m bored with asset creation.
Onto SpeedTree stuff, the grass you see in some of the images in the post are based on a custom mesh I modeled in 3ds Max, this mesh is then instanced multiple times in SpeedTree and spread out with random rotations and scale over a larger area than one mesh could cover, in this case it’s about 10m². This also allows for the grass to use the SpeedTree wind parameters, very exciting!
Based on the free March assets
Below are some trees I created in SpeedTree, I’ll probably create a different leaf texture, given how this one is built upon the large bladed ones from the free March asset pack, but not in the way you might expect. The sprite is actually created inside of SpeedTree using a small bush that I made. A tutorial for how this is done will definitely be made!
I also had the opportunity to look at a lot of SpeedTree models which were already made by someone who has been using it for a long time, I learned a lot and it gave me quite a few ideas. Here’s a bush based entirely around fronds, which means that it’s completely built upon alpha cutoff planes.
I wish SpeedTree had a better LOD-system for fronds, but I guess it’ll have to do, these assets aren’t really that triss-heavy anyway.
So what else did I do this week? Well, over the course of the weekend we had a small workshop, managed about 20 hours or even more in less than 48 hours. I as I am one to do, did a lot of shader research, mainly however I focused on creating two new characters.
One fit male and one fit female, I also created the gear needed to not have all characters walk around naked whilst wearing nothing in our screenshots.
Fit male with standard shader
Fit Eco male with clothing using a custom shader
Fit Eco female wish clothing using a custom shader
K Wow, what a week! It’s been amazing. I have started drafting the camera, as we have a lot to decide on and plan I still need to prototype and make general systems and look deeper into any bought systems, getting to know them and how we might be able to use them.
The camera I have worked on is your general third person camera system, you know, move it around, wiggle it a bit, zoomable, that is the camera we might use for the adventure part of Eco Tales while the shop part likely will be something different.
Besides that I have done other programmy thingies, as a coder or a human being I don’t know but I find great pleasure in trying and learning new things so after buying a starter Arduino kit for some of my students at LBS Stockholm (sv) I got so jealous watching them working with it I just had to order my own which quickly arrived and after getting a Light-emitting diode to blink I got into something bigger namely begging Eco Tales (-> Facebook <-) for forgiveness for not spending every moment awake working on it, but I think I managed to sway her a bit.
Yeah, it is spring break in Sweden and half of KJ Interactive can enjoy some time of from their main gig to focus on Eco Tales before a few days in Prague, that half is of course only for me, Krister as I am a teacher in Sweden I connot only enjoy the promising future of some young game developers over at LBS Stockholm [SV] but also some of the same recess as the students.
One who cannot enjoy spring break is Jona so I stand here infront of my desk with a glass of schadenfreude dance coding on our great unannounced game.
This week I regretfully turned 35, I have done everything in my power to stop it, I would have gotten away with it if it weren’t for that group of mischievous teenagers riding around in that ugly van with that weird looking dog of theirs.
All of this did of course not stop me from working and my focus area this past week have been making it possible to working on Eco in Unity3D as smooth and painlessly as possible with little effort required to test, create new levels and assets. I needed this before we had too big a base making it a hassle.
As usual I have nothing nice for you to see but who knows, next week you might get a nice photo of me enjoying Prague in all its glory, but for now you have to settle for a photo of me trying to explode my head to put out the fire on the cake.
Blowing out candles
J Don’t worry, you’re not the only one to not understand the old man’s rambling, dogecar?
So, I’ve been UVing again and testing out a few of the asset packs we bought over the madness Unity asset store madness.
I’ve also done some painting, here’s another pass on the cobble stones, I think this has taken about 20 hours, which is an insane amount of time.
Hopefully I’ll manage to get faster the more of these I paint.
Cobble stones final
We’ll be posting reviews of all our asset packs and how we’re using them eventually, for now you’ll have to make due with a test video for SALSA.
Setting that up took less than 2 hours and that was including the creation of morph targets, additionally, it was my first time using the asset pack.
This, which uses the same sound and a custom animation running the length of the clip took about the same time, but it looks and was super random and would have to be setup for every single sound clip in a game.
Here’s my happy birthday wish for Krister which is also using SALSA, sadly I managed to dislocate the jaw in this test so the teeth make an already disturbing video even more so..
I’m impressed with SALSA so far and I’d recommend you pick it up at the sale, I’ve yet to create final tweaks to morphtargets and settings inside of Unity, yet it’s looking pretty cool.
Global Game Jam is as you most likely have figured out a global event, during the last weekend of January every year game developers from around the world gather during 48 hours to create a game based on a common theme, this year the theme was RITUAL!
KJ Interactive (Krister and Jona) came up with The Shakespeare, a game where Tommy previously to making The Room records a pilot in his garage and by the sheer awesomeness and quality of his work… Well you have to watch the above video to find out.
For those not yet initiated into the glory of The Room, let me just tell you this. It is an EPIC movie of love and betrayal.
K Ok, so I’m Krister, the programmer of the group. The Shakespeare game was a nice level of complexity for a jam, the two biggest features code wise is that of the rhythm based gameplay where you have to press the correct button att the right time to score points, regardless the other system will continue to drive the story forward making sure Tommy is at the correct position at the correct time doing what it is he is suppose to do.
Krister, you can show this thing, you coded it!
I don’t really have anything fancy to show as my work is just about code, and even if the code itself can be presented in different nice looking colors I choose not to, but rather link you this fine looking color palette and trust that Jona, the technical artist has plenty to show, and… It is Jona after all and he would not be Jona unless he made some kind of sound, something he can talk endlessly about.
Now, let’s see this from my, Jona’s perspective. For this year’s Game Jam we wanted to create something which would just become a one shoot, something we could just as well show off through a video and not really have to worry about once it was done.
More than that though, we wanted to see if we could get some views and followers to our social networks for our upcoming game @EcoTalesGame on Twitter, always trying to get an extra follower.
Still, more than that we wanted to create something we could laugh at, so when we heard the theme and read the extra challenges, a game about Tommy Wiseau channeling Shakespeare in some sort of ritual felt like an obvious choice.
The first thing I did was create an OST, I got a hold of some piano tunes free with no strings attached and went to writing a song, you can listen to it HERE. It told the entire plot line, in the end the play deviated a bit but, well, no one listens to the lyrics anyway, right?
As this was a game jam, the time limit is the main thing to take into consideration when planning out a project, we wanted a nice character and I decided upon a style I personally love, big heads and small bodies.
I used zBrush to build a base for Tommy, rewatched The Room and took screenshots of him in various poses.
Take special note of the butt, if you’ve seen The Room, I know you remember it, doesn’t it bring back joyous memories?
Here’s the final model, I’m quite happy with it considering it’s my first attempt at a caricature, what do you think, leave me a happy or mad tweet @EcoTalesgame!
Knowing beforehand that skinning the character, sculpting, texturing and retoppologizing, not to mention animating it would take quite some time, I decided that the rest of the artwork would be things that Tommy himself could’ve made in his garage.
After creating a small ”room” with a feel I felt matched Tommy himself I set about creating cardboard cut-outs, painting quick sketches of the main environments and characters Tommy would interact with.
I gave Krister a script and he set about making Tommy do the things he had to do, following the player’s inputs, you can think of it as a guitar hero clone without the beat playing into it.
(See the picture I put in Krister’s section of the post.)
After the first draft of Tommy’s act, I created a voice over track with everything Tommy would say as he acted out the play, since this took place in Tommy’s garage, being recorded for the first time in history, I tried to keep the acting on a level suiting the actual movie.
Things still felt empty and I spent a lot of time creating, normalizing and cutting sounds from free sources around the web. Having the cut-outs make sounds as they were raised and lowered, dragged and pulled added a lot to the feel of the game. Finally adding in “Boos” and “Yays” for failed and successful button presses did the rest.
As any full-blood The Room fan knows, there are a lot of things which relate to spoons inside of the The Room, this is why, there is a nice physics particle effect getting activated whenever the player presses the correct button combination.
Make sure to subscribe to the mail list, and again, check out @EcoTalesGame on Twitter.
To not overload the blog and Facebook page we’re going to write weekly posts, which we update 7 times each, once per day.
Let’s get this done!
Today I took a few asset I’d made for Unreal Engine 4 and pushed them through my Unity pipeline, sadly, most of my original files had been lost so this took quite bit longer than expected.
I will need to edit the textures a bit to fit in with the rest of the game.
Additionally, adhering to the one object per day rule I also created the cherries seen in the image below.
5 hours of work
For me, the programmer had a nice one hour yesterday as well, we had a small base of code from last weekend so I improved upon that, working with the weapon system, cleaning up and improving the attack code a bit.
So far I am working with temporary graphics of course, with some from Jona and some programmer made visuals, I think it is safe to say that I am the better artist of KJ.
Programmer art is much superior
I created the base of a flan asset using Maya and started looking into a custom shader to change colors of it depending upon taste, I’ve not yet decided if this it the way I’ll go with it, but there’s time for iteration yet.
I also started and finalized the ecological chocolate bar seen in the image. Most time was spent looking into the Unity 5 Standard shader.
I’ve yet to decide if PBR is the right way to go for this game, it’s lacking something important, maybe the lighting will stick, as for the rest, big things are coming, I’m sure of it!
The first consumables are ready, time for custom shaders perhaps?
I went wholeheartedly into creating a system to handle settings and configurations with restore to default capabilities and also started looking into using cInput. So not a big update for me, nothing as fancy as sweet chockolates but I am a firm beliver of having a strong foundation of these general systems inplemented early as it will help during development, also since we don’t have all the concepts and ideas of the game done it is something to work on while we figure things out.
Busiest day of the week, managed to get an hour in, however, I wasn’t even close to managing a blog update after, spent too long on this haha.
One hour of work
After creating the basic system for handling settings in the game I continued with creating a settings editor just to avoid the hassle of having to deal with the XML file.
Today we went into full work mode, I worked on writing some shaders and started on some clothing, using a free trial of Marvelous Designer, it was a lof of fun, it’s prone to crashing but very powerful.
Marvelous Designer shirt
This saturday we went full work mode and I took the time to improve upon the item and weapon systems as well as started working on the inventory ststem.
I continued experimenting with Marvelous Designer, here are a set of pants I created somewhere around midnight and beyond, hopefully I’ll have the time for another update today.
These clothes need some nice textures, painting time!
Marvelous Designer Pants
The last day of the firs week I spent some time cleaning up the code from yesterday, making som small improvements to the code.
I end the sunday with this, my current favourite shader iterations, which do you prefer? Send me a message on Facebook or twitter and let me know!
I just had a long day accompanied by a headache so intense that my day felt slightly askew, so what better remedy than working with Unity?
Not really having any direct train of thought I stumbled upon this in the Unity documentation describing how to get the pixel of the texture on the material where you clicked with the help of the texture coordinate.
Thinking back this is what I used to do when doing 2D games for point & click adventure games or top down games where I could bake in information in the level and react on it, for example if a car drove over a yellow field in the map it would get a speed boost.
First we need the image we want to display in the game, that is easy enough and I chose this one here from when we were visiting a conference that Swedish Game Awards were hosting back in April, then we also need the hot spot image, you basically copy the original image painting over any hot spots with a unique color leaving everything else white, transparent or whatever is to your liking, just remember to so you do not accidentally use it as a hot spot color later on.
KJ and S visiting SGA Conference
Hot spot map
Importing these assets into Unity you need to apply some settings to the map texture. You need to make it read/write enabled, I also changed compression type to RGB 16 bit so that my colors did not get compressed and modified (this reduces the amount of colors you can use but still should be more than enough).
After creating the material you put it on your mesh and you need to add a collider to that object so we can use raycast on it, that collider MUST be a mesh collider otherwise we will not be able to get the texture coordinate, something we must be able to do to get this to work.
On to the code, the way I set it up was that when you press the left mouse button it will make a raycast if it hits a mesh collider with the selected layer it will take the texture coordinate and translate that into a pixel which you use to check on your map texture and retrieve the color.
Create a script that you will later place on your mesh object.
public class ImageMap : MonoBehaviour
public Text textbox;
public float rayDistance = 50f;
public LayerMask layer;
public Texture2D clickTexture;
public Color colors;
public string texts;
So I will get the color the user clicked, find the corresponding string connected to that color and set the text of my textbox to that value. I will start by implementing the method that finds the index of the color in my colors array so I can use that in my string array to find the correct text.
private int FindIndexFromColor(Color color)
for (int i = 0; i &amp;lt; colors.Length; i++)
if (colors[i] == color)
Now we are ready to get to the part where we get the color from the image map from where we clicked.
if (Input.GetMouseButtonDown(0) && Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, rayDistance, layer))
Renderer renderer = hit.transform.GetComponent<MeshRenderer>();
Texture2D texture = renderer.material.mainTexture as Texture2D;
Vector2 pixelUV = hit.textureCoord;
pixelUV.x *= texture.width;
pixelUV.y *= texture.height;
Vector2 tiling = renderer.material.mainTextureScale;
Color color = clickTexture.GetPixel(Mathf.FloorToInt(pixelUV.x * tiling.x), Mathf.FloorToInt(pixelUV.y * tiling.y));
int index = FindIndexFromColor(color);
if (index >= 0)
textbox.text = texts[index];
So I basically check to see if the user just pressed down the left mouse button and if the raycast hit anything of interest, I placed all my Image Map objects into a special layer just for them in this example.
If I did click a valid object I find the texture on it and check what texture coordinate the user pressed, calculate that into a pixel on the texture and check tha corresponding pixel on my texture map “clickTexture” taking into account the scale of the material (that way it will still work if you have tiled it).
And that is it, my headache is gone, my energy is up so good luck and I might see you after my refreshing stroll in our refreshing autumn weather we are having here in Sweden today.