poast-Human

A scratch pad for my soul and failed projects.

Server updates no longer on SVN

I will no longer be making updates to the server available through SVN. The client will remain open source, but the server code from this point forward will remain closed. The basic server layout is still available in the repo. The reason for closing the remaining development of the server is that most all of the changes being made now are specific to my project. To keep in line with the GPL none of the code currently used in my server is the same as whats in the repo.

Updates to client and server

Just a little look at the progress. The server is comming along nicely. I have added the following features.

  • The ability to debug the event stack. Opened a port that can be connected locally. Displays the event queue in a nice gtk app allowing you to remove poorly behaved events.
  • Everything can now be reset while players are connected. Zones, mobiles, and even scripts.
  • World editor in pygtk. Only about 20% done with this.
  • Moved all the data from SQL to YAML files. They are very convenient , and for now only used to load the prototypes that populate the game world. I have thought ahead and made the design friendly to making it database persistiant later. (thanks for you input noah)
  • Added some new event types: Cycle for repeticious things like damage over time. More I cant think of atm.
  • All player files are infinately expandable without major code changes. (might post a little article on that later… the Dict .get() is fucking awesome.)
  • More….. Should have kept a list

Screenies:

client_login
server_started

client_playing

Client work.

The server has progressed to the point that the client needs to be updated to connect and be developed side by side. Been looking at the MXP protocol to see if it meets the special needs I have. It seems like overkill. This protocol will not need to be reused so something simple and throw away will be fine I think.

A long break

I got a new PC (laptop) so it took me a week or so to get everything going. I’m currently using Ububtu Janunty and Awesome WM atm, and using gnome-blog-post to xml-rpc the posts. Development continues on the mud server, The design document on the wiki. Check the bar on the right side to keep track of the SVN revision.

Revision: 35 lots of new stuff.

A few long days of coding have paid off. R35 is a complete rewrite of the C codebase in python. Not that there was anything wrong with Circle. It’s a very fine game, and a very good start for anyone who wants to study how a multi-player games is made. The lack of real OO in C made me shift gears. I was surprised how fast I got something working though. Granted I had a ton of code laying around to fill in the various gaps from previous projects.

Currently you can:

  • register an account – the account registration and login uses django.contrib.auth
  • enter the game
  • chat with other players – using a dirty hacked together broadcast function. more finite control of this will be added.
  • see who else is online
  • look a the current room you are in
  • move to other rooms. – the persistence is there. it shows you who is in the room with you and where else you can go.

Things added but need work:

  • Ticks – for combat, zone heartbeat, and zone repops are all there but maybe in a hackish way.
  • automap – one of the key features of this game is the map. its a proper dungeon crawl so the map is far more important that the room descriptions
  • classes – the very beginning of support for the class system is there (by that I mean a list of the classes to be implemented.

TODO:

FAR TO MUCH TO LIST.

More updates to come with the SVN revisions.

Committed revision 29.

Fixed some bugs in the look_room function. Earlier modification of the autoexit flag messed with the text sent to a regular character and not an immortal. Added new_spells.c and new_spells.h as a new location for the new spell system. I’m going to develop it along side the existing one. The method being used is sound, but it’s in such a mess that doing it from scratch seems to be the way to go.

Implementation of the spell system will rely on the  skill system as well so work on that will have to be done in tandem. At a bare minimum the skills:

  • Alteration
  • Abjuration
  • Evocation
  • Divination

will need to be added. A few small support functions to check these skills will live in the utils.c/h.

I will also take the time to prepare a cheat sheet of sorts for all the utility functions. These will be used heavily in the work to come.

Long couple of days.

Made a final commit to the repo. Everything worked out and SCons is now used for everything. One of the next tasks there is to convert some of the shell scripts to python instead of bash.

Wrote 8000 words in 4 days which I consider great. Far above my expectations. This story is really shaping up.

Added some new stuff to the site. Lists of books I am currently/will soon/read in the past is in the sidebar. It also provides a simple way to write a small review of each one so I will take advantage of that. Also added FSM and Python logos to the sidebar. They don’t really do anything but look cool.

I’m still working on my other site Frugal American. That will be live soon.

Away with you Autotools!

Like a bad habit I dropped autotools from the server. Complicated Makefiles are junks and need to be gotten rid of. Admittedly the code for the server is all ANSI C and requires no external libs, but the Makefile for the source was over 130 lines. The scons SConstruct file contains only this:

Program(’circle’, Glob(’*.c’))

I mean damn…. That is come crazy shit. SCons is too much for me!!! Doing things more in-depth isn’t much more. Removed like 40 files related to the build system. Thank the FSM for someone thinking or tomorrow instead of yesterday.

Added Wiki and SVN changes

Put up a wiki for the MUD project. Added the design document with a breakdown of the classes, races, skills, and areas. Also added a feed of the SVN commits in the sidebar.  I went ahead and committed my changes I made to Circle. Some of it might not be the best, but I think for the most part everything is cool. The most recent chance before I committed was the formatting of the group commands.

What I'm watching

Stargate AtlantisAfter polishing off Stargate SG-1 for like the 4th time I’m going back and watching Stargate Atlantis again. Rodney ‘Fucking’ Mckay is just so super cool… I don’t really like antagonist. The wraith are kinda lame ass bad guys. Oh well, I’ll give it a shot. This will have to do until Stargate Universe premiers in October I think. I am pretty excited.

Thank the FSM that Fringe and House are starting this week. I am sooooo bored with media lately.

dasclient early alpha screenshot

PythonScreenSnapz001Just a little look at what I have going on the client so far. The widgets are part of a UI library that I have updated and developed for years called clad. I have only used it for my own projects, but it’s pretty nice if I do say so myself. The life/mana/stamina bars are all custom widgets derived from the base widgets of clad and fully functional (even the text entry!). The four blue squares are the beginnings of re-programmable hotkeys/aliases. I have no plan to support the mouse with the client. I don’t see any reason to personally as re-mappable keys could surely do just as good a job, and the code required to do very complicated operations is much lighter. More updates to come if this can hold my interest.

Semi-graphical MUDs

I’m thinking about picking up an old project again. For a while I was enjoying playing MUDs. I often wondered why there had never really been a hybrid MUD out there. Something not graphical really, but with just a GUI. I have already made some headway on a client that will work on any platform that has the ability to use python and pygame. The client can even be packaged with all the dependencies needed to play it.

The server portion of the game is the hard part. I have had a little luck with NakedMud, and also modifying the last and most up to date version of Circle.

The type of game I really want to make would be similar to classic Everquest. I had a lot of fun with that game and think it could be captured in this way.

More to come.