About Kvisle (twitter: @kvisle)


Ludum Dare 28
Ludum Dare 26
Ludum Dare 23
Ludum Dare 21
Ludum Dare 20

Kvisle's Trophies

The "Good Guy Greg" Award
Awarded by PoV
on April 27, 2012

Kvisle's Archive

Looking for play testers for Grabitty

Posted by (twitter: @kvisle)
Tuesday, July 8th, 2014 1:34 pm


I’m working on making my Ludum Dare #26 entry (post compo version, better) into a proper game as a side project. It’s starting to mature to a point where it would be useful for me to get feedback from a broad audience.

I’m wondering if anyone in the Ludum Dare community would be interested in participating. This would mean that I every now and then (less than once a month) will send you an email with links to the latest build for Windows, Linux and Mac OS X – and hope that you may take your time to try it out, and tell me how it works, if there are any bugs, what you like, and – especially what you don’t like.

If there’s anyone that would have the time to test, give feedback – I would be grateful if you were to contact me by email (trygve.vea at gmail) or Twitter (@kvisle).


Achievement unlocked: Made FPS from scratch in 48h compo

Posted by (twitter: @kvisle)
Wednesday, December 18th, 2013 10:06 am

I’m quite happy with this LD. I didn’t plan to participate, as I usually don’t have the energy for it in the dark winter months – but I wanted to play around with WebGL so I figured what the heck. Only library I allowed myself to use was glmatrix to help with the vector/matrix math (Thanks Toji, I wouldn’t have pulled it off without it). I also used a single call to jquery, but that was totally not necessary (I change the background color when one gets shot).

In my time zone, the theme is announced at 3 AM – so I got to work a couple of hours before I hit the hay the first night. I managed to get a quad to render as if it was on the ground before me. That was it.

The next day I started making some code that dealt with the level itself – I built a 3d model from an array of strings, which also gave it the old Wolfenstein 3D look. I made some code that allowed you to walk around in the model – adding some poor collision detection code (it’s really bad) – and a door that worked approximately like in Wolfenstein 3D. Then I hit the hay again, this time also at 6AM.

Then the last day, with a little more than 12 hours to go – I made an enemy, some things you can pick up along the way, keycards, doors that require keys, a win condition, a lose condition – all the gamy stuff. The enemies will shoot at you if they’ve looked straight at you for two seconds. The enemies will never walk, as I haven’t implemented any path finding algorithms. With another day, I could probably have done A* or something.

So, at a couple of hours left, the game was complete – I spent the last hour improving a few textures and then I handed it in. My usage of the theme was incredibly poor, and was never mentioned in the game itself; One bomb, one life, one gun.

The reason I managed to pull this off at all, was to a large extent because I’ve worked with OpenGL a lot this year – my spare time project is currently to create a full version of a game based on my LD26 entry. Rewriting it in C++/OpenGL, and making it as good an experience as I possibly can. WebGL is too a large extent similar to OpenGL ES2, and anything you’ve learned from either can be used on the other. Especially understanding matrices have been useful to me.

I’m quite happy with my Wolfenstein 3D-clone, and can now cross “create a fps from scratch” from my bucket list. No matter what people rate me, this is a personal milestone.

All in all, the game has a lot of flaws. No pathfinding, it’s not very challenging, poor collision code, quite short – yet again. Happy :)

Productivity tip

Posted by (twitter: @kvisle)
Monday, October 7th, 2013 10:19 am

Hi! This isn’t directly related to the October Challenge, but it’s something I felt like sharing.

I’m working on creating a standalone version of my Ludum Dare entry from April, and while this has been something I’ve worked on now and then – there’s always the lows. Periods where I don’t get anything done, because I just casually use my computer for everything else – even when I sit down and say “I’m gonna keep working and get something done today!”.

So I thought that, what if I made a small program that monitored if the source code had been updated for N minutes, and then prints a message to my screen telling me to get on it? That was easy enough.

What if it, if I ignored the messages killed my browser and took away my music?

This is a simple shell-script, so it works for Linux, however – it can’t be that hard to get one working for Windows or Mac either:

Here it is

… so, let’s see if I’m able to get out of the unproductive hole I’ve been in for the last couple of months.

BLOB: Post Mortem

Posted by (twitter: @kvisle)
Tuesday, May 7th, 2013 10:58 am

My game does an HTTP-POST every time someone finishes a level, so I can analyze how people behave. It’s quite useful, as I can have live statistics of which level people quit on – I also gather some information about how many times people die on that level.

About half an hour ago, someone finished the game after having it open in their browser for more than two days. I have no idea who this person is, but that kind of behavior warms my heart. <3

So, I've decided that I will create a full-fledged game out of this entry; I've started a rewrite in C++. I'm going to give it all the polish and wrapping that you associate with "proper" games. And I'm going to sell it to everyone who wants to buy it.

Small post mortem:

What went right; Almost everything. Things just ‘clicked’ for me this time. ImpactJS is really easy to work with, HTML5 is nice – and I’ve been working a lot with javascript over the past year, so I’ve grown fond of the language. I’m not a wizard in the art department, but this is acceptable.

