About asiekierka (twitter: @asiekierka)

A brony programmer.


asiekierka's Trophies

Not Recognising Wav In Encoded In Png Award
Awarded by Sos
on December 15, 2010
The "Corrupted-Looking Trophy Images" Award
Awarded by Henry McLaughlin
on December 15, 2010
bunny finger trophy
Awarded by devinmoore
on August 20, 2010
The 'You saw me on IRC' Award
Awarded by pretzelhands
on August 20, 2010

asiekierka's Archive

Welcome to #LDPD

Posted by (twitter: @asiekierka)
Thursday, August 22nd, 2013 12:41 am


(hi-res link upon clicking)

You can’t stop us from doing that. (Of course, the games DURING the Ludum Dare would not use any copyrighted material, unlike this very poster) Also, I hope I’m not going to be alone here.

This is the best LD theme in a while.

Posted by (twitter: @asiekierka)
Saturday, April 27th, 2013 12:42 am

First LD since, like, a year. I have a nifty idea going and I hopefully will finish it despite that I only realized now there’s an LD going on. Yay.

The Melancholy of Right 31, part 2

Posted by (twitter: @asiekierka)
Tuesday, August 23rd, 2011 12:40 am

I guess I could write up how I coded the thing as well. (The thing being my game, also time is shown from 00:00 being the beginning of Ludum Dare. Add 4 hours to get the time in my timezone)


A day or two before the Ludum Dare I realized i’m going to my grandmas, which meant no PC. I was, therefore, stuck with an Asus EEE Pad Transformer – a tablet running a Tegra 2 clocked at 1.2GHz/core. It also had two cores.

Thankfully, someone fixed the build of Ubuntu available for it to support the touchpad, making work on it a few times easier. Granted, the driver was quite experimental, but I used it anyway.

After fixing the WiFi issue, I was ready to go.

06:00: Let’s go!

I downloaded the JDK, then XChat and Pidgin. Configured everything so I could easily and effortlessly work. I also set up scrot to take screenshots every minute. On this part, no problems appeared.

06:50: Coding!

First, I wrote the basic canvas code. Next I added scaling for it (I decided lo-res pixelart is easy enough to draw for me.). It scaled from 160×128  (the resolution of the game) to 640×512  (sorry, VGA screen owners, you’re out of luck).

Next, I drew the tiles. I decided they’re going to be 16×16, creating a tile resolution of… 10×8. Yes. That made everything easier.

Then, I created the code to load tiles.png and render it from an array. Good.


After a while, I added code to make it scrollable. After a few bugfixes, it worked. By 08:40 into the LD (I had breaks, mind you) I drew and rendered the player properly. Finally, I coded a simple mapgen (whose general concept stayed up into the final).


Until 09:30, i was preparing mencoder/ffmpeg for timelapse rendering. Then I took a break. Up to 10:20 i was busy IRCing and IMing, as well as replying to people on /compo. Then, another break.


At this moment, I started adding physics for the player. At 11:45 I was improving the mapgen code.  Then, mostly community activity from 11:50 to 12:30. Finally, another break.


I tried setting up the microphone so I could live stream. That failed (stupid buggy drivers). At 13:00 I was designing the enemy “bug” graphic. By 13:40 they kind of worked. Major IM/IRC activity until 14:20, then a break.

From there, I forgot to timelapse, but IIRC i was improving enemy/player physics code.


Code/IRC intertwinned until 17:00.  Then I released the first beta (of mostly working singleplayer). I showed it off to people, finding bugs, chatting, procrastinating and fixing a bug until 17:45.


(remember, it was 21:45 in my timezone!)


I’m up and running again! Time spent chatting with GreaseMonkey and coding until 27:25, after which I went fully into coding mode. At 27:45 i released another beta on IRC, because why not? I spent time discussing it with people until 27:53. Then, EARLY MORNING LUCKY STAR WAKEUP SCHEME


Until 28:35 I was bugfixing. Then, I designed the “story” title board until 28:50, at which point it was in the game. Then I started work on wraparound and called off singleplayer as complete. Mostly chatting until 29:30, after which I rendered the first part of my timelapse (on an ARM tablet, in “high” quality!) and uploaded it to YouTube.


Hardcore mutliplayer Googling/coding with minor IRC. (I had some knowledge on how to code multiplayer right from a sandbox game, 64pixels, that I made in 2010-2011.) At 31:00 I took another break.


By then I had multiplayer about 50% done. But enemies were a LAGFEST. Too many packets, even for loopback :< Tried fixing until 33:20, then IRC. Fixing/IRCing until 34:15, then break.


Screw enemies, I was trying to get block throwing work right. Of course, I couldn’t, because ENEMIES ATE ALL THE BANDWIDTH (and CPU). Then, IRC from 35:0035:10 and I was forced to go outside for 3 hours.


THE PERFECT IDEA – I made the client do enemy movement prediction! Sure, I had to throw out random movement but IT WORKED! Multiplayer was closer to being completed than ever. Hardcore fixing until 39:10.


