The Steampunk Empire

The Crossroads of the Aether

Hephzibah Marsh
  • Female
  • Campbell, CA
  • United States
Online Now
Share on Facebook

Hephzibah Marsh's Friends

  • Terra Rouge
  • Commodore Falcon Kensington
  • Dawn Davis
  • Madame Erzebet Sedwick
  • Misty Joseph
  • Andrei Mihalache
  • Jimmy Diggs
  • Lady. Cog
  • CPT Edward Leviticus
  • Grace Welch
  • Noele Wayne
  • Lady Sophronia Bloodthorne-Clark
  • Latrisha Brown
  • Peter Davis
  • Dr. C Morerless

Profile Information

Hephzibah Marsh's Discussions

Calling for GMs for role playing in Chat

Started this discussion. Last reply by Dr. Mungojerry Grindlebone Jun 23. 7 Replies

Hello!We are looking to do a reboot of role playing in Chat.If you have an idea and is interested in being a GM please pitch your idea in this discussion.Thanks and happy holidays!HContinue

Role playing in chat

Started this discussion. Last reply by Eulalia Grace Hexham Oct 1, 2015. 4 Replies

Happy fall everyone!We are thinking of opening up chat during certain time of the day for role playing.If you are interested and have thoughts on this topic (yes, no, have awesome idea on a story line) please comment below.HContinue

Background missing on the empire

Started this discussion. Last reply by Hephzibah Marsh May 5, 2015. 4 Replies

Hello!Thank you for all of your messages for letting me know something is a miss with the empire! I am current working with our service provide to try to fix the issue.Thanks again!Continue

Show off your Jack-o'-lantern

Started this discussion. Last reply by Hephzibah Marsh Nov 6, 2013. 18 Replies

As we were strolling through the Museum of Country Life in Ireland, we came across this little gem.…Continue

Tags: halloween, Jack-o'-lantern, pumpkin


Birthday retrospective

So, recently Evennia celebrated its ten-year anniversary. That is, it was on Nov 20, 2006, Greg Taylor made the first repo commit to what would eventually become the Evennia of today. Greg has said that Evennia started out as a "weird experiment" of building a MUD/MUX using Django. The strange name he got from a cheesy NPC in the Guild Wars MMORPG and Greg's first post to the mailing list also echoes the experimental intention of the codebase. The merger with Twisted came pretty early too, replacing the early asyncore hack he used and immediately seeing a massive speedup. Evennia got attention from the MUD community - clearly a Python-based MUD system sounded attractive.

When I first joined the project I had been looking at doing something MUD-like in Python for a good while. I had looked over the various existing Python code bases at the time and found them all to be either abandoned or very limited. I had a few week's stunt working with pymoo before asking myself why I was going through the trouble of parsing a custom script language ... in Python ... Why not use Python throughout? This is when I came upon Evennia. I started making contributions and around 2010 I took over the development as real life commitments forced Greg to step down.

Over the years we have gone through a series of changes. We have gone from using SVN to Mercurial and then to using GIT. We have transited from GoogleCode to GitHub - the main problem of which was converting the wiki documentation (Evennia has extensive documentation).

For a long time we used Python's reload() function to add code to the running game. It worked ... sometimes, depending on what you changed. Eventually it turned out to be so unpredictable that we now use two processes, one to connect clients to and the other running the game, meaning we can completely restart one process without disconnecting anyone.

Back in the day you were also expected to create your own game in a folder game/ inside the Evennia repo itself. It made it really hard for us to update that folder without creating merge conflicts all over. Now Evennia is a proper library and the code you write is properly separated from ours.

So in summary, many things have happened over the years, much of it documented in this blog. With 3500 commits, 28 000 lines of code (+46% comments) and some 25 people contributing in the last year, Openhub lists us as

"A mature, well-established codebase with a stable commit history, a large development team and very well documented source code". 

It's just words compiled by an algorithm, but they still feel kinda good!

While Evennia was always meant to be used for any type of multiplayer text game, this general use have been expanded and cleaned up a lot over the years.

This has been reflected in the width of people wanting to use it for different genres: Over time the MUSH people influenced us into adding the option to play the same character from many different clients at the same time (apparently, playing on the bus and then continuing on another device later is common for such games). Others have wanted to use Evennia for interactive fiction, for hack&slash, deep roleplay, strategy, education or just for learning Python.

