Jan 092013
 

The Caps Lock key is mostly just an annoyance. But there are ways to make it more useful. I recently found a very nice script by Gustavo Duarte called How Row Computing which maps Caps Lock as a modifier key that lets you navigate in text Vim-style using H, J, K and L. This is very handy as you don’t have to move your hand back and forth to the cursor keys while typing. It also maps Home, End, Page Up, Page Down and Del to easy accessible keys from the home row.

The script required remapping the Caps Lock key to another key in the Windows registry though, so I started improving it a bit. I added some new functionality and customized it to my preferences. I also added another very handy function that lets you drag anywhere on a window to move it while holding Caps Lock, the way you can do while holding the Alt key on Linux. I got that feature from an article at How-to-geek, changed the key from Alt to CapsLock and added it to the script. Very handy indeed!

Below you can see the default mappings for the script, although it’s easy to change it if you like:

CapsLock binding keyboard layout small_spaceYou have access to all the common keys on the right side of the keyboard (Cursors, Home, End, PgUp, PgDn, Ins, Del) from your home row, which is very handy when typing! Common commands like cut-copy-paste, undo-redo, backspace-delete are also very easy to access giving less hand movement. You can still toggle caps lock if you need to by pressing the Windows Key + Caps Lock.

To use the script:

  1. Download and install Autohotkey.
  2. Download the script.
  3. Put the script (or a shortcut to it) in the Startup folder so that it runs each time you start you computer.

I chose keys that are consistently placed for QWERTY layouts, some keys might have to be changed for QWERTZ or AZERTY. Let me know in the comments if you have any suggestions or comments.

Update: If you like the regular cursor layout I made another version of the script:

CapsLock binding keyboard layout_ALTsmall_space
The cursor key layout should be more familiar than the Vim-style layout to most people, and much easier to learn.

Original keyboard layout graphic by Simon Kaupinmäki

 

 Posted by at 00:35
Dec 182012
 

I recently started using the excellent Sublime Text 2, and it’s awesome. It annoyed me though that you couldn’t open files with it directly from the right click context menu in Windows like you can with Notepad++, so I made a registry file that accomplishes that.

IMPORTANT 1: The file makes changes in the registry, use it at your own risk!
IMPORTANT 2: You need to open the file in a text editor and change the path to sublime_text.exe if it’s not located at C:\Program Files\Sublime Text 2\sublime_text.exe.

Download, (edit if needed) and run this file. Now you should be able to open files and folders by right clicking!

 

Update: You can add a “open with” context menu for Sublime by clicking a checkbox in the installer (I must have missed it). It doesn’t add an option to open folders as projects though, so you can use this reg file if you need that.

 Posted by at 16:56
Jun 172012
 

Pyxel Edit is now in public beta and you can get it at http://pyxeledit.com/

Pyxel Edit is a drawing application aimed at making pixel art. It has features to make it faster and easier to make low resolution art like tile sets for games. It’s made using Adobe Air, runs on Windows and Mac, and is currently in beta.

What’s special about it?
You can draw freeform like in any other program, you can also draw and place tiles. If you have multiple instances of a tile and edit one, they all update. This still works if some of the instances are flipped or rotated. This is really nice when making tile sets, as you can instantly see how all the tiles work together as you draw them. This feature is inspired by the awesome Pixothello and Cosmigo Pro Motion, but taken one step further.

Tileset importing
Pyxel Edit can import images of tilesets or mockups and identify all the unique tiles automatically, which is great for editing and rearranging old tile sets or doing edits of mockups.

Tilemap exporting
The tilemap can be exported to XML or plain text, making Pyxel Edit also useable as a level editor. Just export the tileset image and the tilemap, and you are ready to load it into your game!

How much does it cost?
The beta is free. In the future there might be a free and a paid “pro” version.

Future features
In addition to adding lots of small features, new tools, better menus and polishing the UI, animation support is planned.

Follow @PyxelEdit for updates.

 

Video

 Posted by at 22:47
Apr 232012
 

Another Ludum Dare is over, number 23 to be precise, and my game is submitted. It’s called “Aether” and is a mix of an explorer platformer and missile command, where you have to run through a landscape to reach a mountain with a secret weapon, while at the same time fighting off alien spacecraft.

You can play it here: Play Aether. Have fun!

Edit: Results:

#31 Fun 3.79
#37 Overall 3.90
#47 Mood 3.66
#51 Innovation 3.90
#82 Audio 3.47
#108 Graphics 3.80
#312 Humor 2.47
#354 Theme 3.18
Total number of compo entries: 1072

 

Apr 162012
 

