SilverMUD/SilverMUD.org

92 lines
4.5 KiB
Org Mode
Raw Normal View History

Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
#+LATEX_HEADER: \RequirePackage[left=0.3in,top=0.3in,right=0.3in,bottom=0.3in, a4paper]{geometry}
Alpha 0.4 release of SilverMUD: 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 ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2022-10-30 13:31:27 +00:00
* SilverMUD: The Hackable Terminal-Top Roleplaying Game.
SilverMUD is a tool for creating engaging and communal stories, all over the
world through the internet. It's designed to give a gamemaster the same power
to improvise that they have at the table, through simple programming and
easy-to-understand structures.
Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
* Player's Guide
** Running The Client
*** How To Connect To A Server:
To connect to a server, use the command-line option =-i=, and the IP address of
the server. If the server admin is hosting the server on a port other than the
default port of 5000, you can use the =-p= option with the number of the port. If
the connection is successful, you will be placed in the server's login
area. Type =/join <player name>=, where player name is a name of your choosing,
and you will be placed in the spawn area, ready to play.
*** Other Launch Options:
** The Basic Commands
Alpha 0.4 release of SilverMUD: 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 ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2022-10-30 13:31:27 +00:00
SilverMUD is played through a set of very simple commands. To use a command,
type a forward-slash (/) followed immediately by the command name. The command
can be upper or lower-case.
Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
| Command | Arguments | Effect |
|---------+------------------------------------------+---------------------------------------------------------|
| JOIN | Character Name | Logs you into the server with the given character name. |
| MOVE | Path Name/Path Number | Moves you down the given path. |
| LOOK | None | Describes the current area. |
| STAT | None | Displays your current status and character sheet. |
| SPEC | Core Stat Name | Allows you to apply spec points to a given stat. |
| TRY | Core Stat Name/Skill Name, Object Number | Attempt to use the given stat or skill on the object. |
Alpha 0.4 release of SilverMUD: 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 ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2022-10-30 13:31:27 +00:00
Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
* Gamemaster's Guide
** Running the Server:
Alpha 0.4 release of SilverMUD: 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 ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2022-10-30 13:31:27 +00:00
Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
* Developer's Guide
** Build Prerequisites:
Alpha 0.4 release of SilverMUD: 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 ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2022-10-30 13:31:27 +00:00
SilverMUD has the following dependencies:
- GnuTLS
- ncurses
Alpha 0.5 release of SilverMUD: Features Changed: - Refactored old lists and queues to a single type. - Commented and cleaned up the codebase. - Various improvements. See commits for more details. Squashed commit of the following: commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:16:12 2023 +0000 Increment version number commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 22:09:21 2023 +0000 More cleaning up. - Brought remaining files in line with style guides, and improved comments. commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:43:13 2023 +0000 Cleaned up gamelogic.c/h - Improved comments to clarify the purpose and usage of the data structures and functions. - Brought the files in line with the SilverMUD style guide. commit c2af4a551a4e44e8e53579cac1927341be40e46c Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:30:40 2023 +0000 Cleaned up inputoutput.h - Changed the comments about the data structures to be more descriptive about their function. commit c7531828274f5a725a31238d7d50ce6a83e8f96f Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 15 21:22:14 2023 +0000 Cleaned up inputoutput.c. - Added additional comments in sections functions that were unclear. - Renamed targetIndex to sentCount, in order to clarify the usage of the variable. - Linted according to the current SilverMUD style guide. commit f411333203df3d0ab01e9f4701fd81a477bcac0a Author: Barry Kane <barry@omnimenu.ie> Date: Mon Feb 13 17:23:30 2023 +0000 Refactored SilverMUD to use the queue type for command events. - Removed the old commandQueue type. - Removed the functions relating to creating, pushing, popping, and peeking the commandQueues. - Refactored the gameLogicHandler to use a queue type. commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:32:39 2023 +0000 Added some more comments. - Commented the data structures in areadata.h and gamelogic.h. commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b Author: Barry Kane <barry@omnimenu.ie> Date: Sun Feb 12 23:13:10 2023 +0000 Removed the body of the try command. - Removed the try command's test functionality to allow for the later implementation of the actual functionality. commit 66e0279e781fef6e6f7a3f6732c0e56084c50999 Author: Barry Kane <barry@omnimenu.ie> Date: Sat Feb 11 00:07:30 2023 +0000 Commented the data structures in queue.h. - Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store. commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Feb 10 23:33:36 2023 +0000 Added naming rule 2 commit 52fd7ef6fb5102897b9243fd52cc3c037761641b Author: Barry Kane <barry@omnimenu.ie> Date: Thu Feb 9 21:53:23 2023 +0000 Wrote more documentation and a rule for the style guide. Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule. commit a38cbb70a8b6dc22696f85bef8a8fafedc304025 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Feb 8 17:15:23 2023 +0000 Fixed Thomas's Bug. In short: - When a large amount of input was recieved, the server would hang. - The server would hang on queue->lock for the input queue, in pushQueue(). - Upon debugging, it was revealed that queue->lock was actually false at this time. - GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed. - Adding the volatile keyword to the lock fixed this issue. commit c2c77d634343a66b2d7a54e96d4908e9b436f91e Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 20:31:32 2022 +0000 Cleaned and styled SilverMUDClient.c - Brought SilverMUDClient.c to a consistent style. - Cleaned and neatened various parts of SilverMUDClient.c. - Minor cleanup of playerdata.h. - Began writing the SilverMUD Style Guide. - Removed outputQueue-test.c, because outputQueue no longer exists. commit 6a653c75b98e59f03909da05711a09b834311f01 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Dec 21 00:49:26 2022 +0000 Implemented proper thread sleeping and additional output thread - Replaced previous inefficient "spin-waiting" with proper thread sleeping. - Added threading primitives to the queue type to enable this. - Added additional thread for output management. - Miscellanous cleanup and restructuring. commit 15d82f59ee96cca51bfc9960c77c46ff59a19011 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Dec 20 15:55:24 2022 +0000 Refactored the outputQueue to use the new queue type - Patched a bug where I didn't set the correct type for queue nodes. - Removed all traces of the previous outputMessageQueue type. - Removed the pointer "next" in outputMessage. - Rewrote the the main thread and game logic thread to use a queue for output. - Refactored outputMessage to allow for a variable amount of playerInfo pointers. commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af Author: Barry Kane <barry@omnimenu.ie> Date: Mon Dec 19 23:44:16 2022 +0000 Refactored the input queue to use the new queue type - Removed all traces of the previous inputMessageQueue type. - Removed the pointer "next" in inputMessage. - Rewrote the the main thread and game logic thread to use a queue for input. commit 8ae3eaf2b844390512deb9fc46159635562130d1 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Dec 18 21:07:10 2022 +0000 Added queue.c and queue.h. - Added a singular queue type for input/output messages and commands. - Added a test of the queue type in tests. - Made some edits to the Makefile to enable the addition of debug code using the preprocessor. - Minor styling and spelling updates in gamelogic.c/h and text effects .h. - Ready to integrate the new queue type in place of the previous ones. commit 2ab873b40b9ce6c9bf7edc38609c50f267318181 Author: Barry Kane <barry@omnimenu.ie> Date: Wed Nov 30 15:31:14 2022 +0000 Make the client respect the set character delay. - The client now respects the character delay set on the command line. commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Nov 29 21:04:36 2022 +0000 Completed the conversion to the new linked-list type. - Moved all code relating to skills to use the new linked-lists. - Removed all old code relating to other lists. - Improved linked lists to get nodes more efficiently in the second half of the list. commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 18 14:44:25 2022 +0000 Refactored areas to use linked-lists. - Refactored the server to rely on the linked-list version of area lists. - Removed all old code pertaining to Area/Path lists. - Removed a no-longer useful test for corestat-from string performance.y commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:26:36 2022 +0000 Linked lists now destroy the pathList of an area. - Modified destroyList to destroy pathLists in areas. commit d843f0b170e5c58f5ed7ce0c762d7887449c566f Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 18:21:06 2022 +0000 Added one-way path function. - Added a function to create one way paths. - Changed the test areas to a new setting and to include one-way paths. commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00 Author: Barry Kane <barry@omnimenu.ie> Date: Sun Nov 13 00:23:42 2022 +0000 Refactored paths to use linked lists. - Removed the code for the now-obsolete-before-actually-being-used pathLists. - playerAreas now contain a list called pathList. - Refactored createArea, createPath, and the /move and /look commands. - Added typedefs to prevent the compiler being unable to link. commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4 Author: Barry Kane <barry@omnimenu.ie> Date: Fri Nov 11 22:58:05 2022 +0000 Preliminary implementation of linked-list.c - Implemented first pass of linked-list.c. TODO: - Polish linked-list.c 'till you can see a reflection in it. - Refactor existing codebase to use linked-list.c.y commit c68e66e7bc92bf6fb349ac09adcadfdff29960db Author: Barry Kane <barry@omnimenu.ie> Date: Mon Oct 31 01:55:44 2022 +0000 Squashed current warnings. - Fixed all current warnings. - Added the ability to set the text delay as a command line option in the server. commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a 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 d9497679cb8a3bd906400f13cd08bdb54876dee1 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 f2dd83857ffc6c60cd40872910fe73057202d492 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 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b 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 60110d3abd48a413c904c559a39f1d13c705709b 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 b8189ae2dee1ffd4f44faa18c3482c3718a73da2 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 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5 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 151f3002b81d4629b656598ba957ae401503bae0 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 0b3a72beffb789f6d56799626207008890a78a40 Author: Barry <bazzakane@gmail.com> Date: Thu Apr 7 01:39:59 2022 +0100 Removed inputhandling library The functionality was moved to inputoutput. commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0 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 e4b86930374c70a8d95e1c9986ef90a77cf65f4f 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 5d772df46985213f10cc955ad2db1975f7078e15 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 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a 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 6c93805d6f3bf5f660562f0ec4c2b267ca124a76 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 241ac7a92b6a335d780486f3c23a3b8385e3d408 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 85a31a293390ee88fd462a68c26681f089474085 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 ae8373d4ce4cddd6632893623cd86d68eb12b84c 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 18a4f416f6970bd826a6a5157cb03a61e1702048 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 94118039427c81e047424c73f2f6c3ccb2e88f94 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 7047d0ee08dd522709d3130fa340d33f4ab5e23f 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 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b 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 849a80bd377ffad8c3f4cad4880540d45c36173c 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 2c093903a4f5c32a659f085922f9cab28dd8a2b0 Author: Barry Kane <barry@omnimenu.ie> Date: Tue Aug 17 18:57:56 2021 +0100 Git Sanity Check
2023-02-15 22:24:24 +00:00
** C Style Guide:
These rules attempt to make the program as visually clear as possible, while
some rules may be made based on my own personal tastes.
- () :: These are parentheses.
- [] :: These are brackets.
- {} :: These are braces.
*** Formatting:
**** Control Statements:
- A space should be between the keyword and the condition. This is to make
control statements visually distinct from function calls.
- Opening braces should be on the line after the control statement, and closing
braces on the line after the last statement, on it's own. This is to make the
scope of the control statement easily identifiable.
- else and else if should always be on a new line, not the same line as an if
statement's closing brace. This is to more easily distinguish the seperate
blocks.
- Control statements should never omit braces and do single statements. This is
mostly personal preference, but I do think it makes things more clear.
*** Naming:
**** Rule 0: NEVER USE i AND j!
Never use the variable names i and j. These are easy to confuse, and often make
nested loops awful to read. Name these more descriptively.
For example:
- If you are using a variable to index an array, name the variable index.
- If you are indexing multiple arrays, name it "array name + Index".
- If you are using it to count something, call it count, or "name of the
thing you are counting + count".
**** Rule 1: No one letter variable names, unless in a mathematical function.
You should never use one letter variable names. They're needlessly obtuse and
you will not remember their meaning upon re-reading of the source code. The
exception to this is when you are writing a function which replicates a
mathematical formula or function with commonly accepted notation. However, you
should consider if it would be better to break mathematical convention for
clarity inside the program, such as when the variable names are the first letter
of a word or the mathematical notation uses many similar looking variables.
**** Rule 2: Prefer to use full words in variable and function names:
You should always prefer to use full words in variable and function names. It
makes the source code much easier to read, like a sentence. Ideally, if you want
to shorten the name, use synonyms or rephrasing before you resort to removing
letters.
*** Comments: