Version 0.0.1 of the rewritten client and server.
- Server is capable of accepting an arbitrary number of TLS encrypted client connections.
- Server relays messages from one client to the others.
- Server spawns a Scheme REPL available over a Unix socket.
- Client is a two-pane ncurses-based client, with an input area, chat log, and game status log.
- Temporary NAME command exists to change names of players.
Squashed commit of the following:
commit 442a9319e82e49d6040b5a3015271a951edb9375
Author: Barry Kane <barra@ocathain.ie>
Date: Mon Oct 30 16:57:15 2023 +0000
Removed unneeded check, added temporary name command
commit a66a07c897cf37b5624bcfa87c309fbbf602ea61
Author: Barry Kane <barra@ocathain.ie>
Date: Sun Oct 29 20:15:41 2023 +0000
Properly remove disconnected players
commit 81fc72a1d7d55893428c6202be8bd49cbc570ea9
Author: Barry Kane <barra@ocathain.ie>
Date: Sun Oct 29 17:20:14 2023 +0000
Added system messages to client and added welcome message from server.
commit a1b1b8044989c1d8e60492c2a3054d8885de562c
Author: Barra Ó Catháin <barra@ocathain.ie>
Date: Tue Sep 12 23:25:44 2023 +0100
Removed now unneeded placeholders, added stubs for "rulebooks" in documentation.
commit 54b613befe86637db4aa69adec9e805d4eb355a2
Author: Barra Ó Catháin <barra@ocathain.ie>
Date: Tue Sep 12 22:32:19 2023 +0100
Basic implementation of player lists and tying connections to players
commit 5a53e9f1974598c62602b3b812398884906b8d00
Author: Barra Ó Catháin <barra@ocathain.ie>
Date: Sun Sep 10 17:24:46 2023 +0100
Added basic player type containing a name, and made the server echo messages with player name.
commit 3fc75ef30fb7668b9d6d3e7b777aeac4bd9d844a
Author: Barry Kane <barra@ocathain.ie>
Date: Thu Aug 31 01:44:17 2023 +0100
Basic message receiver, server now echoes messages to all clients.
commit b292966588327bef59a102cf7b92dc88f8aed7b3
Author: Barry Kane <barra@ocathain.ie>
Date: Mon Aug 28 02:53:31 2023 +0100
Fixed window height calculations.
commit 50dcddfc56710964bb4c6a7f3315e20b23ca8200
Author: Barry Kane <barra@ocathain.ie>
Date: Mon Aug 28 02:29:21 2023 +0100
Initial ncurses setup, and layout of client.
commit c043da64a20064841dc768e85e6735b3b5a731fb
Author: Barry Kane <barra@ocathain.ie>
Date: Sat Aug 26 00:48:28 2023 +0100
Modify server and client to begin using ClientToServer messages.
commit 0104a11a7ecb55f0a56f8b012b63a7a005d03f18
Author: Barry Kane <barra@ocathain.ie>
Date: Fri Aug 25 00:34:05 2023 +0100
Added basic client capable of connecting to the server.
commit 080e46fe994dc0a1e170e7d9b681ff4679f12e06
Author: Barry Kane <barra@ocathain.ie>
Date: Thu Aug 24 00:12:27 2023 +0100
Set up GNU Autotools as build system.
commit 0814e437cdc0c00fe3474d86dc8bf7ccd8f1d607
Author: Barry Kane <barra@ocathain.ie>
Date: Tue Aug 22 02:02:29 2023 +0100
Basic connection handling (using previous version of client)
commit 9801be3622646aa1639884e07459cbd1cdb3a17e
Author: Barry Kane <barra@ocathain.ie>
Date: Sat Aug 19 16:00:57 2023 +0100
Renamed src back to source, because I liked it better
commit e2ef744e87c5652f144ee47ba878038f5097cbea
Author: Barry Kane <barra@ocathain.ie>
Date: Sat Aug 19 00:18:03 2023 +0100
Moved scheme initialization to main thread, added basic networking
The server can now listen on a port and send data to a client.
commit 8b0920c35dde3ad766bfc17528ce83e5891a4f1b
Author: Barry Kane <barra@ocathain.ie>
Date: Fri Aug 18 00:45:24 2023 +0100
Added basic implemantation of message structures.
commit 6ed532c3688360ba6aed5abfb83392ce7b000216
Author: Barry Kane <barra@ocathain.ie>
Date: Thu Aug 17 00:21:20 2023 +0100
Added structure section.
commit 48f0858735f5f5aaf45e23d61a71ba08176021e5
Author: Barry Kane <barra@ocathain.ie>
Date: Thu Aug 17 00:14:40 2023 +0100
Began implementation planning document.
commit 32503cdbca74de9f454cbc5cf32a7f95d2aa3f5e
Author: Barry Kane <barra@ocathain.ie>
Date: Mon Aug 14 03:15:37 2023 +0100
Rename source/ to src/ for Autotools.
commit 2b488477f5ce4215a999a0fc250cb6f198a0714b
Author: Barry Kane <barra@ocathain.ie>
Date: Mon Aug 14 02:46:43 2023 +0100
Added initial stubs for server.
- Server now launches a thread to initialize Scheme, and drops into a REPL.
2023-11-05 15:14:44 +00:00
|
|
|
#+TITLE: SilverMUD Implementation Document
|
|
|
|
This document contains information about various implementation details of
|
|
|
|
SilverMUD, as a scratchpad for decisions before implementation.
|
|
|
|
|
|
|
|
* Structures:
|
|
|
|
** Server->Client Message Format (1409 bytes total):
|
|
|
|
*** Message Type - Unsigned 8 Bit Integer:
|
|
|
|
|-------+------------------------|
|
|
|
|
| Value | Purpose |
|
|
|
|
|-------+------------------------|
|
|
|
|
| 0 | System Message |
|
|
|
|
| 1 | Client Setting Message |
|
|
|
|
| 2 | Command Output Message |
|
|
|
|
| 3 | Local Chat Message |
|
|
|
|
| 4 | Player Chat Message |
|
|
|
|
| 5 | Party Chat Message |
|
|
|
|
| 6 | Player Emote Message |
|
|
|
|
|-------+------------------------|
|
|
|
|
|
|
|
|
Further values remain open for possible additional message types.
|
|
|
|
|
|
|
|
*** Sender Name - 128 Character String.
|
|
|
|
This field may be repurposed for message types without a need for a name.
|
|
|
|
|
|
|
|
*** Message Content - 1024 Character String.
|
|
|
|
|
|
|
|
** Client->Server Message Format (1024 bytes total):
|
|
|
|
*** Message Content - 1024 Character String.
|