Categories
blog

The Day

The Day tells the story of a young girl in a (POW?) camp. It’s only 15mins long and worth a quick play through, well actually 2, as there are 2 endings. It’s in the experimental spectrum of exploring gameplay and narrative, so won’t be in everyone’s taste (e.g., it receives 4.5/10 by the armor games community). But I like it, so go play it now, as spoilers lurk below.

SPOILERS BELOW!

I liked the simplicity of this story. As you pursue the primary goal of competing with the other kids, fragments of the world are revealed around you. The fact that the children are playing a game about warfare while being trapped in the camp is quite macabre. The game itself is a relatively simple puzzle in logic, which has an ‘aha!’ moment when you see how to solve it.

I confess that I watched the walkthrough for the second ending, the one where you walk out of the camp, as I missed the little dirt path while I was exploring the camp. As it turns out the ‘gameplay’ element of this second goal is almost non-existant, but the narrative element is strong as you slowly realise that the camp is empty of guards.

Thus the game balances nicely, with two subgames. The first with a strong gameplay/puzzle and hint of story, the second with a stronger story and less gameplay.

Categories
blog

SWIG and Python anguish

This post may be useful if: you want to have a c++ program that runs a python script that calls some c++ functions or you want to pass objects between c++ and python, and you are trying to figure out how to do this with SWIG.

Categories
blog

Indie game funding in Australia

So I didn’t attend much of Freeplay this year, but I did catch a session on the public funding available in Australia and Victoria for independent game developers.This post contains some information I gleaned, and may or may not be entirely factual!

The session was composed of four representatives from the different funding bodies, the Australia Council for the Arts, Film Victoria, Screen Australia and Multimedia Victoria. Let’s call them Ozco, FV, SA, and MMV for short. In order, Ozco, FV, SA and MMV, are increasingly interested in the commercial component and increasingly disinterested in the artistic component of your work. At the extremes, Ozco is concerned with artistic works and MMV is only concerned with making money. FV and SA fall in between…

In Film making jargon, the bodies can be split among four aspects of the game making process: conceptual, development, production, and marketing. What these are is pretty obvious, however, ‘development’ refers to the development of ideas, prototypes, etc, and ‘production’ refers to the actual development of the thing. This discrepancy exists because SA and FV were originally set up to fund films.

Anyways, so, how do independent developers get some cold hard cash to make the next SleepIsDeath, Limbo, or ZenoClash?

If the project is ‘arty’ then the Ozco should be your first port of call. They have a very restricted budget, but they do have some funding in the form of the Digital Culture Grant (see Escape from Woomera). Ozco can fund from conceptual through to production, but the chances of getting some small amount of money rest on the artistic merit of your project.

SA are interested in commercial projects, that have prototypes and scripts. Through their Innovation Program they could provide up to $30k for the development phase. When assessing proposals, SA looks in the following categories, called the five C’s. Content, Context, Collaboration, Culture and Commerce. A successful proposal would tick some or all of these boxes. Content is fairly obvious. Context – does the delivery method / interactivity model match the content? Collaboration – This grant is aimed at assisting professional development, so a project involving the collaboration between different fields is highly looked upon (e.g., matching a film director with a games programmer). Culture – Does the project have cultural merit? Commerce – because money is nice.

SA has up to $250k to assist in production. You are more likely to be successful in receiving a grant if you have a private funding also set up. They also have a ‘serious games’ initiative, for those who are serious. The SA production fund typically also includes money for marketing.

FV is interested in funding commercial development also, typically they can help to develop a section of the game in order to attract other investors.The projects they are interested in engage the audience, and they are interested in mixing people from different backgrounds. They can help from the development, production and marketing perspectives (and maybe/possibly can help with the concept exploration phase.)

MMV – these guys are serious about developing the ICT sector in Victoria, and typically fund only the marketing phase of a project. You have to have a commercially viable project, and then they’ll fund things like trips to trade fairs or stalls (in places like the GDC).

So that’s all I’ve got in my notes. HTH. B.

Categories
blog

First journal paper

