About theck


Ludum Dare 37
Ludum Dare 36
Ludum Dare 35

theck's Trophies

Featured in GeekyJuegos.com
Awarded by GeekyJuegos
on May 9, 2016

theck's Archive

[Almost] One Room Post-mortem – Part 2

Posted by
Thursday, December 22nd, 2016 6:21 pm

On the first part I wrote about how it was the birth of the idea. Today I want to talk about execution and learning, because if you remember correctly, the main idea was to learn Unreal Engine 4.

The starting point was to let the player find a number combination for a door. Every number will be in a copy of the same room, but every room will be lightly different.

We started thinking how to hide the numbers and we wanted to go beyond the easy way of hiding behind the furniture. We wanted the player to think out of the box, and our main fear was to make puzzles too hard to be guessed. With the time restrictions of a jam the harder part is to balance a game, and to balance something as subjective as a puzzle difficulty is only doable if you can make people play it, we hadn’t people.

The first thing we did was to draw a generic room layout with 4 doors, one on every wall but not in the center. Rooms in real life don’t usually have the door in the center, it wastes too much space and from a gameplay perspective, it will limit what you can place there and may compromise room walkability.


On the other hand I’ve started “coding”. For those who have not worked yet with Unreal Engine 4, it has a visual programming system called blueprints. In the editor you create logic by connection boxes; for example, you have the “branch” node, it receives a boolean expression and it has 2 outputs, one for true and the other one for false evaluation, the flow of the code will go from one output or another depending on the result of the expression, exactly like an if-else statement on traditional programming.

The first thing I coded was the num picker the player will use to put the numbers of the combination. The idea is simple, you will have a collision box to know when the player is next to the picker and everytime the player hits the mouse left button, we will increase the number up to 9, then, it will go to 0. Also, we will need various of these number pickers because the combination will have 5 numbers and every picker lets the player to select 1 number from 0 to 9. To be able to reuse this asset we will create a Blueprint Class, something like a object oriented class that groups code and other assets. In our number picker blueprint class we will have a box mesh, a UI text widget, the collision box and the code. We will be able to instantiate as many as we need and we will be able to access its public local variables to interact with them in the level blueprint.


Honestly, I’ve been coding for more tan 15 years and the mental switch you need to do to work with blueprints it’s remarkable. Not in terms of difficulty, in the end it’s logic flow and it does not matter if it’s a box or a code block, but more in terms of how do you have to do the flow. It’s hard to describe to me, because it’s not something specific. For example, for the num picker you need to increment an internal integer that stores the number on the picker, something that for me was a single line of code ( this.number = (this.number+1)%9 ) transforms in some nodes: a getter to get the value, next increase the number, then get the module and finally store it in the same variable. It can be done in less steps with a Math Expression Node, but it’s an example. What I’m trying to explain is that even when you know how to code the learning curve of the Engine, specially learning where do you have to go in the editor because it’s full of buttons and windows and tabs.

Back to puzzle design, we decided that we will need to teach the player that he needs to find numbers. That’s why we locked all the doors in the initial white room and put a first codelock there. Also this first puzzle is the easiest one, a giant black 35 in the ceiling, only partially hidden due to it’s like an humidity stain. Locking the player also gives us the moment of surprise when he opens the doors and finds the same room over and over again.


Once Carlos told me how the basics of blueprints and the event system I started to prepare the door unlock code. Meanwhile Carlos was working in the assets we will need, the furniture, doors, etcetera. We needed functional and easy to create assets and whats more generic, easy and reusable furniture in the world? Disclaimer, no brand or company funded the creation of our game. IKEA of course! :V

We relied in UE4 vertex painting tint every room, we used a material with a color parameter in some assets, giving us an incredible power to get all the rooms done with a minor impact in performance and a huge time saving. The only texture applied to the assets was a baked ambient occlusion to give them the correct shading.

Finally to create the puzzles we used different techniques. For the distance one is a simple material that changes the opacity depending on the distance from the camera. Something similar happened with the reflection, we have a copy of the same room below and the floor uses a material that changes the opacity in this case with a Fresnel function. We wanted that the details that changes in every room helps the player to find the clue. For example in the light one there is a second lamp, no other room has it, the green room is the only one where the statue is different.

And it’s all, we wanted to do more content, but I’m happy because we marked us a minimum product and we delivered it as we imagined it, but the process was good enough that if we had more time, more content would be done fast, spending again the major part of the time designing new puzzles.

Many thanks for reading, please play the game, rate us and please comment, we need your feedback!

[Almost] One Room Post-mortem – Part 1

Posted by
Monday, December 19th, 2016 6:16 pm

Ludum Dare #36 was very special to me. I was on my town, at 1400m above the sea, with barely no connection to the Internet (only a weak WiFi signal from the town hall, no mobile access). I was alone, and I wanted to use the jam a perfect moment to learn Unity3D. I spent the days before the event day to watch some videos and I was able to complete a little but full game.