Since Evennia is a framework/library and tries to not impose any particular game systems, it means there is much work to do when building a game using Evennia. The result is that there are dozens of games "in production" using Evennia (and more we probably don't know about), but few public releases yet.

The first active "game" may have been an Evennia game/chat supporting the Russian version of 4chan... The community driven Evennia demo-game Ainneve is also progressing, recently adding combat for testing. This is aimed at offering an example of more game-specific code people can build from (the way Diku does). There are similar projects meant for helping people create RPI (RolePlay Intensive) and MUSH-style games. That said, the Evennia-game Arx, After the Reckoning is progressing through beta at a good clip and is showing all signs of becoming the first full-fledged released Evennia game. 

So cheers, Evennia for turning 10. That's enough of the introspection and history. I'll get back to more technical aspects in the next post.

Season of fixes

The last few months has been dominated by bug-fixing and testing in Evennia-land. A lot more new users appears to be starting to use Evennia, especially from the MUSH world where the Evennia-based Arx, After the Reckoning is, while still in alpha, currently leading the charge.

With a new influx of users comes the application of all sorts of use- and edge-cases that stretch and exercise the framework in all the places where it matters. There is no better test of code than new users trying to use it unsupervised! Evennia is holding up well overall but there are always things that can be improved. 
  • I reworked the way on-object Attributes was cached (from a stupid but simple way to a lot more sophisticated but harder way) and achieved three times faster performance in certain special cases people had complained about. Other issues also came to view while diving into this, which could be fixed.
  • I reworked the venerable batch command and batchcode processors (these allow to create a game world from a script file) and made their inputs make more sense to people. This was one of the older parts of Evennia and apart from the module needing a big refactoring to be easier to read, some parts were pretty fragile and prone to break. Especially when passing it file names tended to be confusing since it understood only certain relative paths to the files to read in and not even I could remember if one should include the file ending or not. This was cleaned up a lot. 
  • Lots of changes and updates were made to the RPSystem contrib, which optionally adds more advanced roleplaying mechanics to Evennia. The use of this in Evennia's demo game (Ainneve, being separately developed) helps a lot for ironing out any remaining wrinkles.
  • Lots and lots of other fixes and smaller feature updates were done (About 150 commits and 50 Issues closed since end of summer).
A fun thing with a growing user base is that we are also starting to see a lot more Pull requests and contributions. Thanks a lot, keep 'em coming!
  • Map system contrib (merged), for creating a world based on ASCII map. Talking about maps, users contributed not just one but two new tutorials for implementing both static and dynamic maps with Evennia. 
  • Webclient notifications (pending), for making the webclient show us in a clearer way when it gets updated in a different tab. A more advanced implementation awaits the webclient being expanded with a proper client-side option window; there is currently a feature request for this if anyone's interested in taking it on.   
  • AI system contrib (pending). This is a full AI backend for adding complex behaviors to game agents. It uses Behavioral trees and is designed to be modified both in code and from inside the game.
  • Action system contrib (pending). This contrib assigns the actions of Characters a time cost and delays the results of commands the given time. It also allows players to go into turn-based mode to enforce a strict action order. 
  • Lots of now closed PRs were contributed by the Arx lead developer to fix various bugs and edge-cases as they came up in live use.
The fixing and tightening of the nuts and bolts will likely continue the remainder of the year. I'm currently working on a refactoring of the way command sets are merged together (see the end of my blog post on Evennia in pictures for a brief summary of the command system). But with so much new blood in the community, who can tell where things will turn from here!

The art of sharing nicks and descriptions

In the month or so since the merger of Evennia's development branch and all its web-client updates, we have been in bug-fixing mode as more people use and stress the code.

There have been some new features as well though - I thought it could be interesting to those of you not slavishly following the mailing list.


Shared web login

When you are logged into the website you will now also auto-login to your account in the web client - no need to re-enter the login information! The inverse is also true. You still need to connect to game at least once to create the account, but after that you will stay connected while the browser session lasts.

Behind the scenes the shared login uses cookies linked to server-side Django sessions which is a robust and safe way to manage access tokens. Obviously browser sessions are irrelevant to telnet- or ssh connections.

Extended Nicks 

Evennia's nick(name) system is a way to create a personal alias for things in game - both to on-the-fly replacing text you input and for referring to in-game objects. In the old implementation this replacement was simply matched from the beginning of the input - if the string matched, it was replaced with the nick.

In this new implementation, the matching part can be much more elaborate. For example you can catch arguments and put those arguments into the replacement nick in another order.

Let's say we often use the @dig command this limited way:

@dig roomname;alias = exit;alias, backexit;alias
Let's say we find this syntax unintuitive. The new nick system allows to change this by catching the arguments in your nick and put it into the "real" command. Here is an example of a syntax putting the aliases in parentheses and separating all components with commas:

> nick newroom $1($2), $3($4), $5($6) = @dig $1;$2 = $3;$4, $5;$6

From here on you can now create your rooms with entries like this: 

> newroom The great castle(castle), to the castle(castle), back to the path(back)

Multidescer contrib

I have added a new "multidescer" to the contrib folder. A multidescer is (I think) a MUSH term for a mechanism managing more than one description. You can then combine any of these various descriptions into your "active" description.

An example of usage:

desc hat = a blue hat.
desc basic = This is a tall man with narrow features.
desc clothing = He is wearing black, flowing robes.

 These commands store the description on the Character and references them as unique keywords. Next we can combine these strings together in any order to build the actual current description: 

> desc/set basic + |/ + clothing + On his head he has + hat
> look self
This is a tall man with narrow features. 
He is wearing black, flowing robes. On his head he has a blue hat.

This allows for both very flexible and easy-to-update descriptions but also a way to handle freeform equipment and clothing. And you can of course use the nick system to pre-format the output

> nick setdesc $1 $2 $3 $4 = $1 + |/ + clothing + On his head he has a $4

This way you can clothe yourself in different outfits easily using the same output format:

> setdesc basic clothing hat 
 The multidescer is a single, self-contained command that is easy to import and add to your game as needed.

... There's also plenty of bug fixes, documentation work and other minor things or course.

Anyway, summer is now upon us here in the northern hemisphere so things will calm down for a bit, at least from my end. Have a good 'un!

Image by ryancr (released under Creative Commons)


Hephzibah Marsh


Latest Activity

Steve Moore left a comment for Hephzibah Marsh
"Happy B day from Steve "
20 hours ago
SouthernGothic left a comment for Hephzibah Marsh
"Happy Birthday to our little community's founder!"
Captain left a comment for Hephzibah Marsh
Nicci T. left a comment for Hephzibah Marsh
"A propitious Birthday to you, and many Happy Unbirthdays!"
Lillyan Rhyan joined Hephzibah Marsh's group

Bay Area Steampunk Society

Let's chat about going ons of steampunkary in the Bay Area!
Nov 27
Lora Tincher joined Hephzibah Marsh's group

Irish Steampunk Society

For Steampunk Enthusiast in Ireland! Let's get together to talk about Events and life in Ireland.See More
Nov 2
John Liam joined Knight Redfeild's group

Maine Alliance

get people close to Maine and in Maine together for events to promote steampunk idea and play games ( capture the flag, laser tag...ect.). This site will help people around Maine including NH, NY,CT, MA, VT. as a way to plan events in the area.
Jun 21
Dr. Mungojerry Grindlebone liked Hephzibah Marsh's video
Apr 7



Hephzibah Marsh's Photos

  • Add Photos
  • View All

Hephzibah Marsh's Videos

  • Add Videos
  • View All

Comment Wall (414 comments)

You need to be a member of The Steampunk Empire to add comments!

Join The Steampunk Empire

At 5:21pm on December 9, 2016, Steve Moore said…

Happy B day from Steve 

At 1:41am on December 9, 2016, SouthernGothic said…

Happy Birthday to our little community's founder!

At 7:45am on December 8, 2016, Captain said…
At 5:54am on December 8, 2016, Nicci T. said…

A propitious Birthday to you, and many Happy Unbirthdays!

At 8:11am on December 8, 2015, Captain said…
At 3:58am on December 8, 2015, Nicci T. said…

A very Happy Birthday to you, Ms. Marsh!

At 8:49pm on August 2, 2015, jenny said…

Good evening Miss Marsh. Lately I've been having problems posting in group discussions. The main group is intact but the companion discussion seem to time stamp my entries but nothing is visible.

I have adobe flash... I suspect there may be an issue with this application and or my browser. If you could shed some light on these issues, it would be greatly appreciated. But don't worry, you site is of great enjoyment.

At 4:22pm on July 17, 2015, Debbie Fearney said…
Thank you so much!
At 10:37am on May 2, 2015, Alice E Keyes said…
I was informed that you might be able to shed some light as to why the main page and the Denizen now has a white background and blue lettering. I have asked around and it does not seem to be only me. Your page looks like what the main page used to look like. Is there some type of maintenance happening.

Thanks for any into and help,

Alice E Keyes
At 1:06am on December 09, 2014, Bourget- gave Hephzibah Marsh a gift

© 2016   Created by Hephzibah Marsh.   Powered by

Badges  |  Report an Issue  |  Terms of Service