About silentlamb (twitter: @loginavailable)


Ludum Dare 33
Ludum Dare 30

silentlamb's Trophies

silentlamb's Archive

Day 1

Posted by (twitter: @loginavailable)
Saturday, August 22nd, 2015 5:51 pm

Hello Ludum Dare-ers! I hope you’re enjoying both compo and the theme. Day 1 is almost done so let me summarize my work today:


  • Testing custom engine for the first time; not working perfectly, but not as bad as the last time.
  • Main character animations and some static assets
  • Integration with Box2D. Tons of stupid issues to resolve. Good lesson.
  • Loading level from .png files.

TODO for Day 2:

  • Enemies: path finding, very simple AI
  • More gfx/sfx assets
  • Rendering optimizations and fixes
  • Juicing the game up (screen shakes, explosions!)
  • Design more levels and simple plot structure
  • Come up with the title…

Not sure what’s going to be dropped. I guess it’s the music and more polished assets again.


I’m in for the 2nd time

Posted by (twitter: @loginavailable)
Thursday, August 6th, 2015 3:04 pm

Hello fellow gamedevs!

My first time (LD30) was a great experience and I really wanted to participate again. And I’ve got opportunity to join this time!

My goals for this LD are quite similar to the previous ones:

  • Finish a playable game. That’s everyone’s main goal, so not much to say.
  • This time I want to focus on introducing concept of the game to the player, so he or she won’t get lost. Last time it was a total failure. Players didn’t know what was the goal of the game, nor how to control the avatar, nor what are rules to the game.
  • Keep visual simple, but of decent quality. If the topic is right I might even try to use a really simple shapes (circles and rectangles). The main focus is going to be on a good mix of colors, and little things like gradients and shadows. Last time I spent too much time creating unused animation.
  • More fx sounds. Sound is a great tool for the feedback and to make the game feel alive. I hope I won’t mess the API this time and use the valid volume ranges (0-100 instead of 0-1). My tool of use: probably sfxer.
  • Music. Any music. I’m not a musican at all, but since the beginning of this year I’ve been working in the audio/DSP related project. If it’s possible I’ll borrow MIDI keyboard from my company for the weekend to motivate me. The tool of use is going to be Milky Tracker, unless I find something easy to use.
  • I have no idea what theme is going to win, but if possible I’m gonna try to make something fast-paced. Last time I tried to make clone of “Ugh!” game. This time again I’m gonna stick to already explored concepts. It’s still to early to me to create anything original, I’d rather focus my work in other fields.

I’ll stick to the tools I know well, so once again game is going to be done in C++11 and SFML with Box2D or Lua, depending on the theme.

I wish you all good luck at the LD33!

Node54 – final thoughts

Posted by (twitter: @loginavailable)
Saturday, August 30th, 2014 1:59 am

In the previous post published during competition, I’ve described my background and reasons to participate in Ludum Dare. This time I’d like to
talk about conclusions that came to my mind after finishing LD30 entry and receiving feedback from various people.

My goals

  • Finish a game. This could be the single goal because this is the main reason I’ve joined LD
  • The game should be simple enough so it might be done by someone having no experience in gamedev. This means I wanted to use existing idea because having no experience in gamedev means I won’t be able to finish the game if I tried to do something too original.
  • The game should not have “raw” visuals
  • The game should have some kind of audio: sounds of sfxer + a simple music in the background
  • The game should be fast-paced and the goal for player is to finish it as fast as he/she can
  • The game should be looking polished; it should have bindable keys, and reasonable amount of juicyness
  • The game should have possibility to be improved when LD30 is finished

node54_levelOne of the Node54 levels.

What went right

  1. I’ve finished playable game. I wasn’t sure I was good enough to actually finish a game. I’ve tried thousands of times but every time it stopped being a game engine instead of actual game. Node54 is real and I’m very happy and proud of myself.
  2. The game doesn’t crash. When it works, it works. It doesn’t look to have much bugs expect the collision issues and sticking to walls.
  3. The game is not a kind of beauty, but it also doesn’t look bad. My goal of having not ugly visuals has been fulfilled. Friends told me that the game background with irregular squares looks really nice when compared to ideal squares of walls. The best thing is that I’ve made it for about 4-5 minutes. Gimp -> pick blue color -> create clouds from filters -> motion blur -> create mosaic from filters. That’s all!
  4. I still want to improve it, I got plenty of ideas so further development will be continued for sure. Now that I have already a playable it’s gonna be much easier.
  5. I’ve learned a lot. I’ve improved some technical skills as well as mental ones. Finishing this game gave me enormous amount of confidence and motivation. I’ve learned the importance of having 10-30 minutes long breaks from a work. Proper amount of sleep is also substantial. The best thing about our brain is that when we sleep it doesn’t fully shutdown. It’s resting in a standby mode in which it dumps a lot of garbage thoughts. When you wake up (after morning coffee of course) it contains with thousands of ideas what to do next and how to do it. If I wasn’t sleeping for at least 6 hours every day, me rate of work would be significantly slower. I also wanted to to let it go on the second day. My code was so much of garbage that I couldn’t implement anything I wanted. So i thought to myself: time for a shower and some hot beverage. It helped. I refactored few critical “god” classes and everything started to work as I wanted it to.
  6. Linux port which I haven’t planned. The good thing about using a wrapper lib like SFML is that porting is very simple. The code is almost not touched (almost), and the only thing you need to resolve is compilation and linking to be finished successfully.

