About Bad Sector (twitter: @badsectoracula)


Ludum Dare 22

Bad Sector's Trophies

Bad Sector's Archive

Mini Sprite Editor

Posted by (twitter: @badsectoracula)
Wednesday, December 11th, 2013 4:11 am

Hi all,

I’ll try to make this my first LD after a while (if i don’t feel tired as hell after this work heavy week :-P). I’m not sure yet what i’ll use as a base – probably my engine or maybe my Free Pascal 2D framework (note: the page is outdated, there are docs in the code). Or maybe use MMF2 that i’ve got out of curiosity this week. Although it feels way too limiting and complex to do stuff not thought by its designers (i want to move a sprite 32 pixels at the left if it doesn’t collide with something and i had to set up a whole page of conditions, etc for something that would be an oneliner in a 2d framework).

This post, however, is mostly about a small tool i accidentally did a while ago in VB5. I was just messing around with it for a while, again out of curiosity, and somehow i ended up writing a sprite editor – and a quite good one, if i can say so :-P. At least it beats GIMP for simple sprite stuff, if only because of the tiled view and animations :-P.

Here is an image:

Mini Sprite Editor

Mini Sprite Editor

It also works under Linux via Wine, but i’ve noticed that the BMP saving doesn’t work properly (the custom format – necessary for animations – work fine though).

You can download it (with source) from here.

At some point i plan on rewriting it in Lazarus so it can be proper multiplatform, but so far i’ve found the above to be just fine for my needs.

She Loves You ModKit Released

Posted by (twitter: @badsectoracula)
Wednesday, February 29th, 2012 6:15 am

I know most people are now focused on the MiniLD, but i just managed to find some time to finish and upload a ModKit for my LD #22 game, She Loves You.

An image showing a MOD for She Loves You

You can do great things like this one

This is one of the two things that i promised but so far never managed to make. The other is a new set of levels, but this needs more time :-P.

To install it simply download She Loves You and the ModKit from the “official” site and Runtime World alpha 3 from its own site. Then follow the instructions the sly-devkit-readme.txt file (which basically boils down to extracting the Runtime World and ModKit files over the She Loves You files). Launch Runtime World and you’ll have the She Loves You textures and entities available to play with. The readme file includes extra information about making maps for She Loves You.

Now, i don’t expect people to actually swarm making maps for the game, but if you do, drop a comment here or in the forum:-)

Ludrator: keep track of the games you’ve played and rated!

Posted by (twitter: @badsectoracula)
Wednesday, December 21st, 2011 1:22 am

…also filter by platform 😛

So, i quickly lost track of what i’ve played and it seemed a bit hard to find games that run in my platform (Mac OS X). To fix that i decided to code a solution: Ludrator!

This is just a simple html page that puts a sidebar with all the LD48/Jam games with a nice checkbox near them. Also adds WIN, MAC, LIN and WEB “tags” for each one (based on a small heuristic that seems to work) with checkboxes at the top to filter-by-os.

The checkbox for each game is supposed to be used to mark the games you’ve played/rated. Its state is saved using HTML5 localStorage so you can close the browser/computer and later come back to it and it’ll still be there.


How Ludrator looks like.

You can find Ludrator here: http://runtimelegend.com/pages/badsector/gimme/ludrator/.

There is both a zip version and an online version. Unless you have reasons, prefer the former since the latter will be slow and the former contains the Python script used to make the sidebar (so you can hack it for a new LD or whatever).

Finally, the time-lapse of making She Loves You

Posted by (twitter: @badsectoracula)
Tuesday, December 20th, 2011 5:22 pm

That was hard! It was a trainwreck of failures.

  • First, i had about 143.472 image files captured. That looked a bit worrisome.
  • The images were having serial numbers in the ld22-frameXXXXX.png format. However, as mentioned, there were more than 99.999 images, so half of them were using an extra digit and, thus, not sorted correctly.
  • So i had to write a script to fix that.
  • Then there were a lot of gaps. I’m using the screencapture Mac OS X command-line program to take the shots, but if the screen has blanked out, nothing is saved.
  • So i had to write a script to fix that by using a filler image for that.
  • Then i had to wait for almost a half-day for them to be converted to a (huge) .mpg file with ffmpeg.
  • And after that, iMovie (the editor i usually use and so far has worked well) decided that it won’t support .mpg files.
  • So i had to wait for a few extra hours for the huge .mpg file to be converted to a huge .mp4 file that iMovie can open.
  • iMovie, however, saw through my scheme and decided that, no, it won’t open the file. It didn’t even tell me why – it just acted as if i decided at the last moment to cancel the import process.
  • So i had to search for another editor. While doing that i noticed that all open source video editor for Mac OS X are either abandoned old editors from the PowerPC era that Mac OS X Lion doesn’t support anymore, or experimental ports of mostly Linux-based tools that may work if you are lucky enough and willing to compile from source.
  • Fortunately, i also noticed that Blender, the 3D tool i use, has a video editing mode. Wtf, how i missed that for so long (ok, i had heard of it, but i thought it was some sort of simple annotations or whatever…).
  • So i spent an hour learning how to do video editing with Blender.
  • And finally made the video as i wanted it. That is, i added an intro image and removed the big delays while i was sleeping.
  • Then i had to wait for another half-day (or so) for Blender to export a huge .mp4 file. I hoped it wouldn’t be huge, but it actually was about 2.2GB :-/
  • So i decided to do the conversion properly with ffmpeg to H.264 and MP4 myself. And these formats were mandatory since i wanted to have (a bit of) control over the video quality and YouTube doesn’t seem to mess with the video encoding with these formats.
  • Unfortunately the ffmpeg version i had wasn’t compiled with libx264 support. So no H.264 encoding for me.
  • So i tried to use a version from Linux using VirtualBox since Debian would probably have it an apt-get install away and i was so tired of all of this.
  • After another hour configuring repositories (because, apparently, Debian didn’t have it an apt-get install away due to licensing issues…) i managed to have a x264-capable ffmpeg converting the file.
  • Only it was way too slow. Like, 1fps slow. Making that video would take more than the game itself.
  • So Debian idea scrapped, let’s go back on Mac OS X. And compile our ffmpeg with x264.
  • And thus i downloaded code for libx264 (i already had compiled ffmpeg previously), yasm (that libx264 needs) and a couple of others.
  • I spent a couple of hours just trying to get ffmpeg compiled. Incompatibilities between (default) flags, the installed version of gcc, features, etc and almost no mention of it on the web. Bleh. But i finally managed to do it.
  • And so, yet more hours of waiting to get ffmpeg convert the 2.2GB video to something i can upload…
  • That would be a 415MB video.
  • So, i left it uploading and went to sleep fully tired… and finally:
