About Kvisle (twitter: @kvisle)
The "Good Guy Greg" Award
Awarded by PoV on April 27, 2012
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:
… 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.
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 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
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.
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:
* sfxr/bfxr/whatnot for sound effects, I think.
It’ll totally be fun.
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;
It’s just something I made for fun, and you can do whatever you want with it for what I care
* 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.
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
EDIT By PoV
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, 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.
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 spritestemporary 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.
Got some ideas going on, but I need a break. This is what it currently looks like.
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 ...
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
(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′.
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!
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.
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.
Been at it for 11 hours – started off pretty good with pixel art that for some reason exceeded the quality I’m used to make. That’s a good sign. Been spending too much time debugging silly things from my rather unstable basecode – but it’s getting a lot better.
So, I’ve decided it will be an action RPG ala Zelda – an obvious nod to the original source of the theme.
My plan is to work for another 3-4 hours, before I eat dinner and head for bed. When I get up again, I plan to work until the deadline.
So, I’m pretty happy with how things have worked out so far.
Before this LD48 started, I spent the last month or so building up some basecode to deal with tilemaps, sprite animations and created corresponding editors. As a consequence of this, I immediatly started working on my assets.
Here’s a couple of screenshots of my editors, I really feel these preparations are paying off
First time participant.
Will be writing the game in Linux, crosscompiling for Windows as well. Given a day or two extra, I’ll probably throw up a Mac OS X port, too (at least I hope to)…
I’m also working on my own ‘framework’-code, that helps me do basic stuff like sprite animation, tilemap rendering, collision detection, whatnot. This code contains its own binary format for tilemaps, tilesets, and sprite animations – and I also got some extremely ad-hoc editors to go along with this.
For music, if I get to that, I’ll probably make some beats with Hydrogen Drum Machine.
For graphics, I’ll use GIMP.
I haven’t figured out what to do with sound yet, so there’s a chance that my game will be silent – my ‘framework’ doesn’t yet have these things in place. But, still almost an entire week left, right?
I’ll also make a timelapse, using a small shellscript, imagemagick (for taking screenshots every 10 seconds), and mencoder for making this into a video.