By creating [Almost] One Room for this one I wanted to repeat in the sense of learning. But this time I was not alone, I joined forces with Carlos Coronado (@carlosgamedev); he’s the creator of Mind: Path to Thalamus and an unnoficial Unreal Engine evangelist. He is also a friend of mine and one of my clients. Some years ago a guy of barely 16 years came to the gamedev forum I had and asked for a project to join and learn, we made a barricade system for L4D. Now this time it’s me who is asking him for help.

The idea was simple, I’ll “code” (with blueprints) and Carlos will do the art and will show me the basics of the engine and will aid me every time I get stuck and ¡spoiler alert!, it was often.

In fact we have not opened UE4 until the afternoon because Carlos was late and I spent the whole morning taking notes on paper about ideas with the theme in mind. When Carlos arrived I presented the best idea I had and we wanted to spend as much time as we can in the design stage.

We wanted to make a puzzle game playing with the idea of a room escape. For me it’s very important to find a twist to the Ludum theme, to go further than the obvious choice and that’s why I did not want to make a game with a single room. I played with ideas like turning the words, “What’s behind Room One?” or “You’re the room”, tried to think in a twist in the “CounterStrike rats map” making the players not humanoids. Finally we found something in the Room Escape idea that we liked, only one room, but many times.

The initial idea was to be locked in a room like a normal room escape but once you opened the first door you will find the same room again. From this point we started to think how you will need to open the doors, from lockpicks with mini-games to find-the-pieces ones, but it was hard to find something really fun, or something that the player cannot solve by trial and error. And more important, something we can achieve in the given timeframe.

At some point we though we nailed it, the room will be “the same” but in different timelines, past, present and future, and you had to change things in a time to affect the others and unlock the exit door. It was great, but it was impossible to find something readable enough to be solvable and not frustrating.

Time was running out and finally we went back to the beginning and started again to think. Then we decided to follow the KISS principle and we decided to make a simple puzzle game: Find the combination of the exit door. The twist? That the number will be hidden in the room, one number per room on different versions of the same room.

We then started to design how to hide numbers, but I will write about it in the second part 😉

Ancient rolling stone – Sunday devlog

Posted by
Sunday, August 28th, 2016 7:25 pm

Today was a hard day. The morning was invested in finishing some mechanics and UI adjustments and I’ve spent too many time trying to understand how Unity Joints work.

It was not before 17h that I started working in level design. I’ve been able to create 7 levels, half of them are just tutorial ones showing how the mechanics works, but the problems around some puzzles discouraged me.

That’s why I decided to start working in the graphics for the game. I’m a pure coder, and that usually means you have barely no artistic skills. In my case I tried to learn drawing for years and I did not succeed, but miraculously this time I think I’ve been able to create a good theme for my standards.


I’m very tired now and I’m going to sleep, tomorrow will be a hard day, I’ll have to finish as much as I can before submitting the game. It will not be complete, but I think it was a great experience.

PS: Today I took a break from LD by going 1km far away from the town at 1am to take photos of the stars. Next you can find how 2 minutes holding the trigger looks like 😉


Ancient rolling stone – Saturday devlog

Posted by
Saturday, August 27th, 2016 6:57 pm

Before talking about the game I want to tell you how special this Ludum Dare is for me. After two years without holidays I’ve gone to a little town in the middle of nowhere in Spain where I spent my childhood. It’s a perfect place to disconnect from work, to the extreme that my phone provider does not offer service here. Luckily the town has two open WiFi’s and one of them is reachable from my home. For me this is like a “rural ludum dare”. Moreover, for the first time I’ll using Unity3D (in the previous ones I was using a custom Java engine from the friend I usually attend Ludum Dare).

My views for this "rural" Ludum Dare

My views for this “rural” Ludum Dare

That said, I’ve spent my first day brainstorming an writing down something like a gdd-lite for my submission and at the time I’m writing this post I have a playable level with win-lose conditions and some of the components of the game already working in a very basic state.

I’m developing a physics based puzzle game where you’ll have to define some parameters on a stone wheel and then release it. If your setup is correct, then the wheel will be able to reach the goal, if not, it will eventually get stuck and you lose.

I wanted to keep it very simple and not very original on purpose because I prefer to learn as much as I can from the engine rather than focusing on delivering a great game. I’m working alone, I’m not so good with graphics and my Internet connection falls constantly. I’ll try to beat you next time, with the rest of my LD team 😉

Tomorrow I’ll be working on the level design. I want to complete a good amount of them before starting with the aesthetics because my intuition tells me that I’ll need to re-shape some of the elements I thought for the different mechanics (basically platforms, doors and other similar obstacles).


Now it’s time to rest, se ya guys

Neon Level Switcher – Post Mortem – What went well

Posted by
Thursday, April 21st, 2016 5:26 pm

Ludum Dare 35 was the second one for me, as a ludum and as a game jam. The last time I joined forces as a part of DarkLight Team, but this time half of the team had a real-life problem and we were only two coders on the team. Then we decide to join the compo and try what can we do all alone. Neon Level Switcher was child.

What went well


The game is finished

