SilverMUD/Makefile

30 lines
888 B
Makefile
Raw Normal View History

Alpha 0.2 release of SilverMUD: Features Added: - Two window messaging in the client. - Input sanitization to prevent server spam. - Slow print text effect ported to Ncurses. - Graceful handling of C-c. Features Changed: - Ncurses is now used in place of raw-terminal output. - Sending and Receiving are now on their own threads. - Makefile updated to add server linking variable. - Control characters no longer cause server spam. - Splash texts' version incremented. - Makefile updated to link Ncurses. Features Removed: - None. Squashed commit of the following: 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
2021-09-10 14:17:21 +00:00
CC = gcc
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
clientsrc = $(wildcard src/*.c) \
src/client/SilverMUDClient.c
clientobj = $(clientsrc:.c=.o)
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
serversrc = $(wildcard src/*.c) \
src/server/SilverMUDServer.c
serverobj = $(serversrc:.c=.o)
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
CLIENTLDFLAGS= -lpthread -lncurses -lgnutls
SERVERLDFLAGS= -lpthread -lncurses -lgnutls
SilverMUDClient: $(clientobj)
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
gcc -o $@ $^ $(CLIENTLDFLAGS)
SilverMUDServer: $(serverobj)
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
gcc -o $@ $^ $(SERVERLDFLAGS)
SilverMUDClientDebug: $(clientobj)
gcc -pg $^ $(CLIENTLDFLAGS) -o $@
SilverMUDServerDebug: $(serverobj)
gcc -pg $^ $(SERVERLDFLAGS) -o $@
.PHONY: clean
clean:
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
rm -f $(clientobj) $(serverobj) SilverMUDClient SilverMUDServer SilverMUDClientDebug SilverMUDServerDebug
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
all: clean SilverMUDClient SilverMUDServer
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
all: CFLAGS += -Wall -Wextra -Ofast
debug: CFLAGS += -Wall -Wextra -pg -ggdb -Og -D debug
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
debug: clean SilverMUDClientDebug SilverMUDServerDebug