HomePage RecentChanges

This wiki was last modified more than half a year ago and will be deleted eventually!

News

Pseudo-blog about project advancement, see ProjectStatus for info on the latest release.

Voir Nouvelles pour les niouzes en français.

July 12, 2008

Do not delete please :)

June 12, 2008

… prevent the wiki from being deleted …

(I went to work at a game company; non-competition clauses don’t work well with open-source side projects :P)

March 3, 2006

Well, it’s been some time, hasn’t it ?

The wiki went down some time ago; now it’s restored but at a different address; great :)

What has been done in the meanwhile:

September 5, 2005

I’ve been refactoring and cleaning up the code (again !); I’ve homogenized the names I used for classes, converted all the data to a new (better !) XML format, etc. The Tileset editor (just choosing which pictures have which names) works, but needs to be better integrated with the level editor.

At this stage it’s fairly easy to add new gameplay effects, like lasers bouncing on mirrors, but it’s not that easy to do so in a clean way yet (meaning that the more gameplay stuff I add, the harder it is to improve the code). So for now I’ll first try to have a clean and simple game engine.

I informally count the flexibility of the system as the number of different operations it requires to add new stuff in the game - for now adding a tile editor requires me to create an (empty) XML tileset file, reference it in a XML “zone” file, add a door that allows to edit it in a XML “room” file - that’s too much.

A screen of the lasers and mirrors in the current version :

http://dreamstones.gro.clinux.org/screens/ScreenWithLasers.jpg

August 8, 2005

Still no change in gameplay, I’ve been working down in the machine chambers, refactoring, tweaking, fixing …

 SAY 3 Hello, world !

becomes :

 <SAY player="3">Hello, world !</SAY>

I’m thinking about directly using XML-RPC. As I refactor it’s becoming increasingly obvious that that’s where I’m heading. For now I’ll stick to my home-grown format, maybe making it more RPC-like if needed, but it’s not my top priority.

I’ve also been asking around for advice, drewp on #python recommended n3 (a format for RDF) which he uses for a lighting system. It looks nice and dense and readable, and I’m interested in RDF too. But, for now I think I’ll still stick to my home-grown format too, and keep ideas about RDF and RPC on the back burner.

I still have some “underwater” changes I want to make (including increasing the security - now it’s much harder for the client to make the server crash or the other way around, but it’s unfortunately still possible), and then I can finally have some visible change - I’m aiming for a tileset editor, so that the user can browse available tiles and choose which ones to use. That’d be much better than having to directly write some crappy XML :-P

I also got some ideas from reading other people’s code, something I should definitely do more often. Unfortunately, google doesn’t yet allow to search for well-documented game project that use XML for their data.

August 5, 2005

I’m back and working on Dreamstones !

I’m reworking the world map so that it’s represented as a directory tree.

I used to have :

Now I have :

Putting it that way is not only more intuitive, it also solves some namespace problems I’ve been having, and should make it easier to make more in-game editing power (in-game editing is crucial to DreamStones !). Like, you want to create a new tower in the middle of that field ? Wham ! A new tower. I’m still not there, but I’m getting close.

Also, I’ve been worrying a bit more about documentation. I’ve had the semiregular habit of making docstrings and comments, but when I ran HappyDoc, the result was still not very informative :-P There are still a whole lot of undocumented functions, non-obvious unexplained concepts, etc. I’ll definitely have to keep an eye on that. As a result, I’ve been adding explanations and docstrings where they were missing, and improving exception handling - it shouldn’t crash when there’s an error in a xml file !

Maybe I should have made unit tests from the start. Maybe I should add some now. Bah, I’m still too busy cutting the tree to stop and sharpen my saw …


Also !

I haven’t programmed much this last month, but I did still end up with a pile of ideas on index cards, which I’ve been classifying. I’m trying to get a better idea of the general functioning of the game, what the goal is, what keeps the players interested. I’ve also picked up some “experimental notes” of what users think is wrong with the current version (the sprites kinda blend into the background, the keyboard and mouse don’t make such a great combination yet, etc.)


Ah, also, I discovered WorldWideAdventure, a japanese project that looks pretty similar :-)

July 16, 2005

Hmm, a bit of progress, I’ve been working on the way the world is represented. I want players to be able to dynamically create new regions, and make things less XML intensive. However, these days I’m pretty busy on lab work, so don’t expect much progress for the rest of July :-P.

July 9, 2005

OK, now an alternative “rule system” was devised, that’s much more flexible. As expected, it made adding doors and keys a piece of cake :) now if only I could configure it in the XML files too …

July 1, 2005

A few minor changes :

Also, I’m reworking the “local rules” system (again !) to make it more flexible. I was originally creating a doors-and-keys system, but I realized it required me making changes to too many classes. So I’m making it easier to create new types of objects (and god knows that there are still a lot of weird objects I want to add !).

June 28, 2005

w00t ! New release ! In version 0.3 you can pick up weapons and bash enemies in the head with them.

I finally tied up all the little bugs lying around. So, this release works, but the code behind it is not very clean. I felt I had to stop the general “improve everything” movement at least the time to output something playable. Now that that’s done I can go back to refactoring the code and changing everything without worrying if it’s playable or not.