Next weekend Ludum Dare happens for the 23rd time, and it will be the ten year anniversary of the competition!

As you might know, I released an early version of the pixel editor, now called PyxelEdit, for the Ludum Dare community. Even though it is far from complete, I wanted to share what I had because I think it’s cool and could be useful for making quick graphics for LD.

I have not yet decided exactly what to do with the editor. Right now I’m refactoring the code because there is a lot of prototype code in there, the data and representation is not fully separated etc. This will make the code much easier and faster to work with in the long run, but it also means there won’t be any updates for a while (more than small fixes to the LD version if needed).

In the mean time, you can get the LD version of the editor here: http://danikgames.com/stuff/pyxeledit/

Here is a demo video (sligtly outdated):

 Posted by at 11:23
Apr 082012
 

This week I have had a lot of free time, so I started working on a new project. It’s a pixel editor inspired by Pro Motion and Pixothello with some special features to make the process of making pixel art more streamlined and fun. Some of the features can be seen in the screenshot below. The basic editor is working pretty solidly. I plan to work hard on it the coming days adding animation support and probably a lot of other stuff. In the mean time, enjoy this screenshot.

If you have any name suggestions I’d appreciate it. Pretty much anything with “pixel” seems to be taken. :)

 Posted by at 02:20
Mar 092012
 

I made a game called Spot The Odd One, to take part in Blackberrys free Playbook offer. I just want to share this image of the game running on the actual device. It’s really exciting, as I made it using the simulator. It runs pretty much the same, just much smoother. I have realised some of the colors are almost impossible to tell apart though, like the purple and blue in the image, so I will fix that in the next update.

If you have a Playbook, you can get it for free in App World. Let me know if you have any feedback.

 Posted by at 15:39
Feb 222012
 

I needed a profanity filter for the highscores in an app I made, but I couldn’t find anything free that worked the way I wanted, so I made a simple one myself. It’s pretty basic but someone might have use for it.

You need a list of lowercase words to filter for. The one I used is far too big to paste here, but you can find one by searching for “bad word list”.

private static const badWords:Array = ["lots","of","bad","words"];
// Returns a profane word if found, else ""
static public function checkName(text:String):String {
  text = text.toLowerCase();
 
  for (var i:int = 0; i < charReplacements.length; i++ ) {
    var ra:Array = charReplacements[i] as Array;
    text = strReplace(text, ra[0], ra[1]);
  }
 
  for each (var w:Object in badWords) {
    if (text.indexOf(String(w)) != -1) {
      return String(w);
    }
  }
  return "";
}

The function will detect character sequences that look like some other character, to make it harder to bypass the filter. For example, 1 becomes i, û becomes u, |\| becomes n etc.
In this way “Fuc|<” would be detected for instance. The sequence replacements can even be used to identify inappropriate symbols like “(.)”, by converting them to (in)appropriate words if you like. :)

private static const charReplacements:Array = [["@", "a"], ["0", "o"], ["1", "i"],
  ["2", "r"], ["3", "e"], ["4", "a"], ["5", "s"], ["7", "t"], ["8", "b"],
  ["9", "g"], ["|<", "k"], ["|\/|", "m"], ["|\|", "n"], ["ä", "a"], ["ã", "a"],
  ["â", "a"], ["ä", "a"], ["á", "a"], ["à", "a"], ["å", "a"], ["é", "e"],
  ["è", "e"], ["ë", "e"], ["ê", "e"], ["§", "s"], ["$", "s"], ["£", "l"],
  ["€", "e"], ["ü", "u"], ["û", "u"], ["ú", "u"], ["ù", "u"], ["î", "i"],
  ["ï", "i"], ["í", "i"], ["ì", "i"], ["ÿ", "y"], ["ý", "y"], ["ö", "o"],
  ["ô", "o"], ["õ", "o"], ["ó", "o"], ["ò", "o"], ["(.)","boob"]];

You will also need this helper function for string replacement:

// Helper that replaces all "find" with "replace" in the given input string
public static function strReplace(input:String, find:String, replace:String):String {
  while (input.indexOf("find") != -1)
    input = input.split(find).join(replace);
  return input.split(find).join(replace);
}

It works quite well, let me know if you found it useful or have any suggesstions.

Feb 122012
 

Sos at Ludum Dare arranged nanoLD - make a game in 48 minutes. I got the theme RTS and made this. (the theme was random each time you loaded the page but I didn’t realise that until afterwards)
I spent an extra couple of minutes fixing a few bugs afterwards, so maybe 55 minutes in total.

48 min RTS

 Posted by at 12:31