About TMKCodes (twitter: @TMKCodes)


Ludum Dare 33
Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29

TMKCodes's Trophies

TMKCodes's Archive

In Since 29

Posted by (twitter: @TMKCodes)
Monday, August 17th, 2015 12:12 pm

I’m kind of getting bored of writing these in messages.. Since Ludum Dare 29 I’ve been trying to participate in every Dudum Dare. This will be my 5th and I will be using Vim, Go, SFML, and Krita/pinta and LMMS.

Live streaming programming

Posted by (twitter: @TMKCodes)
Wednesday, April 8th, 2015 3:02 pm

Hey ho. Lets go. Only nine days  for LD32. Well that’s not what I’m going to write about. Since LD31 I was thinking about live streaming programming, but I’m not a full time game developer. So I have been looking and looking for alternative to Twitch which allows live streaming programming. You know Twitch allows only game related programming in their terms.

So yesterday I found the service. Livecoding.tv is live streaming service meant for every kind of programming. I’ll stream on twitch my Ludum Dare participation until Livecoding support has been added, but I’ll start to live stream mostly all of my programming at Livecoding. Just to let you know if you have been looking for similar service!

I’m so IN!

Posted by (twitter: @TMKCodes)
Tuesday, March 31st, 2015 9:56 pm

This will be my fourth Ludum Dare and I am already very excited.

This will be my toolkit:

Language: Go
Library: SFML
Text Editor: Vim
Graphics Editor: Pinta
Sound Effects: sfxr
Music: LMMS

In my previous entries I did not have any music. This time I serously want to add some music just because I can. Yesterday I started learning to use LMMS and this is what I have made for now. Seriously much more fun than programming.

I will be livestreaming my participation at twitch.com/tmkcodes. You can follow me at twitter @ToniKorpela

Lessons Learned in LD31

Posted by (twitter: @TMKCodes)
Tuesday, December 9th, 2014 5:57 am

First and foremost. I will make sure I will not have any parties in future Ludum Dare competitions. Enough alcohol will make me unable to continue programming after the party and hangover is something which almost disables my ability to work mentally. Though drinking some beer slowly while programming can make the time much more fun.

I have to sleep before the theme is announced. I don’t want to be awake for six to twelve hours before the competition starts. Next time I will seriously get that sleep and Then I can most likely do the Compo with  ~20 hour programming + 8 hour sleep + ~20 hour programming. Though I do not calculate for eating and smoking time there. They are the small breaks in the ~20 hour programming streaks.

I need to build my games for Linux, Windows and possibly for OS X and test if the games actually run in fresh installations. Having dependancy issues causes problems, because then the game entry will have ton of comments that it does not run and we have like maximum of 5 minute attention span to test and rate a game.

Lessons probably to be learned. I most likely need to rate few more games to get some ratings for myself. In previous Ludum Dares I only rated few games.

Progress Report 8 am GMT+2.

Posted by (twitter: @TMKCodes)
Friday, December 5th, 2014 11:11 pm

It has been four hours since the start of Ludum Dare 31. I got quite annoyed that Snowman was not voted as the theme. Though Entire Game on One Screen did fit one of my game ideas for Snowman. It was duck hunt style snow ball throwing game. You throw snowballs at snowmen before they throw snowball at you.

For now I have one snowman drawn and I can throw my snowball at him. The snowman does not function yet, but that does not require much code. When I have the snowman functional I can think about adding more snowmen and about things how they can win the player.

Here a snowman appears.
Screenshot from 2014-12-06 08:03:36

You try to throw a snowball at him.

Screenshot from 2014-12-06 08:03:29

If you don’t hit him he will most likely throw a snowball at you and you lose.

I’m in.

Posted by (twitter: @TMKCodes)
Sunday, November 30th, 2014 9:59 am

Yep I am again in the Compo. This is my third time taking part in the Compo. This time I will not try to join the Jam, because last time my Compo programming time was just about 5 hours and my graphics artist for Jam did not deliver.

I am not sure yet which language I will be using C++ or Go. That is to be seen.

This time I will be compiling for Windows, because now I have the ability to virtualize Windows on top of my Arch Linux development box and I have set up development environment in virtualized Windows 7.

Even though I am not sure which programming language I will be using I am certain that I will be using Simple Fast Media Library.

Dare progress report.

Posted by (twitter: @TMKCodes)
Saturday, August 23rd, 2014 7:30 pm

Hello Ludum Dare guys..

This how far we have gone in 25 hours..



That is a screenshot of what I have programmed today. It is much more complex than the picture tells. The white area are tiles which are non collideable. The red area is made of tiles which are collideable. The yellow rectangle is kind of the player currently which can move around. Currently the red area does not block the yellow triangle from moving which allows the yellow triangle to move to the red area. The collision calculation is there, but I have not made it to disable the movement yet. If you notice the another small rectangle, the white one. It is another movable object, but it can not move other objects. Then again the yellow rectangle can push the white rectangle aroound.

Now the funny stuff.. That white/red area tiles are formed from 3 x 3 maps which have 6 x 6 tiles. Tiles are currently same size as the white and yellow triangles. Very much thanks to Winterblood for helping with some coordinate math.

TileWindowPositionX = (TileMapX * TileWidth) + (MapWorldX * MapWidth * TileWidth)
TileWindowPositionY = (TileMapX * TileHeight) + (MapWorldY * MapHeight * TileHeight)

