Nov. 18, 2009

A building with inflatable tentacles coming out of the windows

Name                Chris McCormick
Registration Number xxxxx
Destination         Fremantle
Number of Boxes     2

Box - 1

Number Description                                     Purchased Value
8      Books                                           UK        40
15     Books                                           Australia 20
2      Art prints                                      UK        75
4      Clothes                                         Australia 10
2      Vinyl beanbag covers                            UK        50
1      Pack of business cards                          Australia 0
1      Clock                                           UK        14
1      Air mattress pump (electric)                    UK        5
1      Midi controller (electronic musical instrument) Australia 75
1      Blanket                                         UK        4
1      Drum machine (electronic musical instrument)    UK        50

Box - 2

Number Description                                     Purchased Value
2      Books                                           Australia 10
2      Handbags                                        UK        20
9      Pairs of shoes                                  Australia 60
20     Clothes                                         Australia 20
1      Hat                                             UK        4
2      Plastic toy pidgeon                             UK        5
4      Vinyl records (bowie)                           UK        4
10     Photos (personal)                               UK        0
5      Theatre programmes (personal)                   UK        0
10     Fridge magnets (personal)                       Australia 0
16     Birthday/Christmas/Anniversary cards (personal) UK        0

A statue of a video game character

So long, London. Until next time!

Sept. 30, 2009

blochead helo.

May 17, 2009

GameJam0509

This screenshot is as far as I got during the latest GameJam, which has been running in my home town, Perth. I joined remotely from here in London, but unfortunately I just didn't manage to squeeze in the time to make the game I was hoping to. I did manage to advance the MinimalistPlatformer codebase quite a bit further than it was towards the larger platformer game I have cooking away in the back of my mind though, so that's quite positive. Hopefully I'll get some more time to continue this work, and maybe even produce some binaries of my GameJam entry at some point.

March 24, 2009

I shouldn't call this a game design, because really it's just a random assortment of ideas thrown together in my head, and a mockup of the aesthetic I have in mind. The x's and o's in the background would move in parallax with relation to the ships and rocks.

Asteroids TNG Mockup

If I had time to make a game right now, this would be it. Basically it looks and plays a bit like Asteroids, but the rocks don't fly around crushing you - they hang still in space, and you shoot the coloured ones to get minerals from them. It's multiplayer and set in a persistent universe, so I guess that makes it an MMO. You can fly up to other people and talk to them, trade items with them, etc.

I remember the intense excitement of the first time I played a MUD, back in the mid 90s. It wasn't the game element of it that excited me - it was the exploration and social elements. I guess I am a fan of virtual worlds more than games in that respect. I'm not that interested in grinding.

Asteroids TNG would be a bit like Diabolo, but in space and with vector graphics. That is to say, there are some asteroids that you can land on, and when you do, the game turns into a Roguelike with one short 'dungeon' per asteroid, and simple vector graphics instead of ASCII graphics. All of the monsters would be futuristic alien sounding monsters, and instead of wands and scrolls you would find rayguns, data nodes, and nanotech stems, and instead of armour you would find field generators and shielding, etc. You get to keep the inventory of things you find in the asteroid 'dungeons', and you can trade these items with other people. Later there would be space stations where you could dock to meet up with people.

The whole thing would be procedurally generated using Perlin noise to generate an infinite asteroid map, and Rogue-like logic to generate the asteroid dungeons. Lately I have been reading and obsessing over the source code of Donny Russell's AGB Rogue, which is a conversion of the original BSD Rogue for the Gameboy Advance, and probably my all-time favorite Rogue. It goes with me everywhere on my Nintendo DS. The code is incredibly unclean, but it's fun to look at the probability tables and dungeon generating functions to get an insight into how they balance the game.

The music would be chippy as hell.

Won't someone give me a wad of cash to make this social roguelike space MMO? I swear I will port it to Nintendo DS, iPhone, web, Xbox360, widgets, gadgets, screenlets, Windows, MacOS, Linux, and the Wii, and make you millions of dollars.

Sept. 16, 2008

Tingangong is the onomatopoeic name for a game design that has been brewing in my head for the last few weeks since just before we left Australia. It's actually more of a non-game, or sound toy, or art game than a regular video game, but hopefully it'd still be a lot of fun to play.

Basic game idea

It can be summed up as a cross between the fish-and-leaves toy in Electroplankton, Crayon Physics, and The Incredible Machine. The idea is that users of the game can make "composition sculptures" by dragging various elements, each of which make a unique type of sound, onto the canvas. The sounds that each element make are triggered by tiny pinballs which are shot from cannons and bounce off the elements. Complex sculpture compositions can be set up where the balls bounce from element to element creating chains of different sounds, even music.

User Interface

User interface

