Coder Social home page Coder Social logo

mudcoders / guildmud Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 12.0 106 KB

A SocketMUD-based Multi-User Dungeon built and managed by the members of The MUD Coders Guild.

License: MIT License

Makefile 1.91% C 95.15% Ruby 0.76% Shell 0.26% C++ 0.47% Tcl 1.45%
game mud mud-server

guildmud's People

Contributors

liquidityc avatar rogersm avatar xenith avatar zachflower avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guildmud's Issues

High level persistence proposal

  1. Use sqlite3 to store: world data (map, users & objects) and state.
  2. Have a minimal persistence memory to sqlite3 time.
  3. Have a highly coupled memory data model to sqlite3 (persist at struct member/variable at database field type)
  4. Because (2 & 3) we expect the programmer to have some SQL knowledge.
  5. Minimal set of objects to be persisted: Room, Thing, Exits, Tags (a kind of trait that can be attached to anything), Player, Non Player.
  6. Define a set of functions per object (4) to persist/update/retrieve from/to the database.
  7. Create a versioning system of database schema so it can be upgraded without user action.

Improve Makefile

As a preparatory task for adding testing, I propose to remove src/Makefile and create a single Makefile in the root directory.

This new Makefile will compile all the *.o files (except main.o) to a libguildmud.a library and then link it to main.o.

Doing it this way will help to link the tests to libguildmud.a without having to exclude main.o.

Comments?

Upgrade encryption of user passwords

Currently guildmud is using the old unix crypt(3) function to encrypt user passwords.

Before PR 6 guildmud used the OS crypt, but this required some external linkage and was not supported by some unices. To ensure compilation in as many OS as possibles PR 6 added the crypt code from unix v7 to the guildmud basecode.

The problem is the standard crypt has been broken for more than 10 years and we need to provide something more secure.

Current standard is to deploy bcrypt. My proposal is to deploy bcrypt, but before that I need your opinion:

  • Should we expect the user to install it so we can link it?
    or
  • we include the three src files (it adds up as an extra 60 kbytes) to our codebase reducing compiling complexity?

For review, package can be found here, filename is crypt_blowfish.1.3.tar.gz

Comments?

Discussion: Concept of space

Nevermind the shadows on the cave wall we don't even know what the cave is made of yet. Plato is disappointed that he has no where to talk about how much socrates didn't know.

What is our concept of space? Rooms? Dimensional coords? A mix of things? My zone-locale-room design?

We must discuss!

Add SQLite for data storage

We are leaning towards using SQLite as our data storage solution. How we go about tying it into the other systems hasn't been discussed. The first steps would likely involve refactoring the existing data storage capabilities of SocketMUD to leverage SQLite. Should there be an option to duplicate data to flat files as well?

Identify why lack of access to ../help generates a segfault 11

When starting guildmud and there's no ../help directory to load the help files, program segfaults.

rogersm@iMac10,1:~/Dropbox/dev/guildmud/src$ cp ./guildmud /tmp
rogersm@iMac10,1:~/Dropbox/dev/guildmud/src$ cd /tmp
rogersm@iMac10,1:/tmp$ ./guildmud
Segmentation fault: 11

Will investigate, but taking into account code is not checking for opendir(3) return code, this should not be too difficult.

Add test suite

Now that we have Travis CI integration, we need a test suit. I propose to use Check.

It's small, easy to use, and documented.

Are we ok to move to Check or do you prefer something different?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.