Features Added:
- Encryption via GnuTLS.
- Basic gameplay commands.
- Basic character sheet with stats and skills.
- Ability to perform chance-based checks with stats and skills.
- Ability to build a character using spec points and skill points.
Features Changed:
- Messaging and communication is now encrypted.
- Area descriptions can now be longer.
- General bug-fixing, see individual commits.
- Makefile improved to improve development experience.
- Naming system altered to only allow naming on joining the game.
- Server messages are now displayed differently than user messages and are grouped.
- Commands are now evaluated in a queue.
Features Removed:
- Ability to change name via /NAME.
- Graceful handling of C-c. (It's seemingly unreliable, so not graceful.)
Squashed commit of the following:
commit ca8ba5e410
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2de
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b8
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beff
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b2
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b8693037
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df469
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74f
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a2933
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 9411803942
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd37
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check