The user interface is pretty self explanatory. Mousing over the strip down the left hand side causes the panel to slide out, and then elements can be dragged off the panel and onto the canvas. There is no separate run mode vs. edit mode; the game is always running and as soon as a cannon is dragged onto the surface it will start shooting little pinballs. When the user does a mouse-over on elements that are on the canvas the control point squares appear. Clicking and dragging control points allows the user to edit the parameters of each element. For example, the piece of bamboo can be rotated, and it's length and position changed. As it is made longer the "tock" sound that the bamboo makes will become deeper. You could place several pieces of bamboo in the path of the pinball, each of varying length to create a sequence of different notes.

Ideally the canvas part of the UI would be vector graphics and hence zoomable so that you could focus in on the parts of the sculpture that you are working on, and then zoom out to see the whole thing working like clockwork. Maybe there could be a "follow ball" mode when you click on a passing pinball.

Elements

Cannon

The cannon is the start of every composition as it is where the pinballs originate from. Control points allow the user to modify the position, direction and power (size) of the cannon. An additional control point allows you to change the length of the spiral at the centre of the cannon, which sets the speed at which pinballs are shot out of the cannon. This corresponds to the basic tempo of a piece of music. Different cannons can have different tempos of course.

Clock

The clock has a hand which ticks with the same frequency as the nearest cannon to it. There should be some kind of visual feedback to show the user which cannon the clock is associated with. Pinballs bounce off the hand of the clock and this allows you to create pieces where pinballs go in multiple directions at different times. The clock features control points for changing the length of the hand, the position and rotation of the clock, and the number of stops on the clock's face. It might be a good idea to try having a separate spiral to control the tempo of the clock independently of any cannon. Testing will reveal which method is more intuitive and useful.

Hit clock

The hit clock is just like the clock, except that it only 'ticks' when a pinball strikes the centre circle. Other than that it has pretty much the same control points for size, rotation, position, and number of stops. This allows you to create more complex pieces where a ball can strike a hit-clock after a long sequence to change the direction and flow of other pinballs.

Leaf

The leaf is inspired by the leaves in the Electroplankton fish-and-leaves game - it makes a plucked string sound when the stem of the leaf is struck by a pinball. The control points on the leaf allow you to change the length, rotation and position of the leaf. The length of the leaf changes the taughtness, or pitch of the string. The sound for the leaf should vary in a procedural way if it has multiple excitations in rapid succession, which goes the same for the following audible elements. An algorithm such as the Karplus-strong algorithm would work well for the the leaf, and is faily easily implemented.

Bowl

The bowl contains water and makes a 'plock' sound when pinballs fall into it, and a gongish sound when struck on the sides. The bowl's position, width, and height can be changed with control points. It's width corresponds to the pitch of the 'plock' sound, and the height determines how much reverb to put on the sound. Both the width and the height determine the pitch of the gong sound that the sides of the bowl make; each might determine the pitch of one of two oscillators which are ring-modulated together.

Bamboo

The bamboo makes a 'tock' sound when struck by a pinball and has control points for position, rotation, width, and length. The length of the piece of bamboo determines the pitch of the tock sound, and the width determines the depth, or length of the sound.

Sphere

The sphere makes a 'ting' sound like a single bar from a wind chime. The control points allow you to modify the position and size of the sphere, with the size corresponding to the pitch of the chime.

Aesthetic

Aesthetic of the game

In my head the game looks like a piece of traditional japanese calligraphy (above is my pretty lame attempt at that look) and the scupltures are tinkly pretty things which sound like gamelan music, or John Cage's "Six Marimbas". I can imagine users creating fully fledged pieces with multiple parts and movements which sound as fascinating and wonderful as they look.

Technology

If I was to code up this game or a prototype thereof tommorrow (it could happen!), I would use the following combination of technologies:

  • The core engine would be written in Python for speed of prototyping.
  • The graphical component of the engine would be implemented in Pygame or Pyglet, or maybe Pycairo for the vector graphic component if it's fast and cross platform enough.
  • The physics engine would be Box2d, Chipmunk, ODE, or something similarly cross-platform and Python compatible.
  • The audio backend would be implemented in Pure Data. It would be launched as a subprocess and would use the '-nogui' flag and sockets/pipes to communicate with the Python based front-end. Individual elements would each have their own Pure Data abstraction, and dynamic patching would be used to create instances of each element. Incidentally, Pd is the music engine for the recently released vide game, Spore.

All these technologies can be googled for more info.

Concluding

Some good community features such as uploading and sharing sculpture compositions would be nice, and png-embedded data files could be cool as well, so that images could be dragged from a browser into the game and loaded up instantly, and users could easily share compositions by sharing screenshots. Another cool feature might be to have elements that are touching eachother on the canvas have some kind of audio interplay such as ring-modulation between the two sounds. That kind of stuff should be experimented with after the basic prototype of the game is up and running.