Making of
“She Loves You”
Ludum Dare #22

Sorry, i couldn’t figure out how to embed a YouTube video 😛

After watching it, i also figured out what exactly was missing from the game:

What was missing from She Loves You

What was missing from She Loves You

Next time i’m going to fix that 😛

She is finished!

Posted by (twitter: @badsectoracula)
Sunday, December 18th, 2011 8:57 pm

Now that the server shows signs of life, i decided to make a little post about the game. Finished just 5 minutes before the deadline and added to the database ~12 seconds before that (…and then i noticed the extended hour thing :-P).

Here is the database entry for the game. Have fun :-).

Ah, yeah. The title is She Loves You. Because she does, really.

The Level Ending Mirror is appropriate for this post: the journey just ended. Well, almost.

It begins here…

Posted by (twitter: @badsectoracula)
Saturday, December 17th, 2011 10:11 pm
FIrst level

First thing you see

I don’t think i have the power to make more maps (there are four now)… i’ll take a break and try to figure out what to do about the sound.

Gameplay almost complete, levels now change, etc…

Posted by (twitter: @badsectoracula)
Saturday, December 17th, 2011 6:48 pm

…now i just need to make them.

She made that for me

She made that for me

Also currently you are a bit immortal 😛

She’s progressing just fine, but i need some sleep

Posted by (twitter: @badsectoracula)
Saturday, December 17th, 2011 2:47 am

Here is a video with her progress so far. She can eat like any good girl, even though she is still running away. But she shows her love.

Me? I need sleep. Hopefully i can wake up before LD finishes. Otherwise, Jam here i come!

This HER fault!

Posted by (twitter: @badsectoracula)
Saturday, December 17th, 2011 1:42 am

It is all because of her!

Her Fault

It is her fault, her doing.

And then, she is just avoiding me.

She really loves you!

Posted by (twitter: @badsectoracula)
Friday, December 16th, 2011 10:00 pm


A Girl That Loves You

She Really Really Loves You

So, yeah, i’ve got an idea for a game :-P. Hopefully i can make it…

So i’m in. Here is my codebase…

Posted by (twitter: @badsectoracula)
Friday, December 16th, 2011 6:48 pm

So i decided to enter this LD – finishing is another matter though since i was never good with deadlines :-P. But there is always the Jam i suppose…


I decided to use the code i wrote these days for viewing/walking around maps made with my 3d world editor in Java and LWJGL. So, as advised by the sages in #ludumdare, i declare here that i will use this codebase. I’m not sure what i’m supposed to do about the 3d world editor, so although i got told that its ok i decided to make an emergency release since the latest one doesn’t include the lightmapper or entity support. Unfortunately i don’t have a Windows or Linux box available at the moment so i can only provide Mac OS X binaries. In any case, in the file below you’ll find my “ld22-devkit”:

http://runtimelegend.com/tools/world/extra/ld22-devkit.zip (4MB)

The devkit contains:

  • Runtime World 1.0 alpha 2.99, special ld22 build (this is a full build, including the docs, example textures, world files, etc)
  • Runtime World Walker for Java/LWJGL (which is now mutated beyond a simple walker and is a -awful- codebase for making 3D games with RTW files)
  • Example code in RWW (Walker.java) for picking up coins and stuff.
  • Prelightmapped rtw file, model, etc for the code above
  • LWJGL binaries for Windows, Linux and Mac OS X (so that the example can be tried right out of the box) and scripts to launch the “game” from Windows, Linux or Mac OS X with proper parameters, etc

Even if you don’t use my codebase you might find the last one useful if you plan to distribute your LWJGL game and have no idea how to do that :-P. If you just want to try the example/test “game”, you can find it here (this is what i’m going to use as a base anyway):

http://runtimelegend.com/tools/world/extra/ld22-jwalker.zip (1.8MB)

And you can watch a video of it here. If you use Runtime World you’ll probably want to use your own entities – for these, modify the entities.lil file from the scripts subfolder. The format is register-user-entity <name> <group> <size> (size can be actually two or three arguments for width/depth and height or width, height, depth).

My personal set of tools, etc is:

  • OS: Mac OS X Lion (iMac)
  • Language: Java
  • Libraries: LWJGL, own codebase (mentioned above)
  • IDE: Eclipse (with some MacVim for non-Java editing)
  • Graphics: Pixelmator, Blender, Runtime World (mentioned above)
  • Sound: ….eh, what ?
  • Video Capture: custom BASH script to make screen captures
  • Video Tools: ffmpeg, iMovie
  • Other Stuff: Colloquy for IRC, Cyberduck for FTP, Slayradio for background noise

[cache: storing page]