What went wrong; There are a few things I don’t like about my game. Those are:

* I should pause the game for 0.5 seconds when the player pushes the button – so the player is able to orient him/herself after rotation.

* I should introduce players to the gun more properly – several players miss the fact that you can shoot in this game.

* I should have made more levels – even though 15 levels is a quite proper amount for Ludum Dare, I feel I should have a few medium difficulty levels before the final few. I should also rearrange some of them. I’m afraid that the difficulty may cost me some points in the end, but that’s OK – I think there should be more challenging (but reasonable challenging) games out there; and that’s what I want to make.

* I should have juiced the game more. I’m happy with the particles, though!

Other than that, I’m pleased.

I made a time-lapse:

Oh, and if you wanna play it, you can do so at http://ld26.trygvevea.com. It’s a bit rage-inducing, but it’s def. possible to finish the game :)

BLOB, my best game.

Posted by (twitter: @kvisle)
Tuesday, April 30th, 2013 2:52 pm

I’m so happy with my entry this time around, just making it is a reward in itself.

It has (by the standards of stuff I make) gone viral, and almost 1500 levels have been played.

For those who haven’t played my game; It’s an action/puzzler where you can manipulate gravity by pushing buttons. You also shoot fireballs. It has 15 levels.

The game posts some statistics about the playing itself, here are some charts I made — as you can see there’s a big increase in difficulty, but some players just won’t accept it! They have to push through;

Did I tell you how happy I am with my game? I’m happy with my game.

I am the in … yes

Posted by (twitter: @kvisle)
Friday, April 26th, 2013 12:14 pm

Last LD I participated in was LD#23 – so it’s been a year.

I’m ready, and planning on making my first web based game this time. My weapons of choice are:

* impactjs
* gimp
* vim
* sfxr/bfxr/whatnot for sound effects, I think.

It’ll totally be fun.

Ludum Dare statistics

Posted by (twitter: @kvisle)
Sunday, July 29th, 2012 2:17 pm

I played around with crossfilter a few months back, which is a neat library for filtering data across different metrics. I figured, the Ludum Dare statistics would be fun to visualize that way. So, not gonna go to deep into what this is and how it works, but here;

* Crossfilter, http://square.github.com/crossfilter/
* Ludum Dare 22, http://comicbookguy.kvisle.net/dump/ldcf/
* Ludum Dare 23, http://comicbookguy.kvisle.net/dump/ld23cf/

It’s just something I made for fun, and you can do whatever you want with it for what I care :)

Raw data:

* Ludum Dare 22, json encoded: http://comicbookguy.kvisle.net/dump/ldcf/minut.txt
* Ludum Dare 23, json encoded: http://comicbookguy.kvisle.net/dump/ld23cf/minut.txt

Have fun. And, I can’t guarantee that this is bugfree, but it looks OK at a first glance.

Helping people get a rateable entry, is it breaking the rules?

Posted by (twitter: @kvisle)
Friday, April 27th, 2012 3:47 pm

I did something that I’m not sure is within the rules or not, but I want to be honest about it..

One of the entries I’ve rated was in a almost unrateable state. It did not provide any binaries, and it had 3 gamebreaking crashbugs.

I fixed the bugs, created a windows makefile, built a windows version of the game, put it on dropbox and commented what I’ve done and where to find the Windows build.


The rules of the Ludum Dare compo clearly states that it’s a solo competition, but what I’ve done are also a part of the exceptions -> You can port to other platforms, and you can fix severe bugs outside of the 48 hour limit. Is it OK if this is done by a different person — just to make sure that the user at least get SOME feedback on his entry, for educational purposes at least?

I’m not trying to cheat for anyone, I have no relation with the person who created the entry — I’m just trying to be a helpful member of the community.

The entry in question is to be found here: http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&uid=11162


I’m in for my third LD

Posted by (twitter: @kvisle)
Thursday, April 19th, 2012 1:40 pm

Will write in C++, use OpenGL, SDL, OpenAL. Target platforms will be Windows and Linux. I hope to cross-build for NaCl and Android later, but I wont make that before the weekend is over.

Declaration of boilerplate code: on GitHub

Tools that I know I will use:

* Editor : vim
* Graphics: gimp
* Sound effects: Audacity / SFXR

Good luck everyone!

I’m in, but

Posted by (twitter: @kvisle)
Tuesday, December 6th, 2011 12:59 am

I’m in, and I’ll probably use the same tools as last time; C/SDL. I may use C++/SDL/Box2D instead – but we’ll see what ideas the theme will give me.

The last two LD’s, I was super-excited, and knew what I wanted to do — this time, I’m mostly confused about what I’m supposed to do. I hope things will pick up when the competition closes in.

SUBJECT:7, post mortem?

Posted by (twitter: @kvisle)
Friday, August 26th, 2011 10:41 am

This is the second post I’m making about the game I made this LD – not been very active on the blog due to the website having its problems. I did tweet a lot, though.

I was very determined to do better than my previous entry this time – which I feel I have accomplished.