If someone is great and would reverse those two so that I can get TileMapX, TileMapY and MapWorlX, MapWorldY. I can manage without it, but it would make collision detection between world and entities much faster.




These rough pictures are done by my jam teammate and probably tomorrow well have them in more detailed form for me to add them to the game.  I don’t understand much about these graphics other than how to load them and draw them on the computer screen.

The following LD30 picture has been drawnby myself with Krita the Linux digital painting software. I’m going to include it as one of the game’s bootsplash.


I hope everyone is doing great! It’s time for me to go and sleep a bit.


I have a math problem

Posted by (twitter: @TMKCodes)
Saturday, August 23rd, 2014 8:39 am

I want to build tiled world wich has maps and those maps have tiles. I have hard time calculating the tile window positions from the world height, width and map x,y and map height, width and tile x,y and tile height, width.


I have tried quite few things to calculate tile x to window coordinates.

I know that I can calculate one map by doing

xposition = tileX * tileWidth – tileWidth;
yposition = tileX * tileWidth – tileWidth;

I can not get it right when calculating with world. Any help?

My LD burger..

Posted by (twitter: @TMKCodes)
Friday, August 22nd, 2014 9:59 am

I bought a ready burger and put some mega death sauce into it. I also bought my weekend programming beer Karhu III.

This is damn hot to wait for Ludum Dare to start..

easy mega death burger

We’re in!

Posted by (twitter: @TMKCodes)
Tuesday, August 19th, 2014 3:51 am

This will be our 1st LD jam. This will be my 2nd LD and my teammates 1st LD.

Code: Will be written by me in C++ and I will be using Simple Fast Media Libary version 2.1. My editor of choice is Vim, because I just love it. You can find my pre-jam-code from github.

Graphics: Will be drawn by my teammate in 2D pixel or vector graphics. I do not know his editors of choice.

Audio: Effects will most likely be done with either sfxr or bfxr. Don’t know if we will have some music.

Platforms: The main focus is to compile for Linux, but if I get my hands on Windows or OS X I will compile for them too.

Stream: I will be streaming my programming part in http://www.twitch.tv/TMKCodes I am sorry I will have audio and connection problems.

I hope everyone has fun!


Frozen Solid..

Posted by (twitter: @TMKCodes)
Saturday, April 26th, 2014 12:31 pm

My first Ludum Dare game basic functionality is working.. You may understand why I call this game Frozen Solid from the following screenshot.



This my first platformer game ever. I know it sucks, but it’s kind of cool. The goal in the game is to reach the surface of the frozen planet. The player has 20 uses of fire to melt some of the ice. Reaching the surface can be quite easy as the planet has quite low gravity, but if you run out of oil you will stay beneath the surface and never get out. There is another problem. You have only limited amount of ammunition and spooky ice golems will haunt you.


  • Map generation is done as you can see from the picture.
  • Player movement is done, but kind of buggy..
  • Player can melt ice by using his torch.
  • Player can collect more oil from teh dark frozen ores.
  • You can collect closest oil ore if you do not have oil for torch.
  • You can swap your torch to pistol and assault rifle, but there is no weapon sprites yet or bullets flying.
  • There are no monsters lurking around yet.
  • I also may build it so that there will be water when the ice is melted and it will freeze soon back.
  • I may give the user more characters to play with, but that’s if there is time enough.
  • There is no GUI yet, because that will be rushed when the clock is running out of the competition.
  • The world loading is not yet complete, because currently it loads only 3×3 maps where you can fall off.
  • No audio yet either.

Anyway I’ve had quite fun programming my first Ludum Dare game, even though twitch streaming script keeps crashing and my microphone keeps crackling.. 😀


Hello World, from a newbie!

Posted by (twitter: @TMKCodes)
Friday, April 25th, 2014 12:30 am

Hello I am in, I was in already since I watched some of you guys on last compo. Though my journey to test my newbie game development skills started quite ugly. I seriously forgot when the jam was going to happen and realized to check the site when there was only around 1 day and 20 hours on the clock.

While watching Notch to use dart last time I decided to try my hands at Go, because it has become one of my favorite programming languages even though I don’t have much time to use it. So when I saw that clock I seriously started preparations. Checked that glfw3, go-gl gl and glh worked, but then I realized we still do not have good audio library for Go other than sdl-mixer. Well I hit my head to a wall and went to sauna with few of my friends.

I realized there’s two options I could do. Drop Go and look for another option or take a crash course on SDL, because why to use only sdl mixer when you can use everything it has to offer. Then I remembered there is some easy to use python game library named pygame. Since then I have not slept, because I’ve been playing around with pygame features and ton of reading. The funny thing is I’ve never actually programmed with python more than few lines to test it around and it’s just so damn simple to learn the language while reading examples of pygame.

Anyway my software development toolkit is Vim and Git in Terminator in Arch Linux. Though I probably will have to do some art so, I will rely on Pinta even though it’s kind of buggy. I also have to thank the Ludum Dare community for sfxr, because otherwise my game would be soundless! These last few hours I’ve tried to go to sleep few times, but I am just so damn exited that this will probably be 48 * 2 sleepless hours. I can’t even count that in my head anymore, but luckily listening Pantera is quite refreshing! I can always make some lovely black coffee.

[cache: storing page]