My first journal paper has now finally been published. It is titled Developmental modelling with SDS and was published in Computers & Graphics in a special issue on procedural modelling. You can download a preprint of the paper in the papers section of my site. I started writing the paper in November last year, so it’s great to finally have it published. It was an interesting process, getting the paper reviewed, receiving the comments, addressing all the comments and modifying the paper accordingly (which also meant doing more experiments!), submitting the changes, getting it accepted, receiving the proofs from the editor, confirming the changes and doing some last minute edits, submitting the proof, waiting, waiting, getting a preview of the online version, and finally, today, receiving a nice final copy of the article … gah! There is a lot of work involved from all parties, and I didn’t even mention having to produce and format high quality images! Bazinga. Is the tedium of publishing in a journal worth it? At the moment I’m not sure.

Categories
blog

Yet another website

Yep, it’s time again for a new website design. It’s only been two months since I wrote about how I migrated my site from a static content generator written by someone else to one I wrote myself incorporating some cool things. Statically generating the site turned out to need more effort than I was willing to put in, due to the edit/compile/install cycle. The other thing that bothered me was that my blog was running on a separate website, and although I had blog.bp.io map to it, I still couldn’t integrate it into my main site.

I considered three different systems when looking at building my new site: wordpress, drupal, and django. WordPress is a simple blogging software with some basic cms features. Drupal is a fully fledged cms that is actually quite nice to use. Django is a toolkit for building websites. Long story short, due to my laziness I went with wordpress, as it required minimal effort.

I originally wanted to organise the different things on my website (e.g., software, paper, code, drawings) properly (and wp3 does support this), but I went for the simple option in which everything is a wp post, and categories are used to distinguish between blog, game, and project related types. Once I changed my intended website model into one that was wordpress compatible, things got a lot easier.

As for Drupal and Django, both are great systems, just not the simplest option for a single user blog/cms. I had a lot of fun building a prototype blog with it, and I plan on using Django for a website in the future.

Hopefully this current set-up will last me more than two months. :)

Categories
projects

Simplicial Developmental System

Categories
blog

Day 1156

The following story is fictional and entirely unrelated to my PhD research…

It’s been 1156 days since I first arrived in the land of phud. I arrived on a ye olde and grande ship with a welcoming committee cheering my arrival. I was welcomed as an equal having just graduated with highest honours. These people in the land of phud all seemed so wise and what lay ahead was mysterious and exciting. I spent the first 300 days looking around my new home, examining the ground stones laid by many before me and finding a spot to build my own wondrous sculpture. I had written up the plans and documented thoroughly my understanding of this place and was granted permission to begin building.

First, I thought, I would build a small scale replica, in order to detect any hidden flaws in my design. This took a lot longer than I expected and another 300 days later I had finished it. It was only then that I started to build my showpiece — my home in the land of phud.

The base and ground stones were a piece of cake, or so I thought. Cracks begun to appear early on, and much effort was put into filling them. But the fixes were quick and dirty, and sooner or later the cracks would come back and threaten the stability of the structure. Once the base was finished it was time for the main event, a wondrous tower upon which I would live. But this was a dream, and reality got in the way. The tower was built of precious stones, each more rare than the last. I ventured far and wide to find these minerals, and upon the discovery of each I was replenished with motivation to find the next. Each element of the tower required careful placement, but the cracks in the base were mischievous and repeatedly threatened the whole structure. The introduction of a new element required adjustment and realigning of base. This scenario repeated over and over (and over) again.

Looking back at my plans I see the tower was supposed to be 50m high. Looking at it now I see it is barely 10m. I’ve been trying to place another element for many months, but the tower is becoming increasingly unstable. I fear that I have no more strength to lift the remaining stones. When I am awake at night I see a bright light shining from out over the water. This light promises a new life. Maybe I’ll pack up my family and set sail again …

Categories
blog

Behind the site..

Up until yesterday I was using a system called tahchee to generate my website. Tahchee is a website compiler. You give it templates and content and it generates static website pages. In my case, I had a single template that models a page with a header, navigation bar, content, footer. Each actual page on my website, e.g., http://bp.io/s/sds is generated by applying this template to a simple file that contains the content. The content was written in a wiki-style markup called kiwi, which then gets converted to HTML. An example of the syntax is:

Simplicial Developmental System
===============================
Hello, this is a description of the simplicial developmental system, blah blah.
 – Point 1
 – Point 2
 – Point 3

I said farewell to tahchee yesterday. It’s a great system but it hasn’t been updated in a while, and now it seems a few bugs have creeped in — let’s call it old age. Tahchee operates by gluing together some other technologies, like Cheetah templates and Kiwi markup, and adds a build system to simplify combining them all together. I decided to manufacture my own glue, and it only took a day.

