The designer developer

As a full-time iOS developer, most of my time is dedicated to front-end, dealing with designs and implementing them in an App. Someone designs and developers make it real. It works most of the time. We could say both dev and designer need to speak “UI” in order to interact between each other.

One way to improve communication is to have a designer learn about programming and viceversa. I tried with the classic designer tools: Illustrator and Photoshop. BUT they are way expensive! A free alternative is GIMP and Inkscape. GIMP is ok, but Inkscape it kind of clumsy.

Finally I learned about Sketch. Is a design app focused on UI. It feels intuitive and at the time Sketch 2 was only $49 dollars which is a fair price for all the available functionality. I designed some UI and started pushing how far I could use the app.

I was watching an anime, Last Exile, and decided to do a quick vectorization of a character. It was quite easy and the results were better than expected.

Tatiana TatianaBase

As a result I started making my game art in Sketch. Mammoth Monkey Mole iPad remake is all made with this tool and I am happy with the results.

Mammoth Monkey Mole – Post Mortem


Every new Ludum Dare, I feel more prepared. I know more tools, improve my workflow and improve in game making. For the first time in my LD participation I found some else crazy enough to share his weekend with the common goal of delivering a video game.

Day 1

I had a feel that Connected Worlds would be the winner theme. We were stuck in traffic when the theme was released and to my surprise, Connected Worlds was selected. We spend the first 4-5 hours discussing game mechanics, searching for reference games such as: Zelda, Lolo, Guacamelee, among others.

Usually a puzzle game is something I avoid because of having to program the rules and also design the levels. This time participating in the jam and also having a partner we decided to go with it. Designed the characters, the basic movements and some special abilities for each character.

Our timezone allows us to start friday night about 8pm, which is a great advantage.

Day 2

I started coding the game and Iván started with the level design. The first approach was to move using mouse click to select the destination tile. This was good, but felt slow and we decided to change it to use keyboard. The game now used the arrow keys to move.

Programming was taking a lot of time and I feared we may not be able to add all the features we required. We then made a priority list with all the rules required to get the most levels with the least features implemented. I started tackling each item one by one. By the end of the day I was worried the monkey still could not jump, but decided to sleep and try again the next day.

Day 3

Started with the monkey jump and it was implemented. It took about 6 hours more to get in the rest of the rules, all the planned features were programmed. We had a playable, yet ugly game. Since the graphics were not helpful, solving the puzzles was extra difficult.

Spend the rest of the day creating graphics, while Iván started with the music and sound effects. Also some testing and lots of bug fixing. By this time we had 12 puzzles.

Delivery day

This day we worked remotely. I had a free day from my day job and spend most of the day polishing. Added main screen, the level names and fade out transition. Added the pending SFX for switches and other items. Added the 13th level and submitted to the site.

After delivering spent some time playing other LD games.



IDE: WebStorm
Great for javascript writing and debugging. It includes a Chrome plug-in to quick deploy and debug.

Audio Edit: Audacity
Really useful to crop audio and edit pitch or tempo.

Version Control: Git with SourceTree
Having the game under version control, means you can experiment freely without the fear to break something. Really improves the workflow.

Art: Pixen + Pyxel Edit
Pyxel Edit is great for tile design and selecting palette colors. Also used Pixen for quick edits.

More about Game Engines

Most of the time choosing a game engine always give trouble. I guess it is a newbie mistake, to try to select the game engine before thinking in the game, instead of the other way.

I have fallen on that trap several times, jumping between engines and never making a “big” game other than games for jams.

Here are some links that may be useful if you like me, jump between engines:




Switcher – Post Mortem


It is always good to make an analysis after Ludum Dare submit has ended. It is the time to check on what went right and what wrong. To repeat the good and avoid the bad. Sometimes bad choices can get you good results, but it is not common.

About the theme: Beneath the surface

Thinking about this theme I first thought about sea creatures attacking boats and living below the surface. I had some ideas of that though, for sea creatures a Cthulhu destroying boats. For Living below the surface a post-apocalyptic survival. I liked them both. But I though I could ran out of time if I wanted to even complete one of those.

I finally decided to an endless runner with a twist. You are the enemy, it is not because you are the bad protagonist, it is because the protagonist is different. The world fears different.

The bad

The 48 hours compo is extremely exhausting, at least for me. I can not sacrifice sleep hours since at the end of the compo I still have to go to my 8-5 day job. Instead of using the 48 hours I ended up using maybe just about 20.

I tried also a new engine Phaser to deliver a web game. It went smooth most of the time, except by the one time I hit a bug and waste 2 hours. If I had practiced more those two lost hours could be used in polishing the game.

The last show stopper was when I was about to deploy the final version. Compressed my zip and upload to just to have it fail with an error of zip containing more than 500 files! I had only about 20 files and didn’t understood what happened. In the end it was a dummy error. I was using git as version control and I was zipping all the git files as well. About another wasted hour.

The good

Phaser was definitely a good choice. It allowed me to deploy fast and deliver to most of web viewers the game. Accessibility is king. For voting since I have a Mac, I can not vote on Windows games and also have some trouble with Java games. I however had no trouble running flash/hmtl/unity web games.

Designing on pixel art was also good, I have been doing pixel art for almost 2 years now and I am happy I have reached the point to finally release acceptable pixel art, at least pixel art that players can enjoy.

Version control was definitely a great asset. Other games I have delivered for LD were on game maker, which greatly difficult the versioning. This time I was working on pure code and versioning is a bliss.

Improvement Areas

Music is missing from the game, I didn’t had enough time to compose something or look for the right audio effects. For the next game I will try to make time for this.

Polishing was also a missing point. I did some polishing but not as much as I wanted. I think the game should be ready, not just feature complete, by the first 24 hours. At least the code and art. Then try to get some feedback with friends, family, or someone and adjust and polish the game the next 24 hours. A really cool game can be killed if it is not polished enough.


Language/Engine: JavaScript/Phaser

Version control: Git

Text Editor: Sublime 2

Pixeling: Pixen

Debugging web browser: Firefox


You can check my Ludum Dare compo page for Switcher, vote my entry, read comments and even download the source code to see what is inside.


Game Mechanics

We game designers often struggle with simple game mechanics. We think we know what we want and on implementation it wasn’t as good as we had in mind. Other times we are just reinventing a way of doing something.

I have used Phaser game engine for almost two weeks and I am still impressed by the ease of use and nice performance.

To make things short, there is a web site which I like that involves both Phaser and game mechanics:

Extremely useful for web game developers.