What went well:

  • Really happy with my tile work. This went a lot better than I had hoped.
  • The light/particle-stuff worked well.
  • My sound-system worked well.
  • Things were in general pretty smooth.
  • I even made a title-screen that looked fairly decent

What didn’t go well:

  • Level-design. I need to learn how this is done best. I believe that the first two rooms were decent – they did their purpose. However, the other rooms were garbage, and not clever at all.
  • There’s no ambient light in the game – several people have complained about not being able to see the player.
  • Giving too few instructions. I haven’t decided if this is a real problem or not — it is the kind of game where I want you to search around, and try different things. Some people didn’t bother, and some got genuinely stuck.
  • Spriting. I gave up making nice sprites, and just left in the placeholder sprites temporary sprites I made in the beginning of the competition. I need sprite-practice.
  • I took a shortcut on a couple of textures, and didn’t make them the power of two — that was silly, as some people got artifacts. (Hint; One of the textures is the title-screen)

Those who completed my game have been encouraging. I think I could create a larger game, based on this idea. It’s further down the road, though – since I have other plans.

Can I do better? Yes I can, just check out my performance on LD22.



It’s 7 in the morning, need a nap

Posted by (twitter: @kvisle)
Friday, August 19th, 2011 10:01 pm

Got some ideas going on, but I need a break. This is what it currently looks like.

3 hours in

Creating a timelapse in Linux

Posted by (twitter: @kvisle)
Friday, August 19th, 2011 7:30 am


I’ve written a couple of scripts for making timelapses in Linux. It’s fairly simple stuff;

Create a screenshot every 15th second by running the following script in a terminal;


# Takes a screenshot of my second monitor every 15 seconds
# Only have one monitor? Drop the -crop part ...

mkdir ~/img

while [ 1 ]; do
# Uncomment the line below if you only want timelapse of your second monitor, and both monitors are 1680x1050 big.
# import -window root -crop 1680x1050+1680+0 ~/img/LD21-$(date +%y%m%d-%H%M%S).jpg

import -window root ~/img/LD21-$(date +%y%m%d-%H%M%S).jpg
sleep 15

(The script is interrupted by pressing CTRL+C)

Then encoding the images can be done using mencoder, like this;

mencoder mf://*.jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi

If you want audio, add ‘-audiofile somefile.mp3’.


Getting excited (I’m in) [C] [SDL] [OpenGL]

Posted by (twitter: @kvisle)
Friday, August 12th, 2011 2:03 pm

As I’m starting to realize how close it is – I’m getting excited.

I was quite happy with my execution last time (LD20), doing about average – I’m hoping to turn it up a notch.

Will be using the same tools as last time;

* C / SDL / OpenGL / My own basecode ( https://github.com/kvisle/game-basecode ).
* Adding OpenAL for sound.
* Adding SFXR for sound-making.
* Will use GIMP for graphics.

Since last time, I’ve gotten a Wacom – So I can do freehand drawing where it makes sense. Will also prove useful.

Looking forward for it!

Self-evaluation: Cheese Hunter

Posted by (twitter: @kvisle)
Monday, May 2nd, 2011 9:08 am

So, Ludum Dare #20 is over, and voting has started. I intended to write a post where I sum up my thoughts about my own performance.

But first; I want to applaud this community, for being so warm. People are encouraging, and the admins do not accept trolling. Everything is very well organized, and I can’t really see what can be done better. This guarantees for my intent to participate again next LD.

About my own performance;

What went wrong?

I found quite a few bugs in my own basecode, that did cost a lot of time. This is a direct consequence of the basecode being made FOR Ludum Dare, and not being tested on any other real projects.

Basecode lacked some features that would speed up the development. Asset management, a camera, sprite-position correctioning (to be able to easier enter doors when missing them slightly), dialogue system, a standard set of good collision detection algorithms, and probably much more that I can’t recall at once. These are all things that I intend to fix before LD21.

A direct consequence of this shows in my source code, as a great pile of doodoo.

What went well?

I started drawing, and things turned out much better than I expected. I even had an animated main character that worked out decently well – he didn’t get to have an attack animation, though.

I did manage to dedicate the time to do this.

I did finish, and the game is beatable. And I’m very happy for that.

Can I do better? Yes I can, just check out my performance on LD21.

Half-time?! I guess a Screenshot would be in place.

Posted by (twitter: @kvisle)
Saturday, April 30th, 2011 7:07 pm

So, day 1:

* Started well, friends are impressed at how well I’ve been doing.
* A few hours in I started hitting various porting bugs that I had to deal with, and I started to overengineer stuff.

Closer to dinner I decided that I’m going to simplify things – just make stuff work, get this done. It will definitly be a short game, but it will be a game nonetheless. Had some sleep, battled a killer-bug – and started doing some actual progress.

What you see to the left, is the house our main character lives in. What you see to the right, is the dungeon of the game. Due to some limitations I’ve discovered in my tileengine, I wont make more effort at doing overworld – I’ll just design a dungeon, some puzzles and mobs, and a hopefully a bossfight – and the quest should be complete.

Yes, it’s obviously a Zelda-clone.

[cache: storing page]