spil!

Introduction

For a long time, I've wanted to combine all my creative skills that I enjoy practising so much: computer programming and designing, character animations, photography, drawing, story writing ...

Now I'm developing a computer game, doing all the design and implementation from scratch. The game will be some kind of a an role-play adventure game, eventually with multi-player capabilities. But I haven't decided on any specific game or story yet.

So far, the working title of this project is spil! meaning game or to play, which is exactly what this is all about!

Game play and Story

I have no complete plan written down of how the game should be played and what the exact story will be. I do have a very detailed idea of what the final game will be like; the looks, controls, type of game, atmosphere, story, and game play in general, inspired heavily from games like Day of the Tentacle, Monkey Island, LOOM, MUD, Myth II, Diablo II, Warcraft II, and other games, I've spent lots of time on.

Much is documented in my private notes directory, dedicated for keeping and continuously adding new ideas; Some are mere one-line text files, others contain several pages, some are scanned sketches, sound recordings, and what not Code-wise, much it is already designed, and some even implemented and working.

I believe that when the code is ready, I will find it easy to write the story and the characters in details.

Current Status

I'm modelling a basic character for testing. Later I'll animate him and record some appropriate sounds.

This is part of my work on the Graphics Layer of the game. Specifically, I'm implementing the 3D engine, and making character Animations being played when Actions are performed. Sounds will be added as well.

Please take a look at the latest screen shots below in the files section.

Work Finished

Here is a brief description of what is finished so far:

Engine Layer
Lots of work on the Engine Core completed, including many Actions, API for Artificial Intelligence and Story lines.
Networking Layer
The game is separated into a game client and game server, and the client can connect to and communicate with the server. This is currently implemented with RMI and will eventually be re-implemented with a better networking library or perhaps using plain sockets.
User Interface Layer
The client has a simple command line interpreter that allows one to connect to the server, load a character, and play with it: Move around in a scene and perform actions like in a real MUD game. It's quite fragile, but does a great job. Soon I'll replace it with a GUI anyway.

Development Plan

A sketchy list of what I have in mind to develop and roughly in what order:

Graphics Layer and User Interface
Currently in development...
Animation
Characters must move when performing Actions, e.g. when walking, picking up something, etc.
Sound
Sounds are already supported by the Engine Layer, and are distributed properly the listeners, but are currently only shown as text. It's time to load and play the real sound files.
Login
An account system where players can login and logout, and perhaps create a new character.
Save game
Store character and other game specific status between login, logout, and server restarts.
Database
A structured database to store logins, save games, etc.
Storyline Framework
A framework to control how a story is played. I think this is designed and somewhat implemented.
Conversations
A framework to control how a player and an NPC communicate. I have done some design but no code exists.
Proof-of-concept
Implement a full-blown proof-of-concept character with all available features: 3D model, animations, sounds, icons, AI, conversation, and capable of interacting with the Storyline Framework of the Scene.
User Interface
Work out the final user interface, determining how the player interacts with the game, controls his or her players, performs actions, etc.
Configuration Editors
Write a Character Editor, Area Editor, Scene and Landscape Editor, Conversation Editor, and Storyline Editor. This will make the next giant step easier:
Game Stories
Create the characters, model the world and environment, record the conversations and sounds, write the quests and the whole story in general! I'm really looking forward to this part! An army of testers have already volunteered to help test, give opinions, suggestions, eliminate bugs, and thereby make the game a success.
Homepage
Create a nice homepage for promoting the final game.
Release Party
Happy happy, joy joy! Look forward to demonstrations of the final game, free autographs, merchandise, pindemadder, and lambrusco ad libitum, and even a live jazz band. Everyone is invited! =)

Tools and Technologies

I'm writing the code in Java which means that the game will run on virtually any PC.

Development is done using Eclipse for IDE, JUnit for unit testing, and Ant for automatic building, installation, and deployment. Characters and other figures are modeled and animated in Blender, while stills are made with GIMP. Source code, documents, notes, graphics, 3D models, etc. is kept under version control with Subversion. And all this is done using the Ubuntu Linux-based operating system.

Files

A few related files that may be of interest to the very curious:

FAQ  (1 KB)
2005-05-07.cli1.png  (13 KB)
2005-05-08.cli2.png  (17 KB)
2005-05-08.cli3.png  (20 KB)
2005-12-10.render.png  (59 KB)
2006-01-01.render.png  (43 KB)
2007-08-11.jack.11622.avi  (555 KB)
2007-08-11.jack.15281.avi  (117 KB)
2007-08-11.jack.960x540.png  (40 KB)
2007-08-12.jack.14883.avi  (210 KB)

✎ Last updated: tue, 21 apr 2009