All Projects → cizra → pycat

cizra / pycat

Licence: Unlicense License
MUD client in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pycat

aardwolfclientpackage
Get the Aardwolf MUSHclient Package installer at
Stars: ✭ 79 (+259.09%)
Mutual labels:  mud, mud-client
mudjs
WebSocket MUD client for DreamLand
Stars: ✭ 13 (-40.91%)
Mutual labels:  mud, mud-client
awesome-mud
🖥 A curated list of bookmarks, tools, tutorials, and other cool resources for text-based game developers.
Stars: ✭ 61 (+177.27%)
Mutual labels:  mud
LandOfTheRair
Land of the Rair is a full-blown MORPG styled like the MUDs of olde, featuring hours upon hours of gameplay.
Stars: ✭ 20 (-9.09%)
Mutual labels:  mud
CosmosFramework
CosmosFramework is a lightweight plug-in Unity development framework . Has a rich Unity method extensions and toolchain. async/await syntax support, multi-network channel support.Long term support for this project
Stars: ✭ 176 (+700%)
Mutual labels:  astar-pathfinding
mudmap2
A mapping tool for text-based games, like text adventures, MUDs and MUSHs
Stars: ✭ 35 (+59.09%)
Mutual labels:  mud
dumserver
A modern MU* engine re-imagined, actively developed and properly tracked.
Stars: ✭ 54 (+145.45%)
Mutual labels:  mud
shadowgate
Mirror of ShadowGate code
Stars: ✭ 12 (-45.45%)
Mutual labels:  mud
kalevala
A world builder's toolkit in Elixir
Stars: ✭ 124 (+463.64%)
Mutual labels:  mud
hierarchical-pathfinding
Implementation of Near-Optimal Hierarchical Pathfinding (HPA*) algorithm in Unity, tested with maps from Dragon Age: Origins
Stars: ✭ 90 (+309.09%)
Mutual labels:  astar-pathfinding
stunt
LambdaMOO with multiple inheritance, anonymous objects, HTTP, JSON <-> MOO translation, better crypto, a map datatype and a RESTful interface.
Stars: ✭ 67 (+204.55%)
Mutual labels:  mud
judo
A more elegant way to play in the MUD
Stars: ✭ 17 (-22.73%)
Mutual labels:  mud
SkotOS
Open Source version of the SkotOS narrative prose library, using the DGD driver.
Stars: ✭ 21 (-4.55%)
Mutual labels:  mud
GMCPAdditions
These are additions to the IRE gmcp documentation
Stars: ✭ 21 (-4.55%)
Mutual labels:  mud
AkkaMUD
Building a MUD in F# and Akka.NET
Stars: ✭ 15 (-31.82%)
Mutual labels:  mud
dreamland code
DreamLand MUD: server code
Stars: ✭ 36 (+63.64%)
Mutual labels:  mud
guildmud
A SocketMUD-based Multi-User Dungeon built and managed by the members of The MUD Coders Guild.
Stars: ✭ 26 (+18.18%)
Mutual labels:  mud
dreamland world
DreamLand MUD: all configuration files, and some areas for local dev
Stars: ✭ 16 (-27.27%)
Mutual labels:  mud
MoD
MUD on Discord, a MUD framework Bot for Discord
Stars: ✭ 20 (-9.09%)
Mutual labels:  mud
path-to-power
A simple MUD inspired, browser-based multiplayer game.
Stars: ✭ 14 (-36.36%)
Mutual labels:  mud

Rationale

Existing MUD clients either

  • invent their own scripting language, which usually sucks (Tintin++)
  • are written for Windows, and require jumping through crazy hoops to get to work right on Linux/Mac (MUSHclient+Python used to require installing Python + Pywin32 in Wine (and these days it's just plain impossible))
  • are optimized for Lua, and Python is either absent, or a second-class citizen (MUSHclient can't do cross-module function calls in Python, Mudlet is Lua only)

There are workarounds for everything, but sooner or later you'll wish you could stop working around, and start working on.

... hence:

pycat

A MUD client inspired by the simplicity of netcat, written in Python, in a modular and hackable way. Its features:

  • Works as a proxy: you run pycat, then connect a regular basic MUD client to localhost
  • Caching: if your frontend MUD client disconnects from pycat, it'll keep running triggers/timers and accumulating output. Upon reconnecting, it'll dump the whole output into your MUD client.
  • No redundant functionality. In particular, no Readline support.
  • Modular, layered design
    • Telnet connection (supports GMCP)
    • A base client (implements command stacking, #number spam, talks to modules)
    • A bunch of modules doing their own things (for example, the Logger module triggers on all MUD output and stuffs it all into a file)
    • Your 'client' which brings together the modules you want to include (here it's possible to bring in MUD-class-specific stuff)
    • Most of the code is reloadable at runtime
  • Triggers, replacements, aliases, yada yada, anything you can implement in Python
  • GMCP-based automapper

howto

  1. Clone the repo
  2. Install Python3
  3. Edit the `sample.py, specify the host/port to connect to
  4. run python3 ./pycat.py sample 4000
  5. connect a regular MUD client to host ::1 port 4000 (edit the bind address and socket address family if your frontend MUD client doesn't support IPv6)
  6. write your own world module. There's a bunch of sample code in coffee.py. You can pass command-line parameters from pycat to your world module.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].