Category Archives: News

13 interesting sound design videos

Some really nice ones. Filed for future reference.

Sound wave

UPDATE – some more:

Superforce 1.1

Superforce 1.1 is now available on the App Store. This update brings the following changes:

  • Font rendering quality is improved.
  • Fixed a small visual glitch in menu background animation.
  • Fixed a problem with uploading gameplay statistics to server.
  • Your missiles now automatically target more dangerous enemies.

And here’s a video TRAILER for Superforce:

Font quality

In the upcoming Superforce 1.1 update I stopped using stb_truetype and went back to pre-rendered fonts made with Glyph Designer.

Superforce fonts before & after switching away from STB Truetype

Before & after switching away from STB Truetype

Unfortunately I had some problems with stb_truetype which I wasn’t able to solve. Some characters from some fonts were cut off on the left and sometimes on top a bit, with no reasonable explanation. Also the glyph shapes in general did not have the right amount of sharpness and smoothness I wanted. Perhaps I’m too used to Mac OS X font rendering? Who knows.

I’m sure most people can use stb_truetype properly and I still have high regard for it (and anything that @nothings produces for that matter) but it seems like this one was not meant for me. I’d still like to finish my own font converter someday.

Devastro and Type Raiders Mac apps now signed

To make it easier to launch Devastro and Type Raiders on modern Mac OS X systems, I have signed the app bundles with my Mac developer certificate.

When you first launch them you should now get this:

instead of this:

You could still work around that latter dialog by ctrl-clicking and choosing Open or changing your system preferences to run any app without asking, but this seems nicer.

To sign the app bundles I used the following commands:

codesign --force --verify --verbose --sign "Developer ID Application: Tomas Andrle" TypeRaiders.app/Contents/MacOS/liblwjgl.jnilib
codesign --force --verify --verbose --sign "Developer ID Application: Tomas Andrle" TypeRaiders.app/Contents/MacOS/libjinput-osx.jnilib 
codesign --force --verify --verbose --sign "Developer ID Application: Tomas Andrle" TypeRaiders.app/Contents/PlugIns/jdk1.7.0_21.jdk/
codesign --force --verify --verbose --sign "Developer ID Application: Tomas Andrle" TypeRaiders.app

Thanks to Andy Brice for his useful article about signing Mac apps manually.

GUI editor

As a little diversion from working on Superforce, I added an interactive GUI editor to NLEngine.

Pressing a hotkey anywhere in the game switches to GUI editing mode. In this mode, I can drag any GUI element around. I no longer need to re-launch the game several times and check if I’ve set the correct coordinates. I just move it around with the mouse until it looks right, then press Save and I’m done.

All in about 200 lines of code, with full undo/redo support and SQLite persistence. Glad I took the time to do this. It’s not actually super useful in Superforce because there the layouts are finalized but I’m pretty sure I’ll use it for something later. Like, for real.


Here, buttons are made aware of the GUI editing mode and will ignore input when it is enabled.


The GUI editor just handles the dragging. The layout (x, y, w, h) is then saved to disk and that’s pretty much it.

Debug buttons

Debug buttons

Some shortcuts for testing and debugging Superforce:

  1. Die
  2. Win
  3. Slow down time
  4. Collision detection overlay

Wouldn’t it be great to have #2 and #3 in real life? Or #4, when coming back from the pub?

Level editor

Devastro had a built-in level editor and it was the best thing ever.

Devastro level editor

For Superforce I did the same thing. Putting extra time into making an editor is paying off. Making levels is really fun.

Superforce levels use tile-based maps with freely moving objects on top. The editor has three modes to allow me to edit everything in a single view.

  1. Object editing mode – for placing enemies and pickups on the map. Objects can be selected and dragged around.
  2. Tile editing mode – editing the map itself. The map is tile based. I first tried to use Tiled for editing the map but the TMX file format is too complicated for my needs and the workflow was really awkward.
  3. Collision mask editing mode – editing materials for tiles. I can draw with a “grass” brush over one tile and all the tiles of the same type get updated instantly. The mask is used for collision detection (water vs. terrain) and also for creating visual effects. Bullets hitting water create a little splash; when they hit grass, a little bit of dirt flies up; hitting a metal object creates sparks etc.

Pressing “P” switches into playing mode, so I can playtest immediately. ESC resets the game and goes back to editing mode.

The user interface is based on the IMGUI concept: all UI elements are rendered and evaluated at the same time and it’s all done on each frame. There are buttons, lists, draggable items, multi-selection for objects, undo/redo, native Mac OS X dialogs for saving, keyboard shortcuts etc.

Object editing mode
Tile editing mode
Collision mask editing mode