Hardcore fixing/online testing until 42:00 ON MY OWN, FAST COMPUTER. Yay!


I realize I made a fatal bug after release. Can’t sleep.


I wake up, realize I can’t fix the bug anymore. Major depression until 49:50, including crying and loss of sanity.


PoV saves the day, telling me crash bugs are fixable. Attempting to fix a few (with lots of breaks) until…


I fixed all but one, released a “fixed version”, then stopped it.



The Melancholy of Right 31

Posted by (twitter: @asiekierka)
Monday, August 22nd, 2011 11:39 pm

(EDIT: You may want to play the game first. It’s a platformer game about throwing blocks on enemies. Timelapse: http://www.youtube.com/watch?v=TNpejFN19pQ http://www.youtube.com/watch?v=E5rtT8qZgyo )

Right! 31 hours of coding out (yes, I was fixing bugs after LD), and I could write up an explanation of how the game worked.

Main.java: It was supposed to run either the Game class or the Server class. That’s about it.

Common Files:

Block.java: Defines the block behaviour. Instead of playing with (co)sines, I decided to hardcode the directions, getting:

This is how real men write last-minute hacky code.

Yeah, it wasn’t as good as you think.

Enemy.java: Enemy behaviour. Falling code was a copy-paste from the player code in Game, and the rest is straightforward.

Map.java: Map code. Also, the most complicated part of the game.

First of all, “if(r>11) enemies.add(new Enemy(this,(i*16)+4,(rand.nextBoolean()&&(currpos<6)?(((currpos-1)*16)+8):((height-1)<<2)+8)));” Try to find out what this code does. DO IT

Second of all, it stored the player movement checking code. That wasn’t half bad for a simplified collision detection attempt, but it could be done easier (and faster (and better)).

Third of all, map painting code.


This shows how hacked it was (I was adding wraparound near the end, mostly).

Fourth of all, I had a very easyway of checking whether a player was on. If they weren’t,


Straightforward, isn’t it?

Fifth and final,


block throwing functionality.

MyRandom.java: A version of java.util.Random with a visible seed. Was experimenting.


Canvas.java: Basic canvas rendering code. Not half bad.

Game.java: My… what? It handled player movement, key handling, ticking map and network code, almost everything D:

First up,



That leaves the key handling mostly alone, other than a trick that made moving faster when jumping, but… meh.


The Integrated Data Sentient Entity, after analyzing the subject, decided that a comment on this subject is not necessary.

Net.java: Fairly sane (but buggy) networking code.


Server.java: Uhh… fairly sane server connection acception code. Except this snippet:


Client.java: Again, fairly sane networking code. Only pretty buggy.

How did I manage to LD without a PC?:

Battleship ASUS (EEE Pad Transformer) running a quickly hacked up Ubuntu. Which I had to fix 6 hours into the LD before I could finally start:

Battleship ASUS in action

Obligatory anime girl album cover on iPod connected to surround speakers included.




What did I learn?:

  • Race conditions will destroy your sanity. ONCE AND FOR ALL
  • Sometimes, generic code is better than making a solution yourself. Not always the case.
  • I should try to plan out work more than “Singleplayer: Day 1, Multiplayer: Day 2” next time.

Thanks for reading. If you tl;dr, :<









Post-mortem IRC conversation

Posted by (twitter: @asiekierka)
Monday, August 22nd, 2011 10:18 am
<Salzkorn> how's your game goin
<Salzkorn> finished in time?
<asiekierka> almost
<asiekierka> but crash bugs were fixable post-mortem
<asiekierka> i fixed all but one until i said "fuck it"
<Salzkorn> call it feature
<asiekierka> the game stops sending data to you every 5 minutes (in multiplayer)
<asiekierka> because you're a piece of shit so everyone tries to escape from YOU and not the infinite map they're supposed to escape from
<asiekierka> THERE WE GO!

Dear judges, keep that in mind while playing my game. Thanks.

Post-mortem: Timelapse!

Posted by (twitter: @asiekierka)
Monday, August 22nd, 2011 5:22 am

Right! So I’ve made a timelapse during this whole thing! It’s split into two parts:

Part 1: Singleplayer. Uploaded during the compo and posted on IRC.
Part 2: Multiplayer. Uploaded a moment ago.

The two songs used in them represent the two anime soundtracks that helped me keep motivated throughout the compo. (Haha)

Computers used:

Battleship ASUS in action

Battleship Asus: Android tablet running Ubuntu 11.04. (AH THE DETERMINATION)

Battleship PC: A quad-core PC with 4GB of RAM, used towards the end of timelapse part 2.

Apps used: gedit, terminal, javac, zip, mtpaint, nano, wc -l, etc.


Timelapse part 1

Timelapse part 2

Right 31 – First beta!

Posted by (twitter: @asiekierka)
Saturday, August 20th, 2011 11:59 am

RIGHT 31 – a ludum dare entry by Adrian Siekierka

BETA 1 – no multiplayer yet! Search for bugs! Please give feedback and remember – it’s made 100% on an ARM tablet

Plot: You’re a Ludum Dare developer who is trying to escape from code bugs! But remember, you cannot ever really escape from them!

Controls: LEFT/RIGHT – move, UP – jump, DOWN – pick up or throw block.

URL: http://64pixels.org/right31-b1.jar

Demo 1

Posted by (twitter: @asiekierka)
Saturday, August 20th, 2011 7:06 am

What’s implemented? Platformer engine. What’s left? Enemies and etc.


Hare Hare Status

Posted by (twitter: @asiekierka)
Saturday, August 20th, 2011 5:07 am

If we can map out all of Earth’s mysteries, We will be able to go to any place we want.


Status Update 10

Posted by (twitter: @asiekierka)
Saturday, August 20th, 2011 2:55 am

(No. I haven’t done 9 status updates so far. You just don’t understand binary.)

Success! I have coded the tile rendering part of the game. And drew some not-half-bad pixel art!

Lessons so far:

  1. Always check if you’re calling things right.
  2. Songs from the anime “Lucky Star” are VERY motivating.

Still coding on an ARM tablet/netbook (Asus EEE Pad Transformer) running Ubuntu (no other choice).

Status update~~ 1

Posted by (twitter: @asiekierka)
Saturday, August 20th, 2011 1:22 am

So, after battling for 6 hours (pre and during LD) with bcm4329.ko, my Android tablet is up and running… with Ubuntu. NO OTHER CHOICE ;_;

So, what am I going to use?

Text editor – gedit
Compiler – OpenJDK-6

Fingered – PaintJoy/Android (cutscenes)
Pixelart – mtpaint/Linux (I’d happily look for something better)

idk? i never wrote a sound API so my game will be SONUDLSES

IRC the Demotivator – XChat
Browser the lesser Demotivator – Firefox (Chrome doesn’t work on my ARM)

GAME TITLE: Right 31
GAME DESCRIPTION: Escape from the game’s bugs in MULTIPLAYER! You will play on an infinite map, with as many players as you want to!

So, thats it! Whenever I raise my MOTIVATION bar to 99%, I’ll start coding this thing.

Ubuntu hates me.

Posted by (twitter: @asiekierka)
Friday, August 19th, 2011 9:57 pm

Right. So I’m doing something absolutely and totally crazy.

I’m going to code my game on an Android tablet (running Ubuntu as there’s no other choice).

Right. Right now I’m reinstalling Ubuntu as this thing is glitchy to the point of glitchiness.

(I’m considering VNCing into a friend’s machine. This thing is evil)

So, Escape? If I could escape from LDing and use my Android tablet for fun, I would!

…Shit that’s a great game idea

(Edit: 1.6GB/4GB of reinstall completed.)

Suzumiya Haruhi no Ludum Dare

Posted by (twitter: @asiekierka)
Friday, August 12th, 2011 9:18 am

So I thought I wouldn’t join LD #21. I already spent too much time working on my own game, and overall, I was too la—

And then I saw her face! (hint: click on it)



Right. So after seeing that, I decided to join this little Ludum Dare thingy. Sadly, I think there are a few copyright rules in so I won’t actually be able to USE Haruhi… Or will I?

We’ll see!

What libraries will I use? Uhh, I’m not sure, probably something obscure again… We’ll see, we’ll see, we’ll definitely see.

I’ll follow up with code/library declarations in a few days.

I dare you to ludum the third time!

Posted by (twitter: @asiekierka)
Saturday, April 30th, 2011 2:16 am

This is it.

I’m going to make a game for Ludum Dare. For real.

…In a game of my own. How’s that for being meta?

It’s dangerous to go alone, take this: http://64pixels.org

If you want me to explain it to you, i idle in #ludumdare. ZSPPixels is a school server – I will be building my game in a private one.

The Very Anthony Disco – badly unfinished

Posted by (twitter: @asiekierka)
Sunday, December 19th, 2010 11:43 pm

I worked on my game and did lots of homework instead of Ludum Daring.
Dunno why.

Here’s the pastebin of the thirty pages that I have finished.


Some notes:

$p[number] starts Page [number].
]p[number] is a link to Page [number].



<GreaseMonkey> do it as a game jam entry
<@asiekierka> No
<@asiekierka> I have school
<@asiekierka> then much more homework
<@asiekierka> in other words, no time today either

I might make a game this time

Posted by (twitter: @asiekierka)
Wednesday, December 15th, 2010 9:54 am

I might make a VIDEO game this time. And finish it, ooh.

– cc65 (coding)
– Notepad (artwork)

Game will run on any platform cc65 compiles to, I think: Commodore PET/16/64/128/Plus4, Atari 400/800, Apple II/IIe.

I only promise C64/C128, though.

[cache: storing page]