Johan Peitz - Let's make SOMETHING


Bee’s Knees Bees

In an evil scheme to get more Twitter followers I arranged a small raffle where I would make a game for the winner. The winner was @ZoeQiunnzel (congratulations!) and she asked for a game about bees.

Initially my plan was to spend two hours making the game, but by then the game was only half done so I spent two more getting it more or less to a complete state. No harm done.

two hours in


Anyway the result is a bit weird I think, but quite playable. :) A fun exercise before next weekend's Ludum Dare.

Let's make honey!

Please enjoy the life of a bee swarm now!

My best result is 873. Can you beat that? ;)



Pixelizer 0.4.2

I just pushed the latest version of Pixelizer live on github! No game changing things, rather a few tweaks and useful additions and a slew of fixes mostly related to nested entities. Full changelog below.

Next version of Pixelizer (0.5) will focus on letting developers add their own systems that operate on entities, similar to how entities are rendered - but up to the developer to decide what will happen. Should be good stuff!

2012-03-31, 0.4.2, "the fixer"
  • fixed so that scaling propagates to nested entities
  • fixed so that scaling affects render position
  • renamed all global transform properies to xyzOnScene
  • fixed global position propagation through nested entites
  • fixed grid to box collision to take grid position into account
  • fixed bug which caused local position to be scaled
  • added function for easier modification of collision layers
  • added a grid collider to the collider example
  • fixed bug which caused box colliders to collide with other box colliders by default
  • fixed bug which caused entity local position to be scaled by entity local scale
  • fixed bug which caused box collider to get wrong offset when resizing
  • added PxBoxColliderRenderer for easier collision debugging
Tagged as: , No Comments

GitHub GET!

After quite some frustration and several mishaps I finally managed to get my computer talking with github. Celebrate! :) Not very exciting, but it means that Pixelizer is now on GitHub.  Yay!

I will work in the dev branch and update the master branch when a new version is release. Easy as pie.

On my many googlings to get this right I found this article, which has some nice details on git branching that I hope to follow.

That is all.

Tagged as: , 2 Comments

Pixelizer 0.2 released

Hello there! I'm happy to bring you Pixelizer 0.2! This is the latest version of my AS3 component based game developing frame work.

0.2 is a huge improvement over 0.1 and not at all backwards compatible. While all the changes can be found here, the main ones are:

  • tree hierarchy for entities
  • new flexible collision system
  • object pools
  • less code needed to init classes

A little more info, demo, and download can be found here:

If you try it out, please let me know what you think! I'm happily taking requests and suggestions.


BATHOS – post mortem

For my third LD I knew from the beginning that I would have less than one full day to complete the game. Knowing that, I first planned not to join, but when I saw the theme I thought that I should at least be able to do something small.

Again my weapon of choice was AS3 and low res pixel graphics. This time I tried out FlashPunk (thanks to Sos's framework posted earlier) and even if I used very little FP code I was quite happy with my choice.

All together it turned out more or less like I imagined it to be. If you haven't played it I strongly suggest you do so before reading any further as the game is quite spolier fragile. Feel free to try the game here:

What went wrong
- story
I wanted to really put the player into the action and let the player imagine what had happened before for herself. This had could been done a lot better and I'm not happy with the intro and outro texts at all. They worked, but nothing more. I think better texts could have emphasized the point of the game and the players' reactions even more.

- framework code
I hadn't used FP before so when I found out that Sos had posted a quick and dirty platformer framework I decided to use it right away. The framework was good for most parts (thanks Sos!) but there where some minor glitches that stopped me from adding some of the polish I wanted in the end. Since there is so little platforming actually in the game I might have been better off writing it from scratch.

- not much
I tried to think of a third thing that didn't work out but failed. I didn't eat very much, but that was expected. Next time I really should take more breaks and eat better - pomodoro style!

Base functionality complete! Time for graphics!

What went right
- scope
Knowing that I wouldn't be able to pull any all nighters I decided to try something very special and short instead of generic and large. Usually I want to make levels after level, but this time I was smart enough to realize my weaknesses and use them as strengths.

- graphics
While I usually dabble with pixel graphics, I wanted to try a new style this time. Normally I'm very much about child-like proportions, big eyes, and black outlines. In BATHOS I aimed for a realistic style in order to make it feel more real. Wether I actually achieved the latter or not, I'm very happy with the looks of the game and it is something that I will surely use again.

- framework code
Although there were some minor kinks in the framework I used on top of FlashPunk it allowed me to dive straight into the game mechanics. This saved me a lot of time and I think it was the first time in many years that I didn't write any engine code for a game. Big thanks to Sos and Chevy!

- the name
Reading the initial response I am very happy with positive comments, something which I am very grateful for. There are of course people who don't like the game and/or hate the ending, which it why I named it BATHOS ( = anti-climax ). :)

Final look of the first room.

On a final note, let me recommend WolframTones for quick music. It requires some clicking to get the desired result, but it beats composing for a musical newbie like me.



BATHOS – an LD48 game

Last weekend the 21st iteration of the triannual game developing challenge Ludum Dare took place. Participants vote on a large number of themes and after several rounds the final theme is announced and the event starts. Developers now have 48 hours to single-handedly create a game from scratch based on the selected that theme. A hearty challenge that requires both endurance and planning to fold out well.

I've join a couple of times before so I knew what I was getting into. Also, I wouldn't be able to partake the entire weekend so I deliberately kept the scope of my game small. Sticking to my guns I used pixel graphics and a platform style experience. The game is quite secretive in it's nature so I'm not going to tell you too much of what it is about, but I am very happy with the end reslut! :) All in all, you find yourself trapped in a small room, and you have to escape. Can you?

Play the game here:

Read what others think and rate the game here:

Reviews (of BATHOS):

General coverage of the event  (that includes BATHOS):

I hope you like it, and let me know what you think!  I will post a post mortem as soon as things have settled.


Flash on iOS Devices

Any game developer who hasn't been hiding under a rock the for the last few weeks or so should know that with the latest Air SDK and Flash Builder you can now package your flash games for iOS, Android and Playbook. It has been possible for some time, but it is a lot more streamlined now and with Air 2.7 it is also a lot faster once it's on the phone. It took a while to figure out how apple wants the keys, certificates and whatnots configured when working on Windows, but thanks to google, other blogs and the adobe forum, it eventually worked.

Getting the display list to work as I wanted  with the GPU was a bit of a hassle but now I have a pretty nice pipeline. I can do pretty much anything I want (within reasonable limits) on the iPhone at 30 fps and on the iPad 2 I gat 60 fps. So, lots of performance!

First I wanted to test hop many sprites I could have on screen at the same time so I dusted of my old shooter 194x and ported parts of it. It works really smooth using touch to move the plane to the desired position. And autofire is constantly on. :)


Second prototype uses tilemaps and platform physics and for this I used an even older concept only known as "Hodja". I guess the idea behind Hodja is at least 6-7 years old but I never got around implementing it for real. Hodja as some nice history that I might tell in another post. :) Anyway, again really good performance.

For both 194x and Hodja I wanted upscaled pixel graphics.  Scaling bitmaps on the GPU on iOS devices adds a blur which looks like crap when applied to pixelated graphics. I tried and tested many solutions to this but none worked. The current version of the engine scales the graphics up when it is loaded and then moves around it in set increments of pixels, thereby circumventing the blurring completely. There seems to be a small performance cost to this as to traditional blitting, but it is very small.

I hope to finish the Hodja game over the summer. It has a really nice vibe to it.

And some credits: The pixel art for the shooter was created by Arvid Wessman who also helped some with the pixel art for the platformer.