What kind of Evennia setup do you have?

122 views
Skip to first unread message

Kevin Pitstick

unread,
Jul 10, 2012, 10:09:01 PM7/10/12
to eve...@googlegroups.com
Hey everyone,

As we've been setting up our Evennia servers and starting on development, I'm kinda curious what sort of software/hardware setups the rest of you use to develop your games with Evennia? We don't have much experience hosting game servers (and maybe others are in the same boat), so we're interested in learning more about available options.

And for you Griatch, what kind of setup do you use for Evennia development and testing? (if you don't mind sharing) Have you found that a standard laptop/desktop is sufficient for hosting an Evennia server?

Also, has anyone tried hosting Evennia on a cloud server?
(I saw this link: https://groups.google.com/forum/?fromgroups#!topic/evennia/v2eBZ8UBy_w where he uses Webfaction). 

--------------------------------------------------------------

This is our current setup:

We've set up Evennia servers on two computers: one 5-yr-old (but functional!) Gateway laptop running Ubuntu Server and the other is a desktop running Ubuntu Server in a VM on Windows Server. We plan to use the laptop server as a joint test server and then the desktop as our eventual production server.

To access them, we're using Hamachi to create a few VPNs so we can easily SSH into the servers or connect to the game. As all of us are connecting from our individual Windows development machines, we're using Putty for SSH and DokanSSHFS (http://dokan-dev.net/en/) for mounting the server drives on Windows.

Maybe some of you can comment on this as well, but looking more into Evennia it seems like it would be very hard for multiple people to develop on the same server simultaneously (constantly having to reload). So perhaps we should setup our own individual Evennia servers on our development machines and just push finished changes to our test/production servers when they are ready to move on... Any thoughts?

Griatch Art

unread,
Jul 11, 2012, 6:02:26 AM7/11/12
to eve...@googlegroups.com
Hi, 
Interesting topic!

Personally, I develop on a five-year old Thinkpad X61s. I run a Linux distribution called aptosid, which is basically just a thin veneer on top of Debian SID (i.e. Debian unstable). I have a few different databases set up for testing. I also have a few virtualenv environments for testing various library versions (although probably not as thoroughly as I should). On this computer I also run all stress-tests and profiles mentioned in the dev blog (currently capping at 250 "heavy builder" or 1000 'non-builder' dummy users). 

I have set up a small test server on an old laptop (a Thinkpad X31), also running aptosid. It's not always online, but if it is you can find it at evennia.strangled.net:4000 (or http://evennia.strangled.net for the webclient), This very old machine is just fine for a simple test setup like this and I don't expect any performance problems on it. I'd however not rely on it (nor on my possibly flaky internet connection) for an actual production game. I suppose you've seen it already, but setting up a simple home server is otherwise described in our docs here.

----

As for the question on development: 

Reloading the server is not in itself a problem for multi-person development - noone is kicked off by reloading and it's normally just a second's hickup or so before the server is back up again for everybody. Mildly annoying if you use the server for communication maybe, but not making anything "very hard" as you put it. 

... But regardless of this, multiple developers working on the same code sources simultaneously is a recipe for disaster for any code project - this has nothing to do with Evennia. You need to use a version control system to avoid loss of sanity. I suggest setting up using mercurial (which is what Evennia already uses). Your central repository can be on your Ubuntu Server, or a "private" mercurial repository on BitBucket. Some basics of Evennia vcs is covered here. Then each developer will automatically, as part of cloning the main repo, obtain a copy of the server too, including the ability to run their own test instance. Running a test instance allows each developer to test stuff in isolation - something convenient especially for more fundamental systems like logins and character-typeclass changes. The dev then pushes their updates upstream, where joint testing happens. 
To organize what goes into main and not (and in which order), you could have one dev act as "gatekeeper" - a person making sure merging into main happens in a controlled and tested manner. This is how Evennia itself is set up (with me as gatekeeper). For a small group of devs where everyone knows each other this is probably a bit overkill though. The Mercurial homepage covers a lot of possible dev setups you might want to look at. 

Note that this type of development is fundamentally different from "building" (the act of populating the database). Using normal build commands of course doesn't require a server reload, but I'd suggest holding off on building completely until the underlying code systems are running (or at least until all the fundamental typeclasses you expect to need are finished). Starting to build too soon is a common mistake and will lead to you most likely having to redo your work at least once, probably more. If you want to start building early, at least use batch-command files (with build commands you don't expect to change) so you can easily re-do the building if you have to reset the database as part of your development ... See also this list of hints if you haven't already.
.
Griatch

Gregory Taylor

unread,
Jul 11, 2012, 9:46:16 AM7/11/12
to eve...@googlegroups.com
Griatch's advice to use source control is probably some of the best advice anyone is going to be able to give you. There is a bit of a learning curve, but the time spent will be repaid many, many times over if you use something (be it mercurial, git, bzr, or even subversion). Even single-developer projects have a lot to gain from source control (backup of source, easy creation, modification, and switching of branches, a complete record of changes that is useful in diagnosing regressions, and on and on). With multi-developer projects, it's part of keeping everyone sane and on track.

Hope that helps, and best of luck!

Greg

--
You received this message because you are subscribed to the "Evennia" MU* server mailing list.
To post to this group, send email to eve...@googlegroups.com (or use the web interface).
To unsubscribe from this group, send email to evennia+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/evennia?hl=en

Reply all
Reply to author
Forward
0 new messages