Main menu:


Categories

  • Art (4)
  • Game design (7)
  • Games (7)
  • Personal (2)
  • Projects (14)
  • Quickies (1)
  • Travel (7)
  • Uncategorized (1)
  • Archive

  • March 2008 (2)
  • February 2008 (1)
  • January 2008 (2)
  • December 2007 (1)
  • November 2007 (2)
  • October 2007 (3)
  • September 2007 (3)
  • August 2007 (2)
  • July 2007 (4)
  • June 2007 (10)
  • Automatic game testing

    Something that is very cumbersome (and boring) to do for every developer out there is the software testing. To combat that, you usually develop a number of methods that helps you track down bugs, for example automatic bug-reports and unit-testing.

    One of the more interesting ones is automatic testing. For games, this usually means that you have a system that simulates the player and automatically generates input for it. For my latest project Hyena I’ve had the rare opportunity to play around with an application where the controls are so basic that it was actually possible to write a system that played the whole game for me.

    For Hyena this was obviously extremely simple, since controls only require you to choose from of a number of predefined choices. The game-book I used for testing was Flight From The Dark, which has 350 pages and each page has on average about 1.6 choices, so fully testing the game was definitely possible. Some preliminary runs did prove very helpful. First of all, it pointed up some show-stopper bugs in sections like this where you ended up with all choices disabled due to a problem in the LUA-script. The other kind bug it pointed out appeared when I looked at the pages that never was displayed, and could trace that to another LUA-script bug.

    Also, doing simple analyses of such runs are also trivial and can be a great tool for game-design. You might remember hearing of such analysis from the development of the original Half-Life. Basically, they built a system that tracked stuff like the health of the player throughout the levels, and having this activated during focus-testing allowed them balance the game better. We (Starbreeze) asked Valve about that a few years ago while working on Riddick, and while they still were very enthusiastic about the idea, they also told us that it never got to the point where it was really useful. My guess is that the big problem for most games is that you still need to rely on real players for the data to be useful.

    Then again, that’s not equally true Hyena and game-books in general, since there isn’t that much of a difference between a simulate player and a real one. The only limitation my simulated player has is that it never goes to the action chart and actively uses items (healing potions for example). Of course, it also happily chooses a really stupid-sounding choice as often as a sane one. Still, the analysis gives a lot of information about how well the game-book is structured. Take a look:

    http://www.collectingsmiles.com/hyena/analysis/fftd_analyze.jpg

    This is a flowchart generated from a simulated run of 40139 playthroughs (yes, it took a few hours) and shows for example that:
    • The game is  completed  in 7.5% of the cases
    • The Gourgaz kills you in 57% of the cases
    • The most dangerous enemy are The Doomwolves, who kills you in 74% of the cases 

    It also displays a couple of “flaws”:
    • There is this really big path that takes off from near-death experience in this section that is shown in less than 0.1% of the cases.
    • A couple of sections are never displayed, either because of the problem above, or because of this one, where a fight extremely seldom lasts 4 rounds.

    I intend to expose this analysis functionality in Hyena, so this tool will hopefully be available to anyone who wants to write his own game-book.

    Hyena v1.02

    I’ve released a new version of Hyena for DS and PC at
    http://www.collectingsmiles.com/hyena

    * Scans the AudioGames/ directory for game-books, and gives a choice on which to load.
    * Detailed the .gamebook file specifications here.

    * Integrated information on how to play the games.
    * Better error messages if files are missing.
    * Removed crashes due to memory fragmentation.
    * Removed .xml format in favor for plain-text.

    Flight From The Dark fixes:
    * Fixed numerous game-logic flaws and lockups.
    * Echoes your Combat Skill whenever it has changed.
    * Echoes your amount of Gold whenever it has changed.

    There still seems to be a nasty bug on the DS where the sound-engine shuts down when you boot the game. But since it’s not that often and it doesn’t affect the game-experience I haven’t bothered to track it down. If you have no audio when you start the game, just reboot. Enjoy!

    Hyena - Audiogame Player

    It’s time for the release of another project: Hyena

    Hyena is something I call an AudioGame player. It is probably more correctly called AudioGameBook which is a combination of the words AudioBook and GameBook, which Hyena is based on. AudioBooks have had a dramatic rise in popularity the last couple of years, probably due to the rise of mp3-players, but they do provide a unique function: Being able to “read” a book while your body is busy with other things. GameBooks on the other hand is something that’s almost been forgotten, but basically it is a book where you at the end of each page were given a choice and decided by turning to one of the specified pages. I remember being fascinated by them in my youth, but they sort of died out when computer games became complex enough.

    Today GameBooks touches the core of one of the things the interests me about games: Interactive Storytelling. As you might have seen in my previous project Rorschach, I love to dig into what this really is about. While the works produced during the Interactive Fiction Competition are already of exceptional quality, GameBooks are a simpler form of interactive storytelling, and in my opinion one that hasn’t been properly explored.

    So, my take on this is to create a GameBook player for handheld platforms where you don’t need a screen, and you only have to use one button throughout the whole game. Just like AudioBooks, this makes it possible to play games while your body is occupied with other things, like when you are driving or are out running (or while sitting in Church J). This turns out to work really well on for example the Nintendo DS, where you can play the game even when the is console closed. Also, while googeling the term AudioGame, I of course found sites talking about games for visually impaired people makes the project even more interesting for me.

    Bundled together with Hyena is one of the GameBooks I played in my youth: Lone Wolf - Flight From The Dark, by Joe Dever and Gary Chalk (available through Project Aon). Since I’m not a native English speaker and I didn’t want to record the 1596 lines of dialogue needed for this game, I used a speech synthesis to generate them which gives a kind of weird feeling to it. In the future I hope there will be additional AudioGames that uses Hyena, and some that uses real narrators. I have made it as simple as I can to define the logic behind the game (which was surprisingly complex in Flight From The Dark) using an external LUA file. Information on exactly how that works will be released shortly and any writer interesting in writing a game are welcome to contact me.

    Hyena is currently available for the Nintendo DS and within short there will be a Sony PSP version as well. Also, for the people just wanting to test Hyena out, there is a reference version for PC available. You can find them all here.

    2 cool indy-games

    I just wanted to share two recent flash-game findings:
    Rose & Camellia – A hilarious game which proves that any setting will work for any kind of game-play
    Cursor * 10 – A brilliant innovative idea of a puzzle game

    Totally brilliant.

    (and on a similar note I just found out that Rorschach made 1up’s 101 Free Games 2008. Not too shabby)

    Computergame + Human = Story

    Yesterday I attended a lecture by Jonas Carlquist called “Datorspel + Människa = Berättelse” (Computergame + Human = Story). The lecture was mostly directed towards people who didn’t know that much about storytelling in games, but it was still very interesting to see everything from an academics point of view (also, he made a good impression on me by namedropping important games for storytelling like Deus Ex and Planescape Torment).

    After thinking a bit about this lecture I though of some of the views I and my fellow designers at Starbreeze has had on how to tell stories in games. In the last couple of games we’ve made, storytelling has been extremely important.

    I distinguish two goals you have when trying to make a good story-driven game. Let’s call the first “Immersion and emotional impact”, which basically is a story that the player cares about and feels he is a part of. This goal is the one we’ve been striving for in Riddick and Darkness and borrows heavily from movies. A lot of progress has been made here the last couple of years. The quality of the stories has increased because good writers are writing them and the acting are substantially better than just a few years ago. Perhaps most importantly; stories in games are told much better today.

    On of the key changes is that nowadays stories are mostly told from a player perspective. We decided to do this in Riddick, which in that game meant that we never showed the player anything that the Riddick couldn’t see. This helps strengthen the relationship between the player and the hero. Another example of what’s improved is that you seldom see the game violating the trust of the player by having the hero make a decision that the player would never do. A typical example if this is when you, after fighting off hoards of enemies in a game, enter a room and see a cut scene where your hero suddenly surrenders; something that the player would never have done in that situation. This can still be seen from time to time, but not so often anymore.

    The second goal can be called “Interactivity and non-linearity”, which in my opinion is more to the core of what games are about; meaningful choices. This means having a story where the player can make decisions that affect how the game-story plays out (or even create new ones). This is a much harder goal to reach, since the complexity of a story grows exponentially for every meaningful choice the player is allowed to make.

    Obviously, combing these two goals is even harder. To compete with other games in terms of quality a games-developer must focus on the things he knows that the player will experience. With today’s quality standard, doing a game where you have two different story-paths instead of one could be double the work for the developer, especially if the developer strives for the “Immersion and emotional impact” goal. This is because so much effort is needed to create any story-related situation in a game (you need a unique voice and animations and usually a lot of other specifically created content).

    Doing predefined story-situations like that may be a stupid way to create stories in games, but it’s basically the only way to do it today. Ideally, the game should be smart enough to be able to automatically create involving story situations inside the game-world, but we are nowhere near there yet, at least not with the kind of beautifully rendered worlds and characters we are used to.

    Until then there are many ways where you cheat. One concept we made up about during the development of Riddick is “The illusion of non-linearity”, which basically states that as long as the player believes he has a choice, even though he may not, the player will feel he made an important decision which makes the story more involving. There are many ways to implement this thinking, and I most recently saw it used in the excellent Mass Effect, where you often have three dialogue-choices that lead to the same result, even though they can look like opposites from the player perspective.

    Hopefully, we will see more innovative ways to allow the player to have a bigger part in the creation of the game-story. There are a lot of designers out there thinking about it, and there are a couple of interesting games in production trying to do just that. The future will tell.

    Collecting Smiles

    As you may know I’m currently on sabbatical from the games-industry and my company Starbreeze. After having the best job I can imagine for 8 years, I felt I needed a change of scenery and decided to take the money I had managed to put away and burn it on things that makes me feel wiser. You can see some of those things on this site, with small projects of different kinds; some art-projects, some game-projects and some other things that may or may not be good ideas.

    The biggest of these projects is one that I haven’t really started on. It’s the project that I’ve been hoping to do for quite some time, and it’s the project that made me create this site in the first place. It’s the Collecting Smiles project.

    The idea behind the Collecting Smiles project is to collect different smiles throughout the world. It is supposed to give me a reason to travel and force me to meet people I otherwise wouldn’t meet. In every country I visit, I will take a picture of a smiling person living in that country. I will also collect the smiles of other people traveling and while I don’t know how possible it is, I hope to collect the smile of a person inspiring the people of that country, ideally the president/prime minister. The goal is to collect all smiles in each category from every country in the world.

    I just came back from what I guess you could call a dry-run of this project, where I visited Israel, Thailand and China, and I’m starting to realize how hard this will be (surprise!). Ambitions (and pretentious) as this may be, it’s still something I need to try and hopefully things will get rolling soon. Of course, I’ll make heavy use of the internet for this project with the hopes of eventually building a community to help me with the “inspiring-smiles” part. I’ve set up a prototype site for the purpose of the project that can be found here.

    Strip Mails In Current Folder

    Regarding my recent mail-cleaning session I’ve modified a small VBA script I found at Nicola Delfino’s blog that removes attachments from old mails to get the data-base size down. Changes are:

    · Processes all mails in the currently selected folder instead of the currently selected mails
    · Doesn’t add the ATTACH REMOVED string anymore since using WordEditor made my Outlook wonky for some mails
    · Limits the size by throwing away all data after 16384 characters (I had a bunch of 500Kb mails containing program logs)

    First time I’ve used VBA. Kind of neat. You can download the script here.

    Non-stop audio diary & Memory enhancing technologies

    No one can argue that technology has changed how humans think and behave in a very fundamental way. A very simple example is how easy cell phones have made it to meet up with someone while you are out. Before the cell phone you had to carefully plan where and when you would meet while nowadays you just use the cell when it’s time. This may sound like a small thing, but it’s a big change in how you think about planning and also in required personal responsibility.

    Another area that I think will make a big impact is forms of memory enhancing technology. People have used PDAs with calendars for a while, but that’s just the beginning. I’ve recently been cleaning my e-mail archive because I’m switching computers. The e-mail data-base dates back to 1997, and basically contains most of my conversations I’ve had over the computer. This data-base together with Google Desktop is a very powerful tool to help me remember my dealings with persons around me, where I can with a quick search find out why that name seemed familiar to me, or who to contact at a specific company. I was abruptly reminded of how important this was to me when my mail client decided to ignore writing actual data to the files I exported, leaving me with a blank data-base for the period of April 2006 to yesterday. Apart from the frustration and having a hard time answering some of the mails I’ve recently received, it’s also a fundamental feeling of loss. I’ve realized that that data-base has become something I’ve relied on to help me remember things. Why write things down anywhere if you know you can access them so easily?

    It also got me thinking on the future of such memory enhancing devices. One project I’ve been planning to do but am still waiting for the technology to mature is a non-stop audio diary. Basically I want to have a digital audio recorded on my person at all times, recording everything that goes on around me. The use of that data may be limited for a while longer, but it’s not unreasonable to think that within it is possible to automatically transcribe audio to text with good quality in ten years. Suddenly you have a searchable data-base of everything you’ve said and what’s been said to you. Imagine someone telling you a telephone number and by just hearing it, you can be certain that that information will be available when you need it. A friend of mine had an even better example of how that technology could be used:
    - Just think of think of how great it would be when you are fighting with your girlfriend and she says “But you should have told me you are going to be with your friends tonight!” and I could prove to her that I did so.

    While that was mostly for fun there is a big point in there. A lot of conflict in the world is caused by miscommunication and subjective perception. That would potentially change if this technology was common-place.

    I believe the technology is almost ready for me to start my personal recording. The problem is to find a recorder that can manage to record up to 24 hours on one battery-charge, but if anyone has any suggestions about what hardware would be good for such a project, please let me know.

    Interactive storytelling & dialogue


    One of the hardest things to create in games is the interactive stories. It’s probably because that’s something that is very new for us. Before computers, the only stories you could call interactive or branching were the role-playing game-books such as Lone Wolf (which I remember foundly from my childhood). And even those stories are not much older than half a century. Even so, I wish interactive storytelling had evolved as so many other areas related to computers and computer games like graphics technology and AI has.
     
    There are some interesting things going on the subject, though. From the time back when Infocom introduced Zork to the world people have continued the fine tradition of interactive fiction. Every year people try to outperform each other in the Annual Interactive Fiction Competition by creating a short text-adventures where telling a compelling story in an interactive format is key. It’s well worth to check out.
     
    The game-industry in it-self hasn’t produced that much new the last couple of years. One of the more interesting was of course Indigo Prophecy which as one of the best attempts of a true adventure-game in a long time. Still, there wasn’t that much innovation in terms of story-telling and the same must go for the game I myself worked on, The Darkness, where the steps on interactive story-telling we did take are evolutionary and where the story should be immersive rather than have true choices.
     
    One of the bigger problems in my opinion is the lack of techniques that can be used to talk to non-player characters. Having dialogues as catalysts for story-telling is crucial for most movies and books, but they are so very hard to do believable in an interactive media. Very few games today offer anything more interesting other than multiple dialogue-choices, substituting any real interactivity for a set of predefined questions. To me, that’s a step backward from back even from 1966 when ELIZA was created. An exception is of course Façade, an experimental game where you converse with an arguing couple. It combines an advanced AI with a text-input system and it’s an noteworthy accomplishment, but still failes to convince in my opinion.
     
    For some time I’ve been experimenting with a new way to have conversations with non-player characters. The idea is to allow the player to pick up and carry conversation-topics between characters in the game. If a non-player character mentions something new, the player can pickup that topic and carry it to another character to ask him about it. By limiting the number of topics the player can carry, you force the player to decide which topics are worth keeping, instead of just asking about everything as you do in many games. This creates some interesting possibilities where information almost becomes an item that can be used for puzzles and trade.
     
    While it’s not as ambitions a system as to one used in Façade it’s instead very simple and user-friendly (once you get the hang of it). It doesn’t hide that it’s a restricted system but I believe that that isn’t necessary to make dialogues an interesting catalysts for interactive storytelling. I’ve released the prototype I made using this system for PC and today I also finished the PSP version of the game. Check it out here.
     

    Programming art

    I’ve talked a bit about games and art in the past, but something that is much harder to pinpoint is programming art. I was introduced to programming art a long time ago with the demo-scene, where people are creating beautiful applications that often try to do things with a computer that computers weren’t meant for. Another example is one of my great inspirations Karl Sims. While I’m not sure he ever claimed that his work was art, I have a hard time not calling it that while seeing his Virtual Creatures. Last January, I was introduced to another style of programming art by Miltos Manetas who created the site http://www.jacksonpollock.org/. He inspired me to create some of the things exhibited together with Rorschach at Godsmagasinet in Uppsala. One of those creations was something called Replicating Blot which you can check out here.

    As with any other trade like writing or painting, programming is an excellent material to create works of art. The difference is that it is a material that is quickly changing along with the technology it relies on, but that just makes it more interesting.