From the first hour I decided to go to a simpler project that I could potentially finish in time. And it was a good idea, because I needed to switch to the jam competition to have 24 hours more to have a nicer game. But in the end, the game was completed, maybe not the best gameplay (see more later), but is playable, graphics and sound complete. I had a lot of ideas, lets take a look:

  • Rhythm game with shape change mechanic
  • Local Multiplayer game with shape change mechanic (rock, paper scissors maybe?)
  • Plattformer with a “shape” protagonist that needs to change to beat situations
  • Pong like game where you can change your shape to change the ball direction
  • Turn based game, every turn you can change your shape to define speed, like Formula D, the more sides, the more speed
  • The enemies change shape every time you shoot them
  • The side count matters
  • Physics based mechanics, playing with the shape you “shoot”
  • You can change your shape to hide from enemies
  • Worms like game where the player can “paint” their bullet to adapt to the terrain
  • Wall of death game, you need to change your shape to fit in the wall that’s coming
  • The shape of the scenario changes, move wisely to not die
  • Finding the most relaxing “shape” in the sofa

I wrote down every idea I had, no matter how hard or crazy it seemed to me, because some times an impossible idea leads to another one and luckily, it could be THE IDEA. I would love to do a rhythm game (I was very involved in the machine dance scene in Spain), but it will be very hard to do when you don’t have any idea of sound programming. Others involved too many mechanics to code them all alone and in the end, the winner was due to the fact the last game in the ludum dare used Tiled levels and it would be easier to me to develop something. I loved to see some of the ideas appeared as submissions :D.

I did the graphics

I love to draw, but loving something does not means that you will be able to do it correctly. The major fear I had when we decided to go solo were the graphics. They may seem simple, but it was a nightmare for me to generate such a simple tileset. In the end, going simple was the best option, sacrificing a “theme” behind the game and hoping you will not need to know why you are a rotating rhombus that moves through blue levels.

My main inspiration was Hexagon, I think it’s a great title graphic wise. But something I learned is that making something look simple implies a lot of work.

It was relaxing

Too many people tie a game jam to an stressful situation. I think is a great error. You are here to learn, to have fun, to go creating with boundaries. But you don’t really need to crunch in a game jam. I want to highlight the “need” verb I’ve used, it’s OK to stress yourself if you want, maybe you want to test how much you can do in 48/72h. In my case, I wanted to finish without wasting resting time, and it was a success. Saturday night I decided to go to play the Doom beta and leaving the Compo even when I had 3 more hours to finish the game. As a result, it was very fun to me, even when the engine failed to deploy the game with 1 hour left to do it.

Day2 – Neon Level Switcher Beta

Posted by
Sunday, April 17th, 2016 5:20 pm

Today it was a relaxing day since I’ve decide to go for the Jam and let the Compo for another edition. I’ve learned that I’m not very good with graphics (not a big surprise) and I spent a lot of time doing and redoing the tileset. Finally I decided a vector-like style since I worked a lot of time with photoshop layer effects and I knew it will give me better results.

The gameplay is completed in its simpler form, it has a difficulty curve and and first iteration of the hub. I had problems because I wanted to go from 400×300 to 800×600 and it gave headaches with re-scaling (due to a bug in the configuration I fixed, please, get used to CONSTANTS for every config value).

Tomorrow I will not have too many time but I’ll try to add some Creative Commons / public domain FX and music and will try to clean the code a little bit to get used to the engine we use a little bit more.

Neon Level Switcher first footage

Posted by
Saturday, April 16th, 2016 4:37 pm

After some hours I’ve been able to complete a very first prototype with the basic gameplay working and end condition. You have to survive by being in a safe (black) place because every few seconds the background map will come to foreground, be sure to move to a good (black) position.

I think this time I will work less hours, now it’s 23:36 here and after playing a little bit I’ll go to bed. I prefer to wake up early and continue adding the HUD, sounds and other effects.

First hours and it starts to shape :V

Posted by
Saturday, April 16th, 2016 8:50 am

5 hours later, I’m starting to see some light. I’ve started late, mainly because the time zone (I’m from Spain). This is the second time I develop for the Ludum Dare, and the first time I do it solo (time will tell if I can arrive for the compo deadline or if I will give me some time and external resources for the jam).

Shapeshift was one of the themes I did not like from the beggining, too many work to do some early ideas I had when I saw the theme. Then, I’ve spent the first hour and a half brainstorming like hell to find ideas that will be easy enough for a programmer to implement, and more important, to draw… because programmer art, you know.

Finally I’ve decided to make something inspired by Hexagon and it’s dodge mechanic but technically simpler.

The initial idea for the game is simple. You are in a laberinth like level and you can move around. In the background you can see another level, and when a short countdown beats, the background map will switch to the front. If you are in a clear tile, you can continue, if not, you’re dead. The more time you stand, the faster levels will switch. Will you be able to move fast enough to adapt?

Next you can see a first sketch of how it will look like, black walls, transparent floor and in the background the next level. You are the red circle and the line shows a “correct movement”.


I had some technical difficulties because I use a custom engine from a friend of mine and teammate on the last LD and I’m not used to it, but now I have a level loaded and I can move around. Next stop, level switch mechanic.

[cache: storing page]