Python script to pack a set of textures in to one larger texture to optimise rendering in game engines or for making sprite sheets for websites.
My brief notes on switching to HP ProLiant MicroServers for my home/office servers. It includes pictures.... yes that's right pictures of servers!
Every bloody operating system has it's own unique way of starting things at boot time. Today I bothered to learn how OS X does it. Here's how I got PostgreSQL to start when my machine is turned on.
Many years ago I bought a Current Cost meter. Infact it was so long ago now that they have called my version The Classic. I wanted to see how much electrical energy all my servers, home computers and gadgets were using.
When coding with multiple threads it can get pretty tricky using system resources. Many can only be used in the main thread. The main thread is the thread that the OS creates to run your code and your first look at it is the main() entry point.
Many UI systems/compontents like Cocoa and QT can only be safely accessed when the code is running in the main thread. In general you should construct your code so that it's clear what is running in the main thread so the code should never need to ask. The simplest was to do this is to use a Thread Pool pattern but it's not always possible to write generic code that can be called from all threads....
This is more of a reminder to myself about confusing linker errors that can appear in XCode when you are working on large projects with many dependencies.
Everything compiles just fine but when it comes to linking you get errors like this....
In order to build the assets for my games I have a series of python scripts that know how to take files TexturePacker, Tiled, and Blender and build them for use within the engine. My main platform is OS X and it has good terminal support and more importantly I am comfortable working with the terminal. The artist I work with is not so comfortable and he works on Windows where cmd.exe is painfully outdated and basically useless.
To counter this I wrote a small Python Tkinter script do display a window, text area, some checkboxes and a build button to make it a bit easier for him to work. Crucially it makes it easier to notice build errors and send me bug reports.
I'm working on a game where I need to generate anagrams of words. My new game engine, which is Max Astro's engine but with a few tweeks, integrates Lua and all the game logic is in Lua.
I've settled on using Blender 2.6 both as a level editor and modeller for my next game (code name BBM). BBM is a 2D game but modelling the characters and rendering the sprites will save a lot of time. Blender isn't the best level editor but it's pretty close and suits my needs...
I'm making some changes to the codebase that drives Max Astro before making my next game. The biggest change is that the engine is going to be controlled by Lua. Lua will run the main logic loop and lua will be the configuration language.
Previously the Execution Unit website used Wordpress. I was quite happy with Wordpress and I still think it's a great blogging platform. My problem with it is that I wanted more than a blogging platform, I wanted a platform I could easily extend. I"m thinking of offering a free version of MiniTune with a time limited trial so I needed a platform that could deal with generating temporary keys and...
A new free update to MiniTune has just been released to the App Store today. This is a minor release with a few small bug fixes but I've also added a neat feature that was requested in the comments in the Mac App Store....
MiniTune 1.8 has been released on the Mac App App Store. 1.8 includes a few small updates to fix Growl 1.3.x support and a new theme that looks like a photograph...
Updating Xcode seemed to screw up my project (again). Firstly it set the deployment target for Max Astro to iOS 5.0 and I suspect it changed the linker settings for the project as well. At first I didn't notice, after all who runs an iOS 3.1.3 device...
JBTech17 has kindly reviewed MiniTune 1.6 in a video review on his youtube channel. The video goes over all the main features of MiniTune.
MiniTune 1.6 should have reached the Mac App Store in your territory by now. Apple approved the build yesterday evening.
Most of the ground work for 1.6 was actually done in 1.5. I added skinning in the 1.5 release but there was only one skin. For 1.6 I've added a Vinyl LP skin...
MiniTune 1.5 should be appearing on the App Store in the next 24 hours. If you're using Lion then this should fix all issues.... if you're still using Snow Leopard then nothing should be broken...
Despite testing MiniTune on Lion developer previews there are a few really annoying bugs that I've discovered since I've upgraded my main dev machine to Lion....
If you ever see a message from archive validation that states
Path x in Bom is missing from payload
then you might be about to enter a world of pain that I've just exited from.
I've been playing around with the QTKit in Cocoa. I looked at the sample code and bar the usual Quicktime weirdness and some threading nuances it all seemed pretty simple. The sample code ran just fine and thanks to the macam drivers I could use my PSX3 Eye with my Mac....
For a little side project (that I abandoned) I needed to find all installed web browsers in OS X. After a little poking about in the API docs I can up with this....
I've used MantisBT for many years both commercially and personally. It really is a good all round bug/task tracker that you can present to normal users and they WILL be able to submit bugs to you without being frightened away (I'm looking at you Bugzilla!).
I don't use Mantis in my no...
ve been working on an iOS game for a four months now and it's time to create a new target for iPad. The XCode documentation says to select your target, right click and select Duplicate and the Click Duplicate and Transition to iPad. Once this is done there is a shiny new Scheme to build, test and deploy for iPad complete with a new MainWindow.xib....
After many late nights I am very proud to shout out that MiniTune has been released and is available NOW at the app store...
When you create an iOS Application in XCode by default the version of the application is stored in <appname>-Info.plist. It would be really handy to get this in to code for compile time checks and #defines...
With the beta release of iPhone OS 4.0 Apple has changed the terms and conditions for developers who want to target the iPhone platform (note that includes the iPod Touch and iPad)....
Stripification is the process of turning lists of triangles in an arbitrary order into as many lists of triangles that contain adjacent edges. There is a great explanation of a triangle strip of wikipedia.
Part of my Art pipeline for Tentacles is to import a directory of 3DS files. Each of these files is a map piece and the map pieces are instanced to create a map. That way I can store the geometry for a shack once but instance it across the level many times with a unique transform (scale, translation and rotation)...
In OpenGL ES 2.0 glAlphaFunc isn't available, you have to implement it in a fragment shader. There isn't a lot of reference out there for this (not that I could find anyway) so I thought I'd write this up.
When I started developing this site I knew I wanted to use a static website. I've used Wordpress and I'm fed up with checking for updates and plugin incompatibilities. Combine that with the server with this site doesn't have MySQL on it but PostgreSQL and it all seemed like to much hassle.
A static website on the other hand seemed blissful. Simply type in my sage like words, export and fear not for nothing could go wrong. No hacking, no plugin problems, no slashdot effect, nirvana...
Bullet is an open source collision and physics simulation library written by Erwin Coumans who I believe worked or maybe still does work at SCEA (Sony Computer Entertainment America). Bullet provides a C++ API to a very robust Collision, Rigid Body and Soft body...
When the iPad was announced I decided it was time to take the plunge and develop a game for it. Although the iPhone is a powerful piece of hardware I just find the screen too limiting. Every game leaves you wishing you had transparent fingers. The iPad seems luxurious with it’s 1024x768 A4 sized screen...
Sometimes you need to write code that loads python at runtime. Plugin architectures are a good example of this. Plugins allow extensibility but more importantly (for me at least) they enforce a strict API. Anyway, I've written this code a few times so I thought I'd modularize it.
I've been working in deployment scripts for my current project and sometimes I need to drop all the tables and sequences from the database.
I wanted to log everything from my servers and router to a singer server to make it easier to keep up. Here are the steps I went through.
If you want visual diff's while developing on OSX using subversion then this page has a good description of how to set it up and some scripts to wrap Apple's FileMerge application to give to nice visual merges/diffs.
For many moons I have wanted an application like IPTraf for FreeBSD. Well through lack of trying and a certain amount of stupidity I couldn't find one. All good things come to those who wait... to stumble across things late at night.