Booting from an HTTP-accessible image in HP iLO2

Submitted by davidc on Wed, 21/09/2011 - 02:09

HP's integrated lights-out management is a godsend, and has saved the day on more than one occasion. But for installing new servers, it's a pain to have to present the media: (a) insert a physical CD into the enclosure drive (b) attach a USB CD drive (c) use the virtual media applet or remote console virtual media over a slow connection, or (d) find a local Windows machine and use the remote console RDP.

Snaxe

Submitted by davidc on Sun, 18/09/2011 - 23:18

This is a simple multiplayer version of the classic Snake game, developed in 16 hours for the Überall video game party. It features network play, with mobile phone or laptop controllers, for 2-8 players per game. It can also be played with up to 4 players on the local keyboard, or with a combination of both network and local players.

Snaxe: Hours 15-16

Submitted by davidc on Fri, 16/09/2011 - 19:23

I've added one more powerup, 'speed', which doubles your movement rate (effectively letting you get extra moves in between everyone else's moves) for 15 moves. Also finally implemented a smart algorithm to determine how many rabbits to spawn and how often to spawn them and the other powerups. Minimum and maximum rabbit numbers are determined by the number of players in the current game.

Added a new skull and crossbones icon besides dead players, keeping their colour (but faded out) so you can quickly see who is dead.

Snaxe: Hours 13-14

Submitted by davidc on Fri, 16/09/2011 - 16:43

Lots of tidying up done today, making the game look a bit better. Katia has started working on new snake images to fit the new board size, but they're not done yet.

I've added a new invulnerability powerup, which lets you slither through yourself, other snakes, or bones - but if you're still crossing them when you leave invulnerability, you die. You can still eat friendly powerups in the meantime. You flash faster and faster as your time runs out.

Snaxe: Hours 10-12

Submitted by davidc on Thu, 15/09/2011 - 22:34

The client/server protocol is now fully implemented my end. It now sends "prepare" messages with the countdown if they're in the next game, and "play" and "gameover" messages to complete the set.

The game no longer starts immediately on state transition; there's now a six-second countdown with big flashing numbers to give people a few seconds to find their snake. And there's a few seconds to see the scoreboard at the end of the game, before it transitions back to the 'insert coin' state. So now the game can run fully standalone in a loop.

Snaxe: Hours 8-9

Submitted by davidc on Thu, 15/09/2011 - 17:39

More of the client-server communication is now implemented. The client is now put into the queue (and sent a message) after they enter their name. The server now broadcasts a 'gameover' to all clients on startup, in case any clients are stuck in the game from a server crash.

The 'insert coin' state now lists players in the order that they joined the queue, and the 'play' state now adds players to the game in that same order.

Snaxe: Hours 5-7

Submitted by davidc on Wed, 14/09/2011 - 17:16

Edward came over to the atelier and we've been working on adding networking support for the mobile phone clients. We're using his Python software that sits between the clients and the game servers (which are known as "screens"). The clients talk to the "swarm server" natively using WebSockets, falling back to Flash-emulated sockets if the browser doesn't support them, and to AJAX if it doesn't support either. The game server talks to the swarm server using a simple TCP connection.

Snaxe: Hour 4

Submitted by davidc on Wed, 14/09/2011 - 00:58

Okay kid, this is where it gets complicated. Since this is just a throwaway prototype, I'm going to bend a lot of rules from now on to speed things up. For example, the game logic was originally completely encapsulated (in fact I had the full game simulated 'in memory' before writing a single line of graphical code). But now to save some time, I'm going to mix a lot of the presentation logic into those same classes, and do the nasty with member variable visibility.