Next I added one new migration in the Account app - this is the migration that copies the data from the player to the equivalent account-named copies in the database. Since Player will not exist if you run this from scratch you have to make sure that the Player model exists at that point in the migration chain. You can't just do this with a normal import and traceback, you need to use the migration infrastructure. This kind of check works:
# ...
+ # ...
@@ -887,19 +893,19 @@
PlayerDB = apps.get_model("players", "PlayerDB")
- except LookupError:
+ except LookupError:
return
- # copy data from player-tables to database tables here
+ # copy data from player-tables to database tables here
class Migrations(migrations.Migration):
- # ...
+ # ...
operations = [
@@ -923,7 +929,7 @@
- # ...
+ # ...
@@ -931,9 +937,9 @@
"Returns bool if table exists or not"
- sql_check_exists = "SELECT * from %s;" % tablename
+ sql_check_exists = "SELECT * from %s;" % tablename
- ### [Renaming Django's Auth User and App](https://evennia.blogspot.com/2017/08/renaming-djangos-auth-user-and-app.html)
+ ### [Renaming Django's Auth User and App](https://evennia.blogspot.com/2017/08/renaming-djangos-auth-user-and-app.html)
diff --git a/devblog/2018.html b/devblog/2018.html
index 727e581916..4b92dc7783 100644
--- a/devblog/2018.html
+++ b/devblog/2018.html
@@ -13,7 +13,7 @@
2022 (1)
+ 2022 (2)
This class will offer actions to open, insert a code and move the object around. It will need some more configuration and addition of messages to show etc. But overall, this method-to-command solution ended up being very stable and extremely easy to use to make complex, interactive objects.
@@ -765,7 +771,7 @@ This is a brass key.I think of the escape room as going through a series of states. A change of state could for example be that the user solved a puzzle to open a secret wall. That wall is now open, making new items and puzzles available. This means room description should change along with new objects being created or old ones deleted.
I chose to represent states as Python modules in a folder. To be a state, each module needs to have a global-level class State inheriting from my new BaseState class. This class has methods for initializing and cleaning up the state, as well as was for figuring out which state to go to next. As the system initializes the new state, it gets the current room as argument, so it can modify it.
This is a (simplified) example of a state module:
-# module `state_001_start.py`
+# module `state_001_start.py`
@@ -789,9 +795,9 @@ MUG_DESC = &quo
def at_focus_drink(self, caller, **kwargs):
- caller.msg(f"You drink {self.key}.")
+ caller.msg(f"You drink {self.key}.")
- self.next_state() # trigger next state
+ self.next_state() # trigger next state
@@ -1074,7 +1080,7 @@ MUG_DESC = &quo
A new year has come around and it's time to both look back at the old and onward to the future of Evennia, the Python MUD creation system!
Last year
-Last year saw the release of Evennia 0.8. This version of Evennia changes some fundamental aspects of the server infrastructure so that the server can truly run in daemon mode as you would expect (no more running it in a GnuScreen session if you want to see logging to the terminal). It also adds the new Online Creation System, which lets builders create and define prototypes using a menu system as well as big improvements in the web client, such as multiple window-panes (allows the user to assign text to different windows to keep their client uncluttered) as well as plenty of fixes and features to help ease life for the Evennia developer. Thanks again to everyone who helped out and contributed to the release of Evennia 0.8!
+Last year saw the release of Evennia 0.8. This version of Evennia changes some fundamental aspects of the server infrastructure so that the server can truly run in daemon mode as you would expect (no more running it in a GnuScreen session if you want to see logging to the terminal). It also adds the new Online Creation System, which lets builders create and define prototypes using a menu system as well as big improvements in the web client, such as multiple window-panes (allows the user to assign text to different windows to keep their client uncluttered) as well as plenty of fixes and features to help ease life for the Evennia developer. Thanks again to everyone who helped out and contributed to the release of Evennia 0.8!
On a personal note, I spoke about Evennia at PyCon Sweden this December, which was fun. I might put up my talk and make a more detailed blog post about that in the future, but my talk got a surprising amount of attention and positive feedback. Clearly many people have fond memories of MUDs and enjoy seeing they are not only still around but are possible to create in Python!
This year
diff --git a/devblog/2020.html b/devblog/2020.html
index f17d43ce76..fc8a56d73e 100644
--- a/devblog/2020.html
+++ b/devblog/2020.html
@@ -13,7 +13,7 @@
2022 (1)
+ 2022 (2)
+ -
+ Jul 5
+ Tutorial-writing and Attributes galore
+
+
+
-
Jan 6
Into 2022 with thanks and plans
diff --git a/devblog/2021.html b/devblog/2021.html
index d7e326d488..4e7a2cf6a1 100644
--- a/devblog/2021.html
+++ b/devblog/2021.html
@@ -13,7 +13,7 @@
2022 (1)
+ 2022 (2)
+ -
+ Jul 5
+ Tutorial-writing and Attributes galore
+
+
+
-
Jan 6
Into 2022 with thanks and plans
@@ -647,27 +653,27 @@ Here the blog starts...
I wrote my own build_devblog.py program that simple reads all .md files from a directory. It figures out the date and title (from file name or meta-header) and runs mistletoe on it. I create a dataclass with all the post-relevant properties on it. So far so good. Now we need to inject this into an HTML structure.
The html
Next I prepared a little post.html Jinja template:
-<h1 id={{ blogpost.anchor }}>
+<h1 id={{ blogpost.anchor }}>
- {{ blogpost.title }}
+ {{ blogpost.title }}
- <a class="devblog-headerlink" href="{{ blogpost.permalink }}" title="Permalink to this blog post">¶</a>
+ <a class="devblog-headerlink" href="{{ blogpost.permalink }}" title="Permalink to this blog post">¶</a>
- <div class="devblog-title-date">- {{ blogpost.date_pretty }}</div>
+ <div class="devblog-title-date">- {{ blogpost.date_pretty }}</div>
</h1>
-{{ blogpost.html }}
+{{ blogpost.html }}
<footer class="devblog-footer">
<span class="devblog-copyrights">
- {{ blogpost.image_copyrights }}
+ {{ blogpost.image_copyrights }}
</span>
- <a class="devblog-to-toplink" href="{{ blogpost.permalink }}" title="Link to top of post">⇬(top)</a>
+ <a class="devblog-to-toplink" href="{{ blogpost.permalink }}" title="Link to top of post">⇬(top)</a>
</footer>
diff --git a/devblog/2022.html b/devblog/2022.html
index b8fbdb7dba..ba9dce1022 100644
--- a/devblog/2022.html
+++ b/devblog/2022.html
@@ -13,7 +13,7 @@
2022 (1)
+ 2022 (2)
+ -
+ Jul 5
+ Tutorial-writing and Attributes galore
+
+
+
-
Jan 6
Into 2022 with thanks and plans
@@ -602,6 +608,178 @@
+
+
+ Tutorial-writing and Attributes galore
+ ¶
+ - July 5, 2022
+
+
+It has been a while since I wrote anything for the dev blog of Evennia, the MU creation system - so it's about time!
+It's been a busy spring and early summer for me, with lots of real-life work going on away from Evennia land. But that hasn't meant activity on the Evennia code base has slowed!
+Many eyes on Evennia 1.0-dev
+Earlier this year I invited people to try the Evennia develop branch - what will become Evennia 1.0. A lot of bold beta-testers have since swapped to using the 1.0 branch. While there are plenty of issues being reported, most seem pretty happy about it so far. As mentioned in earlier dev blogs, Evennia 1.0 has a lot of improvements and new features!
+As part of this, the amount of PRs being made against develop branch has increased a lot, with awesome community members stepping up to fix bugs and even address long-standing annoyances. This includes everything from big improvements in ANSI parsing, fixes to the 1.0 FuncParser, RPSystem contrib optimizations and much more - the list of closed PRs is long.
+Another big part are everyone helping to answer questions in chat and suggesting improvements to the community in general. Thanks everyone!
+The Upcoming beginner tutorial
+On my end, I'm working on the Beginner Tutorial for the new 1.0 documentation. This will be a multi-part tutorial where you get to make a little MUD game from scratch. It goes through the basics of Evennia all the way to releasing your little game and I hope it will help people get started. This will also lead to a new contrib - the evadventure package, which should (I plan) have everything the tutorial needs to run. This is useful for those that prefer picking apart existing code over reading about it.
+The tutorial game itself is based on Knave, an light Old-School-Renaissance (OSR) tabletop roleplaying ruleset inspired by early editions Dungeons & Dragons. It's simple enough to fit in a tutorial but with enough wrinkles to showcase how to create some basic rpg systems in Evennia:
+
+-
+
Using Attributes (STR, DEX etc)
+
+-
+
Rules (dice rolls, advantage, contested rolls etc)
+
+-
+
Character generation (Knave chargen is mostly random, but it still showcases Evennia's menu system EvMenu).
+
+-
+
Inventory management and equipment (including limited storage as well as items worn or wielded).
+
+-
+
Turn-based combat system (menu based)
+
+-
+
Attacking with wielded weapons (or spell rune)
+
+-
+
Stunts to give you advantages for later turns or give enemies disadvantage for later turns
+
+-
+
Using items for healing or other effects
+
+-
+
Fleeing and chasing
+
+
+
+-
+
Alternative Twitch-based combat system (might be a stretch goal)
+
+-
+
NPCs with very simple AI, Death and respawn
+
+-
+
Simple Questing system with NPC quest givers and quest states
+
+-
+
A small example world (tech-demo)
+
+
+I won't include how to make a Crafting system, since I've added a full Crafting contrib to Evennia 1.0 for devs to be inspired by or tear apart.
+Some nice new things about Attributes
+In general news, Evennia 1.0 will see two big improvements when it comes to Attributes.
+AttributeProperty
+This is a new way to write - and particularly initialize - Attributes. Traditionally in Evennia you need to initialize your object's Attributes something like this:
+from evennia import DefaultCharacter
+
+
+
+class Character(DefaultCharacter):
+
+ def at_object_creation(self):
+
+ self.db.strength = 10
+
+ self.db.mana = 12
+
+
+This still works. But with the new AttributeProperty you can now write it like this instead:
+from evennia import DefaultCharacter
+
+from evennia.typeclasses.attributes import AttributeProperty
+
+
+
+class Character(DefaultCharacter):
+
+ strength = AttributeProperty(10)
+
+ mana = AttributeProperty(10)
+
+
+This makes Attributes look more like Django fields, sitting directly on the class. They can also have category and all other values you'd expect. You can still access those Attributes like normal:
+strength = char.db.strength
+
+mana = char.attributes.get("mana")
+
+
+But you can now also do just
+strength = char.strength
+
+mana = char.mana
+
+
+directly (you'll need to be careful to not override any existing properties on objects this way of course).
+An interesting feature of using an AttributeProperty is that you can choose to not
+actually create the Attribute under the hood unless the default changed:
+class Character(DefaultCharacter):
+
+ strength = AttributeProperty(10, autocreate=False)
+
+ mana = AttributeProperty(10, autocreate=False)
+
+
+When you now access char.stength you will get 10 back but you won't actually be hitting the database to load anything - it's just giving you the default. Not until you change the default will the actual Attribute be created. While this can be very powerful for optimization, note that you can of course not access such data via char.db or char.attributes.get either (because no Attribute yet exists). So this functionality can be confusing unless you know what you are doing. Hence autocreate defaults to True.
+Saving Attributes with hidden database objects
+This is one of those classical quirks of Evennia that many have encountered. While Evennia can save a lot of things in an Attribute, including database objects, it cannot do so if it doesnt know those database objects are there. This is fine if you are saving a list or a dict with objects in it - Evennia will go through it and make sure to serialize each db-object in turn.
+But if you "hide away" your db-object you will be in trouble:
+class MyStore:
+
+ def __init__(self, dbobj):
+
+ self.dbobj = dbjobj
+
+
+
+char = Character.objects.get(id=1)
+
+obj.db.mystore = MyStore(char) # leads to Traceback!
+
+
+This fails because we store char inside MyStore and there is no way for Evennia to know it's there and to handle it properly.
+For the longest time, this was just a limitation you had to accept. But with Evennia 1.0-dev you can now help Evennia out:
+from evennia.utils.dbserialize import dbserialize, dbunserialize
+
+
+
+class MyStore:
+
+ def __init__(self, dbobj):
+
+ self.dbobj = dbobj
+
+ def __serialize_dbobjs__(self):
+
+ self.dbobj = dbserialize(self.dbobj)
+
+ def __deserialize_dbobjs__(self):
+
+ self.dbobj = dbunserialize(self.dbobj)
+
+
+
+char = Character.objects.get(id=1)
+
+obj.db.mystore = MyStore(char) # now OK!
+
+
+With the new __serialize_dbobjs__ and __deserialize_dbobjs__, Evennia is told how to properly stow away the db-object (using the tools from evennia.utils) before trying to serialize the entire MyStore. And later, when loading it up, Evennia is helped to know how to restore the db-object back to normal again after the rest of MyStore was already loaded up.
+Moving forward ...
+For Evennia 1.0, the tutorial-writing is the single biggest project that remains - that and the general documentation cleanup of our entirely rewritten documentation.
+After that I will dive back in with the issues that has popped up during beta-testing of 1.0-dev and try to wrap up the most serious ones before release. Still some time away, but it's getting there ... slowly!
+
+
+
+
+
Into 2022 with thanks and plans
diff --git a/devblog/feed.rss b/devblog/feed.rss
index db30fd2738..5dcdc042b3 100644
--- a/devblog/feed.rss
+++ b/devblog/feed.rss
@@ -3,4 +3,4 @@
multi-player games and virtual worlds (also known as MUD, MUSH, MU,
MUX, MUCK, etc). While Evennia handles all the necessary things every
online game needs, like database and networking, you create the game of
- your dreams by writing normal Python modules.en-US Fri, 07 Jan 2022 00:31:42 GMT rfeed v1.1.1 https://github.com/svpino/rfeed/blob/master/README.md Into 2022 with thanks and plans 2022.html#2022-01-06-into-2022-with-thanks-and-plans<br>I didn't write an end-of-the year summary for 2021, so this first devblog of 2022 will also look back a bit at the past year. It also helps me get used to using this new blog platform I wrote about in the previous post. Griatch Thu, 06 Jan 2022 00:00:00 GMT 2022.html#2022-01-06-into-2022-with-thanks-and-plans The blog moved! 2021.html#2021-11-18-the-blog-moved!If you are reading this, you may notice that this blog has moved from its old home over on blogspot. I had no issues with blogspot except for the fact that writing the blog itself was done in a rather clunky editor with limited support for code. Griatch Thu, 18 Nov 2021 00:00:00 GMT 2021.html#2021-11-18-the-blog-moved! Where do I begin? 2021.html#2021-03-21-where-do-i-begin?This is a repost of an article I originally wrote for the Imaginary Realities e-zine, Volume 7, issue 3 back in 2015. It's not Evennia-specific but meant for a wider audience interested in making a text-based multiplayer game (MUD/MU*). Since IR is no longer active, I repost it here with only some minor cleanup. Griatch Sun, 21 Mar 2021 00:00:00 GMT 2021.html#2021-03-21-where-do-i-begin? Happy New Years 2021! 2021.html#2021-01-01-happy-new-years-2021!Griatch Fri, 01 Jan 2021 00:00:00 GMT 2021.html#2021-01-01-happy-new-years-2021! Evennia 0.9.5 released 2020.html#2020-11-14-evennia-0.9.5-releasedGriatch Sat, 14 Nov 2020 00:00:00 GMT 2020.html#2020-11-14-evennia-0.9.5-released On using Markdown with Sphinx 2020.html#2020-10-20-on-using-markdown-with-sphinxLast post I wrote about the upcoming v1.0 of Evennia, the Python MU* creation engine. We are not getting to that 1.0 version quite yet though: The next release will be 0.9.5, hopefully out relatively soon (TM). Griatch Tue, 20 Oct 2020 00:00:00 GMT 2020.html#2020-10-20-on-using-markdown-with-sphinx Spring updates while trying to stay healthy 2020.html#2020-04-14-spring-updates-while-trying-to-stay-healthyGriatch Tue, 14 Apr 2020 00:00:00 GMT 2020.html#2020-04-14-spring-updates-while-trying-to-stay-healthy Blackifying and fixing bugs 2019.html#2019-09-30-blackifying-and-fixing-bugsGriatch Mon, 30 Sep 2019 00:00:00 GMT 2019.html#2019-09-30-blackifying-and-fixing-bugs Evennia 0.9 released 2019.html#2019-07-04-evennia-0.9-releasedLast week we released Evennia 0.9, the next version of the open source Python MU* creation system. Griatch Thu, 04 Jul 2019 00:00:00 GMT 2019.html#2019-07-04-evennia-0.9-released Creating Evscaperoom Part 2 2019.html#2019-05-26-creating-evscaperoom-part-2Jester smiling oh so sweetlyThe Jester, your 'adversary' Griatch Sun, 26 May 2019 00:00:00 GMT 2019.html#2019-05-26-creating-evscaperoom-part-2 Creating Evscaperoom Part 1 2019.html#2019-05-18-creating-evscaperoom-part-1Over the last month (April-May 2019) I have taken part in the Mud Coder's Guild Game Jam "Enter the (Multi-User) Dungeon". This year the theme for the jam was One Room. Griatch Sat, 18 May 2019 00:00:00 GMT 2019.html#2019-05-18-creating-evscaperoom-part-1 Podcast about Evennia 2019.html#2019-05-09-podcast-about-evenniaI was interviewed on the (pretty grandiosely named) podcast Titans of Text the other day. Griatch Thu, 09 May 2019 00:00:00 GMT 2019.html#2019-05-09-podcast-about-evennia Steaming on Eating Jam 2019.html#2019-04-25-steaming-on-eating-jamGriatch Thu, 25 Apr 2019 00:00:00 GMT 2019.html#2019-04-25-steaming-on-eating-jam Into 2019 2019.html#2019-01-02-into-2019A new year has come around and it's time to both look back at the old and onward to the future of Evennia, the Python MUD creation system! Griatch Wed, 02 Jan 2019 00:00:00 GMT 2019.html#2019-01-02-into-2019 Evennia 0.8 released 2018.html#2018-09-30-evennia-0.8-releasedAfter about a year of work and almost 540 commits from close to 20 contributors, Evennia 0.8 is out! Evennia is a Python game server for creating text-based multiplayer games (MUDs, Mushes, etc) using Django and Twisted.Some of the upcoming improvements have been covered by previous dev blogs, such as the completely reworked server infrastructure: Griatch Sun, 30 Sep 2018 00:00:00 GMT 2018.html#2018-09-30-evennia-0.8-released Inline building in upcoming Evennia 0.8 2018.html#2018-08-18-inline-building-in-upcoming-evennia-0.8Griatch Sat, 18 Aug 2018 00:00:00 GMT 2018.html#2018-08-18-inline-building-in-upcoming-evennia-0.8 Kicking into gear from a distance 2018.html#2018-01-27-kicking-into-gear-from-a-distanceThe last few weeks I have reworked the way Evennia's startup procedure works. This is now finished in the develop branch so I thought I'd mention a little what's going on. Griatch Sat, 27 Jan 2018 00:00:00 GMT 2018.html#2018-01-27-kicking-into-gear-from-a-distance New year, new stuff 2018.html#2018-01-05-new-year,-new-stuffGriatch Fri, 05 Jan 2018 00:00:00 GMT 2018.html#2018-01-05-new-year,-new-stuff Getting a MUD RP scene going 2017.html#2017-10-29-getting-a-mud-rp-scene-goingThis article is a little different from the normal more technical Evennia-specific content of this blog. It was originally published as a light-hearted addition to the Imaginary Realities e-zine many years ago. While IR is still online it has since dozed off. So I'm reposting it here to bring it to a new audience. Griatch Sun, 29 Oct 2017 00:00:00 GMT 2017.html#2017-10-29-getting-a-mud-rp-scene-going Evennia in Hacktobergest 2017 2017.html#2017-10-01-evennia-in-hacktobergest-2017Evennia, the Python MUD/MUSH/MU* creation library participates in the Hacktoberfest 2017 (sign up on that page)! Hacktoberfest is open for all open-source projects like ours. After registering, if you make at least four Pull Requests to a public repo on Github during October (need not just be to Evennia), you win a limited-edition T-shirt! Griatch Sun, 01 Oct 2017 00:00:00 GMT 2017.html#2017-10-01-evennia-in-hacktobergest-2017 Evennia 0.7 released 2017.html#2017-09-20-evennia-0.7-releasedEvennia 0.7 released Griatch Wed, 20 Sep 2017 00:00:00 GMT 2017.html#2017-09-20-evennia-0.7-released Renaming Django's Auth User and App 2017.html#2017-08-25-renaming-django's-auth-user-and-appGriatch Fri, 25 Aug 2017 00:00:00 GMT 2017.html#2017-08-25-renaming-django's-auth-user-and-app The luxury of a creative community 2017.html#2017-04-23-the-luxury-of-a-creative-communityGriatch Sun, 23 Apr 2017 00:00:00 GMT 2017.html#2017-04-23-the-luxury-of-a-creative-community News items from the new year 2017.html#2017-02-05-news-items-from-the-new-yearThe last few months have been mostly occupied with fixing bugs and straightening out usage quirks as more and more people take Evennia through its paces. Griatch Sun, 05 Feb 2017 00:00:00 GMT 2017.html#2017-02-05-news-items-from-the-new-year Birthday retrospective 2016.html#2016-11-30-birthday-retrospectiveSo, 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. Griatch Wed, 30 Nov 2016 00:00:00 GMT 2016.html#2016-11-30-birthday-retrospective Season of fixes 2016.html#2016-10-13-season-of-fixesGriatch Thu, 13 Oct 2016 00:00:00 GMT 2016.html#2016-10-13-season-of-fixes The art of sharing nicks and descriptions 2016.html#2016-07-01-the-art-of-sharing-nicks-and-descriptionsGriatch Fri, 01 Jul 2016 00:00:00 GMT 2016.html#2016-07-01-the-art-of-sharing-nicks-and-descriptions Evennia in Pictures 2016.html#2016-05-31-evennia-in-picturesThis article describes the MU* development system Evennia using pictures! Griatch Tue, 31 May 2016 00:00:00 GMT 2016.html#2016-05-31-evennia-in-pictures Evennia 0.6! 2016.html#2016-05-22-evennia-0.6!Griatch Sun, 22 May 2016 00:00:00 GMT 2016.html#2016-05-22-evennia-0.6! Technical stuff happening 2016.html#2016-03-24-technical-stuff-happeningHi folks, a bit more technical entry this time. These usually go onto the Evennia mailing list but I thought it would be interesting to put it in the dev-blog for once. Griatch Thu, 24 Mar 2016 00:00:00 GMT 2016.html#2016-03-24-technical-stuff-happening Climbing up Branches 2016.html#2016-02-14-climbing-up-branchesToday I pushed the latest Evennia development branch "wclient". This has a bunch of updates to how Evennia's webclient infrastructure works, by making all exchanged data be treated equal (instead of treating text separately from other types of client instructions). Griatch Sun, 14 Feb 2016 00:00:00 GMT 2016.html#2016-02-14-climbing-up-branches A summary of a year 2015.html#2015-12-17-a-summary-of-a-yearA summary of a year Griatch Thu, 17 Dec 2015 00:00:00 GMT 2015.html#2015-12-17-a-summary-of-a-year MIT uses Evennia! 2015.html#2015-11-12-mit-uses-evennia!Griatch Thu, 12 Nov 2015 00:00:00 GMT 2015.html#2015-11-12-mit-uses-evennia! Illustrations and soaps 2015.html#2015-10-11-illustrations-and-soapsI recently made an article presenting the infrastructure and main coding features of Evennia using a series of nifty diagrams. Griatch Sun, 11 Oct 2015 00:00:00 GMT 2015.html#2015-10-11-illustrations-and-soaps Emoting System 2015.html#2015-10-02-emoting-systemtitle: Emoting Systems, or how to chat up a girlcopyrights: Image: ©Griatch deviantart Griatch Fri, 02 Oct 2015 00:00:00 GMT 2015.html#2015-10-02-emoting-system Evennia on `podcast.__init__` 2015.html#2015-09-29-evennia-on-`podcast.__init__`Griatch Tue, 29 Sep 2015 00:00:00 GMT 2015.html#2015-09-29-evennia-on-`podcast.__init__` Pushing through a straw 2015.html#2015-09-24-pushing-through-a-strawRecently, a user reported a noticeable delay between sending a command in-game to multiple users and the result of that command appearing to everyone. You didn't notice this when testing alone but I could confirm there was almost a second delay sometimes between entering the command and some users seeing the result. A second is very long for stuff like this. Processing time for a single command is usually in the milliseconds. What was going on? Griatch Thu, 24 Sep 2015 00:00:00 GMT 2015.html#2015-09-24-pushing-through-a-straw A wagon load of post summer updates 2015.html#2015-08-27-a-wagon-load-of-post-summer-updatesGriatch Thu, 27 Aug 2015 00:00:00 GMT 2015.html#2015-08-27-a-wagon-load-of-post-summer-updates Announcing the Evennia example-game project "Ainneve" 2015.html#2015-06-22-announcing-the-evennia-example-game-project-"ainneve"Griatch Mon, 22 Jun 2015 00:00:00 GMT 2015.html#2015-06-22-announcing-the-evennia-example-game-project-"ainneve" Need your help! 2015.html#2015-06-15-need-your-help!This for all you developers out there who want to make a game with Evennia but are not sure about what game to make or where to start off. Griatch Mon, 15 Jun 2015 00:00:00 GMT 2015.html#2015-06-15-need-your-help! Dreaming big? 2015.html#2015-05-30-dreaming-big?Griatch Sat, 30 May 2015 00:00:00 GMT 2015.html#2015-05-30-dreaming-big? Things goin on 2015.html#2015-05-11-things-goin-onGriatch Mon, 11 May 2015 00:00:00 GMT 2015.html#2015-05-11-things-goin-on Documenting Python without Sphinx 2015.html#2015-05-09-documenting-python-without-sphinxGriatch Sat, 09 May 2015 00:00:00 GMT 2015.html#2015-05-09-documenting-python-without-sphinx Building Django proxies and MUD libraries 2015.html#2015-01-19-building-django-proxies-and-mud-librariesGriatch Mon, 19 Jan 2015 00:00:00 GMT 2015.html#2015-01-19-building-django-proxies-and-mud-libraries Slowly moving through town 2014.html#2014-10-02-slowly-moving-through-townAfter getting questions about it I recently added the Slow Exit contribution to the main repository as an example. Griatch Thu, 02 Oct 2014 00:00:00 GMT 2014.html#2014-10-02-slowly-moving-through-town Dance my puppets 2014.html#2014-08-04-dance-my-puppetsIn many traditional multiplayer text engines for MUD/MUSH/MU*, the player connects to the game with an account name that also becomes their character's in-game name. When they log into the game they immediately "become" that character. If they want to play with another character, they need to create a new account. Griatch Mon, 04 Aug 2014 00:00:00 GMT 2014.html#2014-08-04-dance-my-puppets Webby stuff 2014.html#2014-06-30-webby-stuffLatest Evennia come with a range of improvements, mainly related to its integration with the web. Griatch Mon, 30 Jun 2014 00:00:00 GMT 2014.html#2014-06-30-webby-stuff Bringing back Python memory 2014.html#2014-06-15-bringing-back-python-memoryLately I've done work on the memory management of Evennia. Analyzing the memory footprint of a python program is a rather educational thing in general. Griatch Sun, 15 Jun 2014 00:00:00 GMT 2014.html#2014-06-15-bringing-back-python-memory Imaginary Realities volume 6, issue 1 2014.html#2014-05-16-imaginary-realities-volume-6,-issue-1Griatch Fri, 16 May 2014 00:00:00 GMT 2014.html#2014-05-16-imaginary-realities-volume-6,-issue-1 Moving from Google Code to Github 2014.html#2014-02-08-moving-from-google-code-to-githubA few weeks back, the Evennia project made the leap from Google Code to GitHub (here). Things have been calming down so it's time to give a summary of how the process went. Griatch Sat, 08 Feb 2014 00:00:00 GMT 2014.html#2014-02-08-moving-from-google-code-to-github Looking forwards and backwards 2014.html#2014-01-24-looking-forwards-and-backwardsWe are almost a month into the new year, time to look forward. Griatch Fri, 24 Jan 2014 00:00:00 GMT 2014.html#2014-01-24-looking-forwards-and-backwards Imaginary Realities is back 2013.html#2013-12-16-imaginary-realities-is-backThe Imaginariy Realities webzine was the place to go to for MUD game design articles in the late 90's. Last released in 2001, its articles are still worth the read for any game designers today.But guess what - this venerable ezine has now returned! You can find the new issue here. Griatch Mon, 16 Dec 2013 00:00:00 GMT 2013.html#2013-12-16-imaginary-realities-is-back Out of band mergings 2013.html#2013-11-28-out-of-band-mergingsAs of today the development repository of Evennia, which has been brewing for a few months now, merged into the main repository. This update grew from one experimental feature to a relatively big update in the end. Together with the "many-character-per-player" feature released earlier, this update covers all the stuff I talked about in my Behind the Scenes blog post. Griatch Thu, 28 Nov 2013 00:00:00 GMT 2013.html#2013-11-28-out-of-band-mergings A list of Evennia topics 2013.html#2013-10-22-a-list-of-evennia-topicsSome Evennia updates. Griatch Tue, 22 Oct 2013 00:00:00 GMT 2013.html#2013-10-22-a-list-of-evennia-topics One to Many 2013.html#2013-05-13-one-to-manyAs of yesterday, I completed and merged the first of the three upcoming Evennia features I mentioned in my Churning Behind the Scenes blog post: the "Multiple Characters per Player" feature. Griatch Mon, 13 May 2013 00:00:00 GMT 2013.html#2013-05-13-one-to-many Churning behind the scenes 2013.html#2013-01-29-churning-behind-the-scenesAt the moment there are several Evennia projects churning along behind the scenes, none of which I've yet gotten to the point of pushing into a finished state. Apart from bug fixes and other minor things happening, these are the main updates in the pipeline at the moment. Griatch Tue, 29 Jan 2013 00:00:00 GMT 2013.html#2013-01-29-churning-behind-the-scenes Evennia changes to BSD license 2012.html#2012-10-28-evennia-changes-to-bsd-licenseAs of today, Evennia changes to use the very permissive BSD license.Now, our previous "Artistic License" was also very friendly. One main feature was that it made sure that changes people made to the core Evennia library (i.e. not the game-specific files) were also made available for possible inclusion upstream. A good notion perhaps, but the licensing text was also quite long and it was clear some newcomers parsed it as more restrictive than it actually was. Griatch Sun, 28 Oct 2012 00:00:00 GMT 2012.html#2012-10-28-evennia-changes-to-bsd-license Community interest 2012.html#2012-10-05-community-interestIt's fun to see a growing level of activity in the Evennia community. The last few months have seen an increase in the number of people showing up in our IRC channel and mailing list. With this has come a slew of interesting ideas, projects and MUD-related discussion (as well as a few inevitable excursions into interesting but very non-mud-related territory - sorry to those reading our chat logs). Griatch Fri, 05 Oct 2012 00:00:00 GMT 2012.html#2012-10-05-community-interest Combining Twisted and Django 2012.html#2012-08-31-combining-twisted-and-djangoCombining Twisted and Django Griatch Fri, 31 Aug 2012 00:00:00 GMT 2012.html#2012-08-31-combining-twisted-and-django Taking command 2012.html#2012-08-16-taking-commandCommands are the bread and butter of any game. Commands are the instructions coming in from the player telling the game (or their avatar in the game) to do stuff. This post will outline the reasoning leading up to Evennia's somewhat (I think) non-standard way of handling commands.In the case of MUDs and other text games commands usually come in the form of entered text. But clicking on a graphical button or using a joystick is also at some level issuing a command - one way or another the Player instructs the game in a way it understands. In this post I will stick to text commands though. So open door with red key is a potential command. Griatch Thu, 16 Aug 2012 00:00:00 GMT 2012.html#2012-08-16-taking-command Extending time and details 2012.html#2012-06-26-extending-time-and-detailsFor the fun of it I added an "Extended Room" contrib to Evennia the other night.("Contribs" are optional code snippets and systems that are not part of the actual codebase. They are intended for you to use or dissect as you like in your game development efforts). Griatch Tue, 26 Jun 2012 00:00:00 GMT 2012.html#2012-06-26-extending-time-and-details Coding from the inside 2012.html#2012-06-11-coding-from-the-insideSome time ago, a message on the Evennia mailing list asked about "softcode" support in Evennia. Softcode, a defacto standard in the MUX/MUCK/MUSH/MOO world, is conceptually a "safe" in-game scripting language that allows Players to extend the functionality of things without having access to the server source. Griatch Mon, 11 Jun 2012 00:00:00 GMT 2012.html#2012-06-11-coding-from-the-inside Dummies doing (even more) dummy things 2012.html#2012-05-30-dummies-doing-(even-more)-dummy-thingsGriatch Wed, 30 May 2012 00:00:00 GMT 2012.html#2012-05-30-dummies-doing-(even-more)-dummy-things Shortcuts to goodness 2012.html#2012-03-26-shortcuts-to-goodnessEvennia, being a MUD-design system, needs to take some special considerations with its source code - its sole purpose is after all to be read, understood and extended.Python is of course very readable by default and we have worked hard to give extensive comments and documentation. But for a new user looking into the code for the first time, it's still a lot of stuff to take in. Evennia consists of a set of Django-style "applications" interacting and in some cases inheriting from each other so as to avoid code duplication. For a new user to get an overview could therefore mean diving into more layers of code than one would like. Griatch Mon, 26 Mar 2012 00:00:00 GMT 2012.html#2012-03-26-shortcuts-to-goodness Dummies doing dummy things 2012.html#2012-02-22-dummies-doing-dummy-thingsIt can often be interesting to test hypothetical situations. So the other day I did a little stress test to see how Evennia handles many players. This is a follow-up to the open bottlenecks post.Evennia, being based on Twisted, is an asynchronous mud server. This means that the program is not multi-threaded but instead it tries to divide up the code it runs into smaller parts. It then quickly switches between executing these parts in turn, giving the impression of doing many things at the same time. There is nothing magical about this - each little piece of code blocks the queue as it runs. So if a particular part takes too long, everyone else will have to wait for their turn. Likewise, if Twisted cannot flip through the queue as fast or faster than new things get added to it, it will start to fall behind. Griatch Wed, 22 Feb 2012 00:00:00 GMT 2012.html#2012-02-22-dummies-doing-dummy-things Commands and you 2012.html#2012-02-17-commands-and-youCommands define how a Player interacts with a given game. In a text-based game it's not amiss to say that the available commands are paramount to the user experience. In principle commands could represent mouse clicks and other modernistic GUI sugar - but for this blog I'll stick with the traditional entered text.Like most things in Evennia, Commands are Python classes. If you read the documentation about them you'll find that the command classes are clumped together and tacked onto all objects in-game. Commands hanging onto a Character object will be available all the time, whereas commands tacked onto a grandfather's clock will only be available to you when you stand in front of said clock. Griatch Fri, 17 Feb 2012 00:00:00 GMT 2012.html#2012-02-17-commands-and-you Such a small thing ... 2012.html#2012-02-15-such-a-small-thing-...Lately I went back to clean up and optimize the workings of Evennia's Attributes. I had a nice idea for making the code easier to read and also faster by caching more aggressively. The end result was of course that I managed to break things. In the end it took me two weeks to get my new scheme to a state where it did what it already did before (although faster). Griatch Wed, 15 Feb 2012 00:00:00 GMT 2012.html#2012-02-15-such-a-small-thing-... Evennia's open bottlenecks 2012.html#2012-02-05-evennia's-open-bottlenecksSince Evennia hit beta I have been mostly looking behind the scenes to see what can be cleaned up and not in the core server. One way to do that is to check where the bottlenecks are. Since a few commits, Evennia's runner has additions for launching the Python cProfiler at startup. This can be done for both the Portal and the Server separately. Griatch Sun, 05 Feb 2012 00:00:00 GMT 2012.html#2012-02-05-evennia's-open-bottlenecks About this dev blog 2012.html#2012-02-05-about-this-dev-blogThis is to be my Evennia dev blog, but it will also cover various other musings concerning programming in general and mud designing in particular. Whereas the Evennia mailing list remains the main venue for discussion, I will probably use this blog for announcing features too.Some background: Griatch Sun, 05 Feb 2012 00:00:00 GMT 2012.html#2012-02-05-about-this-dev-blog
\ No newline at end of file
+ your dreams by writing normal Python modules.en-US Tue, 05 Jul 2022 18:43:36 GMT rfeed v1.1.1 https://github.com/svpino/rfeed/blob/master/README.md Tutorial-writing and Attributes galore 2022.html#2022-07-05-tutorial-writing-and-attributes-galoreIt has been a while since I wrote anything for the dev blog of Evennia, the MU creation system - so it's about time! Griatch Tue, 05 Jul 2022 00:00:00 GMT 2022.html#2022-07-05-tutorial-writing-and-attributes-galore Into 2022 with thanks and plans 2022.html#2022-01-06-into-2022-with-thanks-and-plans<br>I didn't write an end-of-the year summary for 2021, so this first devblog of 2022 will also look back a bit at the past year. It also helps me get used to using this new blog platform I wrote about in the previous post. Griatch Thu, 06 Jan 2022 00:00:00 GMT 2022.html#2022-01-06-into-2022-with-thanks-and-plans The blog moved! 2021.html#2021-11-18-the-blog-moved!If you are reading this, you may notice that this blog has moved from its old home over on blogspot. I had no issues with blogspot except for the fact that writing the blog itself was done in a rather clunky editor with limited support for code. Griatch Thu, 18 Nov 2021 00:00:00 GMT 2021.html#2021-11-18-the-blog-moved! Where do I begin? 2021.html#2021-03-21-where-do-i-begin?This is a repost of an article I originally wrote for the Imaginary Realities e-zine, Volume 7, issue 3 back in 2015. It's not Evennia-specific but meant for a wider audience interested in making a text-based multiplayer game (MUD/MU*). Since IR is no longer active, I repost it here with only some minor cleanup. Griatch Sun, 21 Mar 2021 00:00:00 GMT 2021.html#2021-03-21-where-do-i-begin? Happy New Years 2021! 2021.html#2021-01-01-happy-new-years-2021!Griatch Fri, 01 Jan 2021 00:00:00 GMT 2021.html#2021-01-01-happy-new-years-2021! Evennia 0.9.5 released 2020.html#2020-11-14-evennia-0.9.5-releasedGriatch Sat, 14 Nov 2020 00:00:00 GMT 2020.html#2020-11-14-evennia-0.9.5-released On using Markdown with Sphinx 2020.html#2020-10-20-on-using-markdown-with-sphinxLast post I wrote about the upcoming v1.0 of Evennia, the Python MU* creation engine. We are not getting to that 1.0 version quite yet though: The next release will be 0.9.5, hopefully out relatively soon (TM). Griatch Tue, 20 Oct 2020 00:00:00 GMT 2020.html#2020-10-20-on-using-markdown-with-sphinx Spring updates while trying to stay healthy 2020.html#2020-04-14-spring-updates-while-trying-to-stay-healthyGriatch Tue, 14 Apr 2020 00:00:00 GMT 2020.html#2020-04-14-spring-updates-while-trying-to-stay-healthy Blackifying and fixing bugs 2019.html#2019-09-30-blackifying-and-fixing-bugsGriatch Mon, 30 Sep 2019 00:00:00 GMT 2019.html#2019-09-30-blackifying-and-fixing-bugs Evennia 0.9 released 2019.html#2019-07-04-evennia-0.9-releasedLast week we released Evennia 0.9, the next version of the open source Python MU* creation system. Griatch Thu, 04 Jul 2019 00:00:00 GMT 2019.html#2019-07-04-evennia-0.9-released Creating Evscaperoom Part 2 2019.html#2019-05-26-creating-evscaperoom-part-2Jester smiling oh so sweetlyThe Jester, your 'adversary' Griatch Sun, 26 May 2019 00:00:00 GMT 2019.html#2019-05-26-creating-evscaperoom-part-2 Creating Evscaperoom Part 1 2019.html#2019-05-18-creating-evscaperoom-part-1Over the last month (April-May 2019) I have taken part in the Mud Coder's Guild Game Jam "Enter the (Multi-User) Dungeon". This year the theme for the jam was One Room. Griatch Sat, 18 May 2019 00:00:00 GMT 2019.html#2019-05-18-creating-evscaperoom-part-1 Podcast about Evennia 2019.html#2019-05-09-podcast-about-evenniaI was interviewed on the (pretty grandiosely named) podcast Titans of Text the other day. Griatch Thu, 09 May 2019 00:00:00 GMT 2019.html#2019-05-09-podcast-about-evennia Steaming on Eating Jam 2019.html#2019-04-25-steaming-on-eating-jamGriatch Thu, 25 Apr 2019 00:00:00 GMT 2019.html#2019-04-25-steaming-on-eating-jam Into 2019 2019.html#2019-01-02-into-2019A new year has come around and it's time to both look back at the old and onward to the future of Evennia, the Python MUD creation system! Griatch Wed, 02 Jan 2019 00:00:00 GMT 2019.html#2019-01-02-into-2019 Evennia 0.8 released 2018.html#2018-09-30-evennia-0.8-releasedAfter about a year of work and almost 540 commits from close to 20 contributors, Evennia 0.8 is out! Evennia is a Python game server for creating text-based multiplayer games (MUDs, Mushes, etc) using Django and Twisted.Some of the upcoming improvements have been covered by previous dev blogs, such as the completely reworked server infrastructure: Griatch Sun, 30 Sep 2018 00:00:00 GMT 2018.html#2018-09-30-evennia-0.8-released Inline building in upcoming Evennia 0.8 2018.html#2018-08-18-inline-building-in-upcoming-evennia-0.8Griatch Sat, 18 Aug 2018 00:00:00 GMT 2018.html#2018-08-18-inline-building-in-upcoming-evennia-0.8 Kicking into gear from a distance 2018.html#2018-01-27-kicking-into-gear-from-a-distanceThe last few weeks I have reworked the way Evennia's startup procedure works. This is now finished in the develop branch so I thought I'd mention a little what's going on. Griatch Sat, 27 Jan 2018 00:00:00 GMT 2018.html#2018-01-27-kicking-into-gear-from-a-distance New year, new stuff 2018.html#2018-01-05-new-year,-new-stuffGriatch Fri, 05 Jan 2018 00:00:00 GMT 2018.html#2018-01-05-new-year,-new-stuff Getting a MUD RP scene going 2017.html#2017-10-29-getting-a-mud-rp-scene-goingThis article is a little different from the normal more technical Evennia-specific content of this blog. It was originally published as a light-hearted addition to the Imaginary Realities e-zine many years ago. While IR is still online it has since dozed off. So I'm reposting it here to bring it to a new audience. Griatch Sun, 29 Oct 2017 00:00:00 GMT 2017.html#2017-10-29-getting-a-mud-rp-scene-going Evennia in Hacktobergest 2017 2017.html#2017-10-01-evennia-in-hacktobergest-2017Evennia, the Python MUD/MUSH/MU* creation library participates in the Hacktoberfest 2017 (sign up on that page)! Hacktoberfest is open for all open-source projects like ours. After registering, if you make at least four Pull Requests to a public repo on Github during October (need not just be to Evennia), you win a limited-edition T-shirt! Griatch Sun, 01 Oct 2017 00:00:00 GMT 2017.html#2017-10-01-evennia-in-hacktobergest-2017 Evennia 0.7 released 2017.html#2017-09-20-evennia-0.7-releasedEvennia 0.7 released Griatch Wed, 20 Sep 2017 00:00:00 GMT 2017.html#2017-09-20-evennia-0.7-released Renaming Django's Auth User and App 2017.html#2017-08-25-renaming-django's-auth-user-and-appGriatch Fri, 25 Aug 2017 00:00:00 GMT 2017.html#2017-08-25-renaming-django's-auth-user-and-app The luxury of a creative community 2017.html#2017-04-23-the-luxury-of-a-creative-communityGriatch Sun, 23 Apr 2017 00:00:00 GMT 2017.html#2017-04-23-the-luxury-of-a-creative-community News items from the new year 2017.html#2017-02-05-news-items-from-the-new-yearThe last few months have been mostly occupied with fixing bugs and straightening out usage quirks as more and more people take Evennia through its paces. Griatch Sun, 05 Feb 2017 00:00:00 GMT 2017.html#2017-02-05-news-items-from-the-new-year Birthday retrospective 2016.html#2016-11-30-birthday-retrospectiveSo, 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. Griatch Wed, 30 Nov 2016 00:00:00 GMT 2016.html#2016-11-30-birthday-retrospective Season of fixes 2016.html#2016-10-13-season-of-fixesGriatch Thu, 13 Oct 2016 00:00:00 GMT 2016.html#2016-10-13-season-of-fixes The art of sharing nicks and descriptions 2016.html#2016-07-01-the-art-of-sharing-nicks-and-descriptionsGriatch Fri, 01 Jul 2016 00:00:00 GMT 2016.html#2016-07-01-the-art-of-sharing-nicks-and-descriptions Evennia in Pictures 2016.html#2016-05-31-evennia-in-picturesThis article describes the MU* development system Evennia using pictures! Griatch Tue, 31 May 2016 00:00:00 GMT 2016.html#2016-05-31-evennia-in-pictures Evennia 0.6! 2016.html#2016-05-22-evennia-0.6!Griatch Sun, 22 May 2016 00:00:00 GMT 2016.html#2016-05-22-evennia-0.6! Technical stuff happening 2016.html#2016-03-24-technical-stuff-happeningHi folks, a bit more technical entry this time. These usually go onto the Evennia mailing list but I thought it would be interesting to put it in the dev-blog for once. Griatch Thu, 24 Mar 2016 00:00:00 GMT 2016.html#2016-03-24-technical-stuff-happening Climbing up Branches 2016.html#2016-02-14-climbing-up-branchesToday I pushed the latest Evennia development branch "wclient". This has a bunch of updates to how Evennia's webclient infrastructure works, by making all exchanged data be treated equal (instead of treating text separately from other types of client instructions). Griatch Sun, 14 Feb 2016 00:00:00 GMT 2016.html#2016-02-14-climbing-up-branches A summary of a year 2015.html#2015-12-17-a-summary-of-a-yearA summary of a year Griatch Thu, 17 Dec 2015 00:00:00 GMT 2015.html#2015-12-17-a-summary-of-a-year MIT uses Evennia! 2015.html#2015-11-12-mit-uses-evennia!Griatch Thu, 12 Nov 2015 00:00:00 GMT 2015.html#2015-11-12-mit-uses-evennia! Illustrations and soaps 2015.html#2015-10-11-illustrations-and-soapsI recently made an article presenting the infrastructure and main coding features of Evennia using a series of nifty diagrams. Griatch Sun, 11 Oct 2015 00:00:00 GMT 2015.html#2015-10-11-illustrations-and-soaps Emoting System 2015.html#2015-10-02-emoting-systemtitle: Emoting Systems, or how to chat up a girlcopyrights: Image: ©Griatch deviantart Griatch Fri, 02 Oct 2015 00:00:00 GMT 2015.html#2015-10-02-emoting-system Evennia on `podcast.__init__` 2015.html#2015-09-29-evennia-on-`podcast.__init__`Griatch Tue, 29 Sep 2015 00:00:00 GMT 2015.html#2015-09-29-evennia-on-`podcast.__init__` Pushing through a straw 2015.html#2015-09-24-pushing-through-a-strawRecently, a user reported a noticeable delay between sending a command in-game to multiple users and the result of that command appearing to everyone. You didn't notice this when testing alone but I could confirm there was almost a second delay sometimes between entering the command and some users seeing the result. A second is very long for stuff like this. Processing time for a single command is usually in the milliseconds. What was going on? Griatch Thu, 24 Sep 2015 00:00:00 GMT 2015.html#2015-09-24-pushing-through-a-straw A wagon load of post summer updates 2015.html#2015-08-27-a-wagon-load-of-post-summer-updatesGriatch Thu, 27 Aug 2015 00:00:00 GMT 2015.html#2015-08-27-a-wagon-load-of-post-summer-updates Announcing the Evennia example-game project "Ainneve" 2015.html#2015-06-22-announcing-the-evennia-example-game-project-"ainneve"Griatch Mon, 22 Jun 2015 00:00:00 GMT 2015.html#2015-06-22-announcing-the-evennia-example-game-project-"ainneve" Need your help! 2015.html#2015-06-15-need-your-help!This for all you developers out there who want to make a game with Evennia but are not sure about what game to make or where to start off. Griatch Mon, 15 Jun 2015 00:00:00 GMT 2015.html#2015-06-15-need-your-help! Dreaming big? 2015.html#2015-05-30-dreaming-big?Griatch Sat, 30 May 2015 00:00:00 GMT 2015.html#2015-05-30-dreaming-big? Things goin on 2015.html#2015-05-11-things-goin-onGriatch Mon, 11 May 2015 00:00:00 GMT 2015.html#2015-05-11-things-goin-on Documenting Python without Sphinx 2015.html#2015-05-09-documenting-python-without-sphinxGriatch Sat, 09 May 2015 00:00:00 GMT 2015.html#2015-05-09-documenting-python-without-sphinx Building Django proxies and MUD libraries 2015.html#2015-01-19-building-django-proxies-and-mud-librariesGriatch Mon, 19 Jan 2015 00:00:00 GMT 2015.html#2015-01-19-building-django-proxies-and-mud-libraries Slowly moving through town 2014.html#2014-10-02-slowly-moving-through-townAfter getting questions about it I recently added the Slow Exit contribution to the main repository as an example. Griatch Thu, 02 Oct 2014 00:00:00 GMT 2014.html#2014-10-02-slowly-moving-through-town Dance my puppets 2014.html#2014-08-04-dance-my-puppetsIn many traditional multiplayer text engines for MUD/MUSH/MU*, the player connects to the game with an account name that also becomes their character's in-game name. When they log into the game they immediately "become" that character. If they want to play with another character, they need to create a new account. Griatch Mon, 04 Aug 2014 00:00:00 GMT 2014.html#2014-08-04-dance-my-puppets Webby stuff 2014.html#2014-06-30-webby-stuffLatest Evennia come with a range of improvements, mainly related to its integration with the web. Griatch Mon, 30 Jun 2014 00:00:00 GMT 2014.html#2014-06-30-webby-stuff Bringing back Python memory 2014.html#2014-06-15-bringing-back-python-memoryLately I've done work on the memory management of Evennia. Analyzing the memory footprint of a python program is a rather educational thing in general. Griatch Sun, 15 Jun 2014 00:00:00 GMT 2014.html#2014-06-15-bringing-back-python-memory Imaginary Realities volume 6, issue 1 2014.html#2014-05-16-imaginary-realities-volume-6,-issue-1Griatch Fri, 16 May 2014 00:00:00 GMT 2014.html#2014-05-16-imaginary-realities-volume-6,-issue-1 Moving from Google Code to Github 2014.html#2014-02-08-moving-from-google-code-to-githubA few weeks back, the Evennia project made the leap from Google Code to GitHub (here). Things have been calming down so it's time to give a summary of how the process went. Griatch Sat, 08 Feb 2014 00:00:00 GMT 2014.html#2014-02-08-moving-from-google-code-to-github Looking forwards and backwards 2014.html#2014-01-24-looking-forwards-and-backwardsWe are almost a month into the new year, time to look forward. Griatch Fri, 24 Jan 2014 00:00:00 GMT 2014.html#2014-01-24-looking-forwards-and-backwards Imaginary Realities is back 2013.html#2013-12-16-imaginary-realities-is-backThe Imaginariy Realities webzine was the place to go to for MUD game design articles in the late 90's. Last released in 2001, its articles are still worth the read for any game designers today.But guess what - this venerable ezine has now returned! You can find the new issue here. Griatch Mon, 16 Dec 2013 00:00:00 GMT 2013.html#2013-12-16-imaginary-realities-is-back Out of band mergings 2013.html#2013-11-28-out-of-band-mergingsAs of today the development repository of Evennia, which has been brewing for a few months now, merged into the main repository. This update grew from one experimental feature to a relatively big update in the end. Together with the "many-character-per-player" feature released earlier, this update covers all the stuff I talked about in my Behind the Scenes blog post. Griatch Thu, 28 Nov 2013 00:00:00 GMT 2013.html#2013-11-28-out-of-band-mergings A list of Evennia topics 2013.html#2013-10-22-a-list-of-evennia-topicsSome Evennia updates. Griatch Tue, 22 Oct 2013 00:00:00 GMT 2013.html#2013-10-22-a-list-of-evennia-topics One to Many 2013.html#2013-05-13-one-to-manyAs of yesterday, I completed and merged the first of the three upcoming Evennia features I mentioned in my Churning Behind the Scenes blog post: the "Multiple Characters per Player" feature. Griatch Mon, 13 May 2013 00:00:00 GMT 2013.html#2013-05-13-one-to-many Churning behind the scenes 2013.html#2013-01-29-churning-behind-the-scenesAt the moment there are several Evennia projects churning along behind the scenes, none of which I've yet gotten to the point of pushing into a finished state. Apart from bug fixes and other minor things happening, these are the main updates in the pipeline at the moment. Griatch Tue, 29 Jan 2013 00:00:00 GMT 2013.html#2013-01-29-churning-behind-the-scenes Evennia changes to BSD license 2012.html#2012-10-28-evennia-changes-to-bsd-licenseAs of today, Evennia changes to use the very permissive BSD license.Now, our previous "Artistic License" was also very friendly. One main feature was that it made sure that changes people made to the core Evennia library (i.e. not the game-specific files) were also made available for possible inclusion upstream. A good notion perhaps, but the licensing text was also quite long and it was clear some newcomers parsed it as more restrictive than it actually was. Griatch Sun, 28 Oct 2012 00:00:00 GMT 2012.html#2012-10-28-evennia-changes-to-bsd-license Community interest 2012.html#2012-10-05-community-interestIt's fun to see a growing level of activity in the Evennia community. The last few months have seen an increase in the number of people showing up in our IRC channel and mailing list. With this has come a slew of interesting ideas, projects and MUD-related discussion (as well as a few inevitable excursions into interesting but very non-mud-related territory - sorry to those reading our chat logs). Griatch Fri, 05 Oct 2012 00:00:00 GMT 2012.html#2012-10-05-community-interest Combining Twisted and Django 2012.html#2012-08-31-combining-twisted-and-djangoCombining Twisted and Django Griatch Fri, 31 Aug 2012 00:00:00 GMT 2012.html#2012-08-31-combining-twisted-and-django Taking command 2012.html#2012-08-16-taking-commandCommands are the bread and butter of any game. Commands are the instructions coming in from the player telling the game (or their avatar in the game) to do stuff. This post will outline the reasoning leading up to Evennia's somewhat (I think) non-standard way of handling commands.In the case of MUDs and other text games commands usually come in the form of entered text. But clicking on a graphical button or using a joystick is also at some level issuing a command - one way or another the Player instructs the game in a way it understands. In this post I will stick to text commands though. So open door with red key is a potential command. Griatch Thu, 16 Aug 2012 00:00:00 GMT 2012.html#2012-08-16-taking-command Extending time and details 2012.html#2012-06-26-extending-time-and-detailsFor the fun of it I added an "Extended Room" contrib to Evennia the other night.("Contribs" are optional code snippets and systems that are not part of the actual codebase. They are intended for you to use or dissect as you like in your game development efforts). Griatch Tue, 26 Jun 2012 00:00:00 GMT 2012.html#2012-06-26-extending-time-and-details Coding from the inside 2012.html#2012-06-11-coding-from-the-insideSome time ago, a message on the Evennia mailing list asked about "softcode" support in Evennia. Softcode, a defacto standard in the MUX/MUCK/MUSH/MOO world, is conceptually a "safe" in-game scripting language that allows Players to extend the functionality of things without having access to the server source. Griatch Mon, 11 Jun 2012 00:00:00 GMT 2012.html#2012-06-11-coding-from-the-inside Dummies doing (even more) dummy things 2012.html#2012-05-30-dummies-doing-(even-more)-dummy-thingsGriatch Wed, 30 May 2012 00:00:00 GMT 2012.html#2012-05-30-dummies-doing-(even-more)-dummy-things Shortcuts to goodness 2012.html#2012-03-26-shortcuts-to-goodnessEvennia, being a MUD-design system, needs to take some special considerations with its source code - its sole purpose is after all to be read, understood and extended.Python is of course very readable by default and we have worked hard to give extensive comments and documentation. But for a new user looking into the code for the first time, it's still a lot of stuff to take in. Evennia consists of a set of Django-style "applications" interacting and in some cases inheriting from each other so as to avoid code duplication. For a new user to get an overview could therefore mean diving into more layers of code than one would like. Griatch Mon, 26 Mar 2012 00:00:00 GMT 2012.html#2012-03-26-shortcuts-to-goodness Dummies doing dummy things 2012.html#2012-02-22-dummies-doing-dummy-thingsIt can often be interesting to test hypothetical situations. So the other day I did a little stress test to see how Evennia handles many players. This is a follow-up to the open bottlenecks post.Evennia, being based on Twisted, is an asynchronous mud server. This means that the program is not multi-threaded but instead it tries to divide up the code it runs into smaller parts. It then quickly switches between executing these parts in turn, giving the impression of doing many things at the same time. There is nothing magical about this - each little piece of code blocks the queue as it runs. So if a particular part takes too long, everyone else will have to wait for their turn. Likewise, if Twisted cannot flip through the queue as fast or faster than new things get added to it, it will start to fall behind. Griatch Wed, 22 Feb 2012 00:00:00 GMT 2012.html#2012-02-22-dummies-doing-dummy-things Commands and you 2012.html#2012-02-17-commands-and-youCommands define how a Player interacts with a given game. In a text-based game it's not amiss to say that the available commands are paramount to the user experience. In principle commands could represent mouse clicks and other modernistic GUI sugar - but for this blog I'll stick with the traditional entered text.Like most things in Evennia, Commands are Python classes. If you read the documentation about them you'll find that the command classes are clumped together and tacked onto all objects in-game. Commands hanging onto a Character object will be available all the time, whereas commands tacked onto a grandfather's clock will only be available to you when you stand in front of said clock. Griatch Fri, 17 Feb 2012 00:00:00 GMT 2012.html#2012-02-17-commands-and-you Such a small thing ... 2012.html#2012-02-15-such-a-small-thing-...Lately I went back to clean up and optimize the workings of Evennia's Attributes. I had a nice idea for making the code easier to read and also faster by caching more aggressively. The end result was of course that I managed to break things. In the end it took me two weeks to get my new scheme to a state where it did what it already did before (although faster). Griatch Wed, 15 Feb 2012 00:00:00 GMT 2012.html#2012-02-15-such-a-small-thing-... Evennia's open bottlenecks 2012.html#2012-02-05-evennia's-open-bottlenecksSince Evennia hit beta I have been mostly looking behind the scenes to see what can be cleaned up and not in the core server. One way to do that is to check where the bottlenecks are. Since a few commits, Evennia's runner has additions for launching the Python cProfiler at startup. This can be done for both the Portal and the Server separately. Griatch Sun, 05 Feb 2012 00:00:00 GMT 2012.html#2012-02-05-evennia's-open-bottlenecks About this dev blog 2012.html#2012-02-05-about-this-dev-blogThis is to be my Evennia dev blog, but it will also cover various other musings concerning programming in general and mud designing in particular. Whereas the Evennia mailing list remains the main venue for discussion, I will probably use this blog for announcing features too.Some background: Griatch Sun, 05 Feb 2012 00:00:00 GMT 2012.html#2012-02-05-about-this-dev-blog
\ No newline at end of file