Welcome to the Wa homepage!
Wa is (well, will be) a rogue-like game set in a fantasy/oriental setting.
(This means I am not going to try and re-create an authentic Asian setting,
much of my inspiration comes from the old Oriental Adventures supplement for
AD&D, comics and cheesy, cheesy movies)
What's a rogue-like game? It's a genre of computer roleplaying games descending
from an ancient game called -appropriately- Rogue. Some of the more famous
members of the genre are Nethack,
Angband (and its many, many variants) and ADOM.
Those three in particular are still in active development and have big enough
communities to have their own Usenet newsgroups, but there are tonnes of other
roguelikes. RLs seem to make popular programming projects.
Some of the usual features found in this type of game are:
I decided to start Wa to learn the Python programming language on a fun
project. My work on it is fairly intermittent. In December 2001, I created a
cave generator and some (crappy) line-of-sight code. I built the first version
using Tkinter (a Python interface for the tcl/tk scripting language), but it
was quite slow. That's about all I did with it for a while, but this spring I
was doodling out a path-finding algorithm and added it to the game. I also
re-implemented the user interface using the Pygame
libraries, which are a wrapper layer to the SDL
library and this seems to be quite a bit faster than Tkinter, for what
I want to do.
Replayability - many aspects of the game are generated randomly, meaning each
game you play is set in a different world than previous games
Single player - usually, you control only a single character
ASCII graphics - most roguelikes display the world in an overhead view using
ASCII characters to represent things in the game. (Classicly, the player is
represented by @) Some games have optional tile graphics and there
have been attempts at making 3d/isometric views for RL games. Some people
consider Diablo and Diablo 2 to be roguelikes, or at least cousins to the
Permanent death - in most rls, when your character dies, you can't return to
the last save point, your character is dead and you have to start a new one.
This adds a degree of tension to the game, and makes winning a noteworthy
accomplishment. Backing up your save files is considered serious cheating by
I have no idea when a version that is actually playable will be produced. With
the nice summer weather coming up, it might be hard to find time for hobby
programmng. I haven't posted any code yet, because there isn't much to show and
I haven't decided what license to release it under. (A open source license of
some sort, but I have to decide between the GPL and a BSD-style license)
As mentioned, Wa is implemented in Python, so it should be fairly cross
platform. (Pygame/SDL is available on a number of different platforms, and I
may also look at doing a curses version of the interface)
- 9 Feb 2004 Added a new screenshot showing independent light sources working in the game. Now, a
torched dropped on the ground or a lamp carried by a monster will provide illumination. I have a few more details to fix to better
handle overlapping light sources, but once this is done, I think much of my work for the next little while will be adding content
for town and quests in the prologue.
I also realized that I should be using the .gif (or maybe .png?) format for my screenshots. When I use .jpgs, I the colours seem
to turn out faded and weak. So starting with this screenshot, you can see how colourful my game actually is :)
- 21 Jan 2004 I've been making a fair bit of progress lately. (Frequent updates about what has been implemented and what I'm
currently working on can be found at Wa's LiveJournal. I'll update this
space with bigger news items.
Anyway, I completed the basic mechanism for quests and the saving/loading of games. Here is a screen shot
of the player exploring the first level of the first quest. (The indoors part of this level is randomized, using the tower generator I wrote)
- 15 Jan 2004 Holy cow! Has it been this long already? In response to a few emails I've received, I have decided to get
off my ass and start working on Wa again.
My first task this afternoon was to switch the game from loading the fixed wilderness map from an xml to a using a pre-parsed file
stored as a serialized object (via Pickle).
Here's a screenshot.
- 2 May 2003 Added a screenshot of my map editor, which will be a big help in creating the XML files
for the fixed wilderness sections of the game (and gave me a chance to try out curses under Python). Also, using ideas from an
article on Roguelike Development (hopefully Björn will have his DNS issues
worked out by the time you click on this), I created a tower level generator. One of the quests in the Prologue will take you
to an undead-infested tower, so this as another important feature to implement. I have one more little tweak I want to do to the
algorithm, but it's generating fairly nice looking towers already. (No screenshots yet)
Snipped out the old news to keep this page from getting excessively long!
This section has details of the game. Some of these will be sketches, ideas or
features I intend to implement, but I'll try to describe what is actually in
the game and what is still on the drawing board.
I don't intend to have super-strict character classes (2nd Edition AD&D
style for instance). Instead, users will pick their starting roles, which are
essentially templates of what they've learned up to this point in the lives at
the start of the game. From then on, the character will be shaped by the
various skills they study as they progress in experience level.
Of course, the starting role will influence what they learn. If you are a
spellcaster-type character at the start, it will be more diffuclt to make the
switch over to being a fighter. Skills will be taught by masters found in the
game, who will be a little different than normal shopkeepers. You won't just
walk into a 'sword training shop' and improve your sword skill. The master
first has to accept you as a student, with each master having his or her own
requirements for potential students.
My biggest concern about this scheme is to make sure there are a variety of
useful paths to take in character development. I don't want to end up with a
game where there is only one way to win. Role affects the character's starting
skills and equipment.
I have defined four roles so far:
Bushi - the standard warrior-type
role.Another idea is for a geisha role, which would
be a bard style character. I don't know how that will fit into the game yet, so
I'm leaving it out for now. I might also add shukenja, who would have a more
pacifist role, similar perhaps to healers in Nethack.
Sohei - warrior-priests, the cleric of most games.
Ninja - stealthy, spy-thief type.
Sorcerer - spellcaster role. (I haven't found a good Japanese term for
Characters will have one of four social classes - samurai, farmer, merchant and
outcast. The social class affects starting equipment, skills (to a small
degree) and how NPCs react to you. Some masters may only train students of a
I haven't created any races for the game yet, although they are a staple of
fantasy RPGs. I have a few ideas: human (of course), tengu (winged goblins,
tricksters who make good warriors) and kitsune (a race of spellcasters who can
transform into foxes). These are still drawing board ideas, however.
I am thinking of a magic system based on five elements (earth, air, fire, water
and void) but haven't decided how spells will work. AD&D style, implemented
as skills, etc. Nor have I decided if there will be a difference between the
magic wielded by sohei (who are priests) and sorcerers.
Getting chased through a cave complex by hideous h's!
Battling goblins in a wooded area. (12k)
Wandering about a maze. (12k)
A new look for the dungeons! (36K)
Contact - firstname.lastname@example.org
Hosting provided by TinFoilHat.ca.