I keep missing to notice these questions until someone else has already helped out. Good it was resolved, @Cobaltasaurus.
.
Griatch
Posts made by Griatch
-
RE: I made a Python-with-Evennia tutorial (looking for feedback)
-
RE: I made a Python-with-Evennia tutorial (looking for feedback)
@cobaltasaurus If you forgot the name you used (not just the password) you could also drop into the database to see it. But if you are just starting out, you could just as well reset the database and add your account anew.
- Start your
virtualenv
(like you did in the GettingStarted instructions). Go to your game dir (mygame
in all documentation). - make sure Evennia is not running:
evennia stop
. - Delete the file
mygame/server/evennia.db3
. This is the default database unless you changed to use something like mysql/psycopg2 (then you need to use their tools to wipe the database) (Backing up your database is otherwise just a matter of making a copy of this file). evennia migrate
- this creates a new database file and sets it up.evennia start
- you will be asked for your name/password again.
- Start your
-
RE: Resetting your #1/God/Admin password
In Evennia you can change the password from the terminal's command line for any account, including the superuser account, using
evennia changepassword <account_name>
evennia changepassword Foo Password: Password again: Password changed successfully for user 'Foo(account#1)'
-
RE: Choosing a MU Server
@faraday said in Choosing a MU Server:
But this speaks to a core philosophical difference between Evennia and Ares. Ares is designed to be a 'MU in a box'. There are a bunch of things you can configure easily, but if you want a radically-different +where display, or to completely remove the BBS system, it's going to take some code surgery. Whereas Evennia is more of a blank slate. If you like Sparks' BBS you just install it. Or you can use some other BBS. Or make your own. In this regard it's more like the old servers. Harder if you just want something that works out of the box, but easier if you want to go off the beaten path or just do something your own way.
This is true. Part of that philosophical difference is that Evennia is not specifically targeting MUSH-style gameplay the way Ares is. It's one of the styles Evennia can support, which is why it defaults to a more blank slate game-content wise. Evennia is (text-)game-style agnostic and could (and is) used as a starting point to make any form of MU*, from MUSH-style to very code-heavy MUDs and even IF or Rogue-like games (!). Ares is more focused, so as @faraday alludes to, if the kind of game Ares offers is your cup of tea you are going to get more stuff out of the box and probably get started faster. With Evennia, more assembly will be needed.
.
Griatch -
Game-Jam: Make a MU* in a Month, win prizes (April 15 to May 15)
(re-post since the first was lost in the MU Soapbox database crash)
https://itch.io/jam/enterthemud
The Mud Coder's Guild is announcing their first Game Jam with the theme Procedural. It runs between April 15 and May 15 2018, with winners announced in the beginning of June. Runner-ups win books on MMO design while the winner gets an Amazon reading tablet. See the link for more details.
While they use the term "MUD", the rules say
The generally accepted definition of “Multi-User Dungeon” is a text-based multiplayer roleplaying game, but with that said, feel free to stretch that definition to whatever limit you see fit.
So any form of MU* should be okay. You can also use any third-party library, server or toolkit. Maybe try to see what you can put together in a month?
Note: I'm not personally involved in the game jam. I just thought it was a good initiative that should be supported and spread around. Also fun to see what people come up with.
-
RE: I made a Python-with-Evennia tutorial (looking for feedback)
@ixokai said in I made a Python-with-Evennia tutorial (looking for feedback):
@ixokai said in I made a Python-with-Evennia tutorial (looking for feedback):
The purist in me balks at describing print as a function; its a statement in Python 2 without a future import. That you can call a statement with parens around its arguments is just an accident of the fact you can put parens about nearly anything in Python. Its a function of parens are grouping syntax, and they don't make tuples-- commas do.
Thanks for the feedback! This exception to
print
is mentioned in the immediately following paragraph but yes, calling it a 'function' is indeed technically incorrect. I didn't think this was something a complete newbie would gain much from learning out the door. I felt it better to learn callingprint
as a (sort-of) function from the get-go so that the concept of a function was introduced early and can be referenced later in the tutorial when a real function is created.Honestly, I wonder if the first thing you'd teach is me.msg -- and only teach print in an advanced mode about debugging. Because what is the classical 'first thing' anyone learns in a programming language? How to print out a statement and see the result. In Evennia, that's not print, that's me.msg.
me.msg("Hello world!") is really Evennia's version of the first programming exercise for every language ever.
The use of
print
is there because people somewhat familiar with Python will usually try it first and wonder why nothing happens. It also makes sure newcomers early learn to look at the console since that's where many errors will show up (we've found it's common for beginners to hide/close this window and not realize this source of info exists when they get errors). But yeah, the immediately visible output ofme.msg()
is indeed more matching the traditional Hello World! example.
.
Griatch -
RE: I made a Python-with-Evennia tutorial (looking for feedback)
Thanks for the nice comments, glad to hear it could be useful to people!
@cobaltasaurus said in I made a Python-with-Evennia tutorial (looking for feedback):
@griatch THANK YOU
You are welcome!
@thatonedude said in I made a Python-with-Evennia tutorial (looking for feedback):
@griatch This is good stuff. I've been playing with Evennia and reading over all the documentation and you guys have done a great job.
Glad you think so.
@bad-at-lurking said in I made a Python-with-Evennia tutorial (looking for feedback):
Reading that makes me foolishly optimistic about learning Python and being able to self-sufficiently run a game. So well done there!
Python is often considered one of the simpler mainstream languages to learn and we have plenty or people learning Python/programming through Evennia actually. So it's certainly doable!
@ixokai said in I made a Python-with-Evennia tutorial (looking for feedback):
The purist in me balks at describing print as a function; its a statement in Python 2 without a future import. That you can call a statement with parens around its arguments is just an accident of the fact you can put parens about nearly anything in Python. Its a function of parens are grouping syntax, and they don't make tuples-- commas do.
Thanks for the feedback! This exception to
print
is mentioned in the immediately following paragraph but yes, calling it a 'function' is indeed technically incorrect. I didn't think this was something a complete newbie would gain much from learning out the door. I felt it better to learn callingprint
as a (sort-of) function from the get-go so that the concept of a function was introduced early and can be referenced later in the tutorial when a real function is created.
.
Griatch -
RE: Coordinates-based Grid
Correct, the default Evennia
pose
is not using.search()
directly. Most likely one would instead tweak the.location
property to mean something else should it come to that. But yes, a large amount of code is no doubt going to be needed either way (as I noted in my first post). Regardless of how many of the default commands needs to change, the game style is such that the dev will need to add a lot of custom systems.
.
Griatch -
RE: Coordinates-based Grid
@faraday said in Coordinates-based Grid:
@griatch I assume for completely room-less you'd also need to write custom code for say/pose/emit/etc., since game communication is normally centered around what room you're in. And any object-interaction commands like 'take/give' (if Evennia has those), describe, look, teleport, etc. Sure with enough work it could be done, but the effort involved strikes me as massive.
You'd actually only need to override the default
search()
method on the Character - it is used by (almost) all default commands and is the only component that usually cares about location (by limiting the search to things in the same room). If you change that to be coordinate-aware and return a list of matches 'within reach' (however you define that) most of the default commands should 'just work'. In the same way you could override what is reported as the Character'slocation
. No doubt there will be unexpected edge-cases here and there that I could not predict but you might not need to rewrite everything in-depth.Things like line-of-sight, sound travelling and descriptions changing at-a-distance are completely new concepts though that would require rework of the relevant commands. And many build commands would of course also work differently, and require different options (as for any heavily customized game style).
Not relevant to OP, but FYI for anyone referencing this thread later - Ares doesn't have a wilderness contrib, but if you were going to attempt such a thing I would suggest doing it in exactly the same way that @Griatch described.
The eternally-looping wilderness-room is a nifty concept, yes. I don't know how common it is out there but people have also used the idea for things like ship-faring (the water kind) in Evennia.
.
Griatch
. -
RE: Coordinates-based Grid
There are several ways to do this in Evennia. Below are two.
The wilderness contrib
A version of 'room-less' already exists for Evennia. You can look at the
wilderness
Evennia contrib here. It works as a mixture of coordinate- and room-based movement.The basic premise is that the world is described by a 2D ascii map representing the coordinates. When a Character enters the wilderness they get their own room with a given coordinate stored on it. All exits of the room loops back to the same room. As they move in a direction through the world, the coordinate changes and a new description and set of exits are loaded but you are not actually moving to a new room. When two Characters share coordinate one simply enters the room of the other and when they separate they each get their own room again. Fixed locations in the wilderness are still "normal" rooms set at at given coordinate, into which you enter when you go there.
This particular contrib is intended to allow large world maps without needing to create thousands of almost-empty rooms to fill the countryside. So you don't get line-of-sight, distance-measures and dynamic objects approaching you etc like you get in GodWars2 - that's something that would need to be added. Especially combat I imagine could be be tricky with that system unless you dictate that combat always happens in the same coordinate (room).
The contrib is also probably not scaleable to cater for the entirety of a game, one would probably want to restructure it more efficienty to make it easier to add content etc. But the concept works well.
Completely Room-less
If you want to completely get rid of Rooms across the world (i.e. really replicate GW2), Evennia can handle this without any changes to the core engine - but you need to add a lot of new code. You can then ignore Rooms completely (unless you want to keep them for indoor locations, say).
You need to redefine the concept of location. For example you could have a new typeclassed entity
Location
that describes a given coordinate in the world. You can use two EvenniaTags
on the Characters and on the 'Locations' to define their x,y coordinate (three if you want 3D).You obviously don't get the help of the default Room-based location/exit mechanics, so you'd need to supply new movement commands to manipulate your coordinate (aka move around).
You next need to figure out how to store the descriptions of each coordinate and how to manipulate it with distance (multiple descriptions for different distance brackets? Some sort of algorithm?).
Finally you need to add an engine that handles relational calculations between objects in the database (see e.g. Nemesis' post above) so you can tell which subset of all "locations" are visible to you from your current spot and should be included in the current description. Things like say/pose etc and how they are affected by distance are additional features to consider on top of that.
It would likely be a really fun project, but you should probably be prepared to spend a lot of time on it.
-
I made a Python-with-Evennia tutorial (looking for feedback)
https://github.com/evennia/evennia/wiki/Python-basic-introduction
Since many people coming to Evennia are not previously familiar with Python (or any programming in some cases) I put together a tutorial for the absolute Python beginner that just got Evennia up and running. It explores some basic Python concepts using Evennia as well as helps the budding developer start finding their way with concepts like imports, object inheritance and overriding. After previous feedback it was split in two parts since it's pretty chunky to do in one sitting.
Obviously a short tutorial can't do more than graze the surface of Python and general programming concepts. This won't teach you Python. But it covers some of the most common questions and initial hurdles newcomers tend to ask about in a format that is, while technical, hopefully not too hard to follow when getting started.
If you follow it and have feedback on further improvements, let me know!
.
Griatch -
RE: AresMUSH Updates
@tinuviel said in AresMUSH Updates:
@griatch Most software have codenames that they go by, for various reasons, and it's easier to advertise Android Kitkat than Android 6.01.20199.
I see the reason but I'd still prefer it being referred to as Android 6 so I directly know it came after Android 5. Now in the case of Android code names they are actually increasing alphabetically. But if I didn't know that (and I didn't until I just looked it up) there is no telling where in the order "Kitkat" is related to "Lollipop". I just find it silly, I guess. Except for the Firefly bit, that is.
.
Griatch -
RE: AresMUSH Updates
@thenomain said in AresMUSH Updates:
I think she should give it names instead. Might I suggest each major release is a different sci-fi show, and each point release something from that show.
And then not use numerical releases at all, except for a lingering build code.
... Tho I want to see the resulting bug reports.
Many Linux distros does this for some strange reason (they have a number too, but the name is usually what the advertise). I never understood the benefit: When debugging an issue or reading up on some feature I always have to go and double-check in some release list somewhere to find out if my version is older or newer than the one mentioned on Stack Overflow. A number is certainly easier on the user's sanity ...
... That said, It might be worth it just for the sake of being able to look forward to the Firefly release with the Mal minor version and the River bug fix ...
-
RE: AresMUSH Updates
Good work with getting Ares into shape. I'd not be too fixated on the "1.0" version number though. Just be clear on what level of stability you think your system is and communicate that so people know what to expect.
.
Griatch -
RE: Mocker - Complete TinyMUX setup with Docker
Always nice with more install options! I would suggest putting up your Dockerfile in a github repo somewhere if you want feedback on it.
Docker images can be very nice for production deployment. I've however found that the whole concept of a docker image can feel so alien for people that it doesn't help newbies very much. Our official Evennia image is mostly appreciated by those who already know that they want a docker image (and those people could install normally without a problem).
I'm sure it depends a bit on the layout of the application you are dockerizing of course. In the case of MUSH it might be a better fit since all development happens in softode so once the 'hardcode' runs you don't need to bother with it much.
.
Griatch -
RE: Charging for MU* Code?
@thenomain said in Charging for MU* Code?:
Just for those who are suggesting it: Patreon does not have a "tip jar". I really wish it did. A whole lot of people wish it did.
I use Paypal for those who really want to just do a one-time tip-of-the-jar and, as I mentioned, Patreon for those generous enough to do so regularly. Works fine, but I agree something integrated on Patreon would be neat.
“Well this other thing you actually wanted is 5x as complicated so that’s going to cost you more.”
“Wtf man you said $50.”
I can tell this is not unusual outside of software projects either; I've had more complex art/design commissions go down similar routes. With art you usually specify how many 'revisions' your contract allows, just for this reason. Without that, the client would nitpick details forever.
.
Griatch -
RE: PennMUSH Webclient
Great to see the use of HTML5 web clients on the rise all over the hobby! This looks like a nice and useful addition.
.
Griatch -
RE: Charging for MU* Code?
Those prices seem low to me. That said, I don't claim to be able to properly judge the 'market' value for code work when the 'market' is a niche hobby like this. On one hand @Thenomain offers a rare skill (how many in the world knows mushcode+mushes+mush-common-rpgs well enough to offer this menu of services in the first place?), on the other hand is the question as to what people are willing to pay to progress their hobby. This is a very old discussion. There will always be people with more dreams than means. But my impression at least is that most in this hobby appear to be adults that should be both able and willing to pay properly to have a human spend time to customize or even make a game for them. Especially when it's so open for learning to do yourself.
That said, as @Ashen-Shugar also hints at, I'd personally feel pressured if I charged money per Evennia-project/feature/bugfix whatever. It'd take some of the enjoyment out of working on these things, for me -make it feel more like work. After being asked about it from time to time, I solved it by setting up Patreon/paypal with the possibility of donations but with no tiers or recompense: That is, if you want to tip me for my work with Evennia, it's highly appreciated. But I treat it as a donation - you don't have to do it and I promise nothing explicit in return except that I'll keep doing what I've been doing. Does it cover the time I put in, in a 'market' sense? Not by a long shot. Maybe using tiers etc would draw in more money in pure numbers. But the non-specificity of it works fine for me and that freedom is worth a lot in itself.
-
Kicking into gear from a distance
http://evennia.blogspot.se/2018/01/kicking-into-gear-from-distance.htmlThis post discusses the new way to manage the running Evennia server in development compared to how it works today. It might be of interest to those who likes to know how things work under the hood or are into server/infrastructure-development in general!
.
Griatch -
RE: Coming Soon: Arx, After the Reckoning
@griatch said in Coming Soon: Arx, After the Reckoning:
Edit: Actually
page
in particular does not use the regular search mechanism, so you cannot nick that one. Gah.Now it does and you can (in base Evennia).
.
Griatch