What went wrong

  1. I wasn’t quite aware of how little time I was given. My first idea for the development of Node54 was to implement physics (movement + collisions) by myself. By the end of day one I was having movement of poor quality and no collision at all. When I was thinking on the collision module design I realized that it’s going be very, very thought to finish. So many edge cases, so many debugging. And then I read in some social media post that this guy has something playable thanks to Box2D. I heard about this library but that’s all. So I’ve decided to give it a try. Manual was kind of well-written, so I’ve managed to finish collision system. What went wrong? I was learning Box2D from scratch and due to no experience I wasn’t aware of several issues. First of all, visual debugging. If I could prepare it before LD it would be much easier to resolve issues related to pixels->meters conversions and not updating Box2D/SFML positions. Next thing are issues with friction. Walls in Node54 are simple rectangles. This means that friction attached to them is the same horizontally and vertically. Because of that player sometimes stick to walls. If I divided every block to 4 triangles I could set different friction to different part of the wall block. Another thing is collision box of the player. I’ve used simple rectangle because I wanted to replace this temporary drawn blue guy with something better. The ide was to add a frame to look more like a moving platform. I didn’t have enough time to have it done.
  2. Temporary visuals. There is a saying in software development, that temporary solutions are the most persistent. I really wanted to make it more pixelarty, unfortunately my pixel art skills requires quite a long piece of time which I could not afford.
  3. Poor audio. The only sounds I’ve added to the game were simple samples generated by sfxer. Unfortunately I haven’t read the documentation carefully, so instead setting volume within the range of (0.f – 100.f) I used (0.f – 1.f). This means that sound cannot be heard. I wanted to create some chip tune music in Milky Tracker but again: no time and no skills to make it fast. I definitely want to improve that in the future.
  4. No guide for a player what the game is about and how to play it. For me it was obvious that I move using arrow keys and when you want to move up you need to push yourself from the ground. It was also obvious that when player is given too much of speed it’s going to crash during contact with walls. Player don’t receive any feedback and is not given any guide of the rules. He doesn’t know that he has to pick cargo boxes of a color and deliver it to the flag of same color. He doesn’t know that to pick a cargo he needs to press spacebar key. He doesn’t know that when you pick a cargo it cannot be dropped until delivered. A lot of little things so obvious to me.
  5. No juiciness in game. No animations. I’ve skipped animation part because I thought that it’s going to take too much development time from me. So everything is static. In my engine I don’t even have a class for animations. I started to drawing some animations (explosion which is present in the assets folder) but it only took some time and didn’t make it to the final game. There is no screen shake when player dies. There are no particles when the player starts moving. This little things that make every game look polished.

GameAtlasTileset from the game with explosion animation which hasn’t been used.

What next?

LD30 entry is finished so now it’s plenty of time to resolve every issues and implement every feature I wanted. To make this game look the way I want it to look. I’m going to start a project devlog thread on TigSource forums if you are interested. If you want to give the game a try, here’s the entry page.

Let’s meet Node 54

Posted by (twitter: @loginavailable)
Saturday, August 23rd, 2014 8:36 am

This is my first time posting anything here so let me introduce myself.

I work as a software engineer but my job has nothing to do with game development. I’ll work on various project related to Android platform. When I got home there’s not much time to do anything related to programming as my 1-year old son demands so much attention, so when he is finally sleeping I have no energy left to sit in the dark room and play with hobby programming.

But I love game development. I read tons of stuff. I try to think about various algorithms or design patterns that might be used to resolve some problem that bugs me. The problem is, I haven’t finish anything yet. All of my game development stops on the engine.

So one day, looking at the calendar I saw that my wife with son are going out and they won’t be at home for the whole weekend. And the great thing about it is that the same weekend belongs to LD30! So I thought to myself: why not try to sign in? And here I am.

So after 10h of design and development (inkscape, gimp, pyxel edit, vs c++ & sfml lib) I’ve achieved the following state:

  • Simple rendering engine using stack states is done
  • Resources management (textures, fonts) is finished
  • Level loader that uses .png files as its input is finished
  • Level mechanics
  • Simple assets are finished: menu background, game background and

Still to be done:

  • Collision detection, this is main mechanics
  • Player movement based on gravity
  • Audio effects & Music (there’s gonna be no music probably as I don’t know much about this topic)
  • Sprite polishing
  • Better input handling: Joystick support + rebindable keys
  • Maybe (big maybe) PCG-ed levels

So nice to meet you guys!


[cache: storing page]