First, I looked around the net at the myriad templating engines. I enumerated them all and rolled a 47 sided die. It came up with Jinja2. Jinja is a general templating engine, you can use it to generate HTML, tex, txt, css, cpp, or whatever you want that is ascii/unicode based. It is available as a python library, and its syntax is similar to cheetah and all the other engines out there. A simple html template could be:

  {{ message }}

In your python program, you then execute something like:
 

template.render(message = “Hello there!”)

And you get:

  Hello there!

That’s the gist of templating engines and Jinja. The bulk of the work I had to do was to write the build system. I designed the directory structure of the source for my site as follows, this is pretty much exactly how tahchee has it.

makeit.py
build/
mysite/
    templates/
    pages/
    assets/

The makeit.py script first loads all the templates from the templates directory. It then walks through the pages/ directory looking for files that are appended with an underscore (this is my way of distinguishing between files that need to be processed with Jinja.) It then runs the files through Jinja, creating a processed file without the underscore. For example _index.html will be processed and then saved as index.html. The directory structure of pages/ is mirrored in the build directory, and any files tht don’t need to be processed are copied as is. My pages/_index.html looks like the following.

{% extends ‘base.html’ %}
{% set title=”bp.io” %}
{% block main_content_md %}

This is the project site of Ben Porter. Currently, I’m working on my PhD project: [SDS]({{ base_url }}/s/sds). Other things you’ll find here are my blog, my public code repositority, and various programs and games I’ve written over the years.



{% endblock %} 

The content is written in Markdown, which is very similar to Kiwi. To add support for Markdown was trivial using Jinja2’s support for filters. You can also see that you can mix in regular html and markdown will ignore it. I also pass all the generated html through HTLMTidy in order to fix any bad markup and to also lay the html out nicely (useful for debugging the engine.) If you view the source of my website, you can see it all nicely laid out. :) (Is someone screaming nerd right now? If so, I’m happy you’ve made it this far, but now is the time to rage quit!)

The layout of my site is now done using the Blueprint CSS Framework, which offers helpful grid-based layout support, some nice typography, and some cross-platform neutralisation. I will eventually incorporate some css into my site generator, in order to make it easier to maintain and change the palette and style.

The last piece of glue is the build system. I have been using scons for a little while now, including in my main project (courtesy of BV), and so it was an obvious choice. I have a simple scons script which makes sure the makeit.py template runner is executed, and then it copies over the remaining pieces, such as assets/ which stores all the static content such as the css and images. Oh, and lastly, it’s all versioned using hg.

I have moved my website hosting over to a VPS (linode). This is so I can do some more complex server-side thingymajigs, which my last shared website host did not really support.

Categories
blog

SDS-Blender delayed

Just a quick note, I’ve decided to delay the release of my generative organic software until later this year, probably around the end of the year. This is because of two main reasons.

Firstly, as the software depends on the latest in-development build of Blender, I want to wait until at least the scripting API of the software is frozen and stable. The Blender team is working hard on the 2.5 release, and I think at the moment they are working on the scripting API, so finger’s crossed.

Secondly, my own workload has increased significantly as I’m trying to get new results, write a paper, and write my thesis. My submission date is < 6 months from now, and once I’ve submitted I’ll have some time to adapt my software to fit Blender’s latest scripting interface. Luckily, Bart, who built the interface between SDS and Blender, did so in an excellent manner and so adapting to the new API shouldn’t involve much work at all.

Also, my backup hdd is now playing up … is a PhD = the work you do between all the things that go wrong??

Categories
blog

Sleep is death

Jason Rohrer’s latest game appeared out of nowhere for me. It’s a role-playing/interactive fiction tool with which two people can create a story together. The controller of the game concocts a story, makes the artwork and music, and then controls a set of scenes to make a story. The player is assigned a character and can move, speak, or apply verbs to things, like pick up, etc. The controller and player take turns, both adapting to the actions of the other, with the controller generally trying to take the story on some intelligible narrative arc, or not. Here’s an example game that has been played.

I’ve been thinking about this type of game ever since reading a book called Diamond Age by Neil Stephenson. A game where a person, or persons, in real-time direct out the game that a player or many players are taking part in. As an alternative to creating smarter AI to direct our games we could spend time developing tools and a culture of humans directing games. In the future, could their be an equivalent of a highly paid movie director whom directs games in real-time? I can’t see why not.

Anyway, back to Sleep Is Death!