Hmm, been looking at WorldForge

June 27, 2005

I improved the editor, it can now add monsters, loot and the like.

I also gave the server side more direct control over what is displayed in the sidebar, and improved the combat powerups a bit.

June 24, 2005

OK, a screen from the level edition :

http://dreamstones.gro.clinux.org/screens/LevelEditorScreen.jpg

Level edition is not considered as a special play mode, the client program has no idea whether the player’s killing monsters or editing the level. The server gets to control things. (In fact, this is neither an “editor mode” or a ‘level editor” - it’s a group of rooms with the local rules set to ‘editing”. “mode switching” could be useful but is not implemented yet :-P). When not editing, the sidebar can be used for player stats and inventory.

The edition is not perfect, but is now pretty functional. Now I need the same kind of thing for adding actors (monsters, loot and the like).

Then I can make a dungeon full of things to kill and include it in the next release, woo-hoo ! :)

June 23 2005

I made a rudimentary editor palette, works but not perfect. There is now a sidebar on the right, that can display items carried, combat statistics, and the editor palette. It still needs some work before being fully funcitonal.

Apart from that, I’ve cut up the most bloated class in the client code (some more refactoring is still needed), and took care of some low-hanging fruit, like making the text over character’s hear wrap, etc.

I’ve been thinking on ways to restructure the “local rules” system. I’m done with kludgy spike tests, now I want the game system to be solid and flexible. So I’ve been trying to map out what can change and what never will, etc. I’ll have to rethink most of the logic in the system. I have a few pages of notes and diagrams, but no clear idea of the whole structure yet.

June 22, 2005

I went through the wiki putting things back up to date, it’s better like this :) I need to get some more screenshots to decorate !


I did a major overhaul of some parts of the server code : new classes have been created, things are much better organized now (though that part hardly affects playability - it may have sped up some bits, and cleared some bugs stemming from several game objects on the same tile.).

I also started integrating the mouse into the interface : it can now be used to get information about enemies, and for level edition. I have to be careful about using the mouse, I want most things to be playable with the keyboard only, you don’t want to be constantly switching between the two. The mouse should be reserved for occasions like level-editing and thinking (looking at monster stats, etc.), maybe casting spells, using some items …

The next step is making a real level editor, with a palette, etc.

June 20, 2005

OK, the combat now works fine : some zones are defined as “combat” zones, and if you get killed in them, you reappear where you came in. While you’re inside the zone, you have stats, but not when you’re outside (Yes, it does make sense that way ! There’s a reason behind it !). You can kill monsters and be killed by them (the monsters have the same kind of stats as you do, but you can’t see them. I may want to fix that some time).

Also, now the world is entirely defined in XML, w00t ! :) That means you can create a new gameworld with a lot of zones without having to touch the source code. This is an important step forwards, because it paves the way to having an actual level editor !

There are still some new bugs flying around, though, mostly entering and exiting zones (Er, it even makes it unplayable).

Next possible steps (after fixing those bugs) :

After that, I can consider making a new release with a real dungeon (Hmm, or I can make a release now with the new 32x32 tileset and basic coimbat functions ?)

19 june 2005

OK, I finally got around to reading cvs manuals and tutorials, now the DreamStones CVS repository is clean and up-to-date.

I’ve been implementing some gameplay : Now I have :

June 18, 2005

Hmm. Some more fixes.

There’s still some bits of the code that scare me :) Yes yes I should do clean code with lotsa tests.

Anyway, I got the ‘square’ view working perfecly, now you can choose between it and ‘iso’. I also passed a bit more data into XML, and fixed the xml parsing (that had been waiting for a long time !), so it will (theoretically) allow me to introduce more complex structures.

For the ‘square’ tiles, I’ve been using tiles by David E. Gervais (the Angband tileset)- that means there’s a few of the files that aren’t “free” (though I have permission to use them). For now, the isometric tileset works as well (not as ugly !) and is free, though the Angband tileset is much more richer - so, expect the next versions to have levels that require a bigger tileset. Oh well.

Also, I’ve tried to upload the current version to CVS T_T I’m still bad at CVS, plus this time I forgot to clean out all the .pyc files, which means they’ve been added to the CVS tree too X-P. I suspect I also screwed up somewhere else, I may have erased some files I shouldn’t have :-P Anyway it looks like he uploaded *most of the stuff, so I can go on refactoring mercilessly what’s on my disk drive =)

Next step : implementing some gameplay ! w00t !


Later : hmm, yeah, the CVS upload is screwed up, there still are some files I took out (or renamed), plus (worse), I gave the wrong version numbers giving the new version an older number than the old one :-P

June 17, 2005

I had let the project pick up for some time (various causes - moving, setting up a CVS which I’m not that comfortable with, work at the lab, etc.

Anyway, I got back to work on it today : I switched to a 32x32 tileset (instead of isometric). It works fine, but ideally the choice isometric or square should be determined at a single point (I had to modify quite a bit of source code to get it to work).

A lot of data that’s in the source code should be moved out into .init or .xml files. In fact, as a general rule, a lot of stuff ought to be into xml files. Also, the xml parsing is rather clumsy for now, that should be improved too.

older stuff

See also EarlyHistory.