Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
#+LATEX_HEADER: \RequirePackage[left=0.3in,top=0.3in,right=0.3in,bottom=0.3in, a4paper]{geometry}
|
2022-10-30 13:31:27 +00:00
|
|
|
* SilverMUD: The Hackable Terminal-Top Roleplaying Game.
|
|
|
|
SilverMUD is a tool for creating engaging and communal stories, all over the
|
|
|
|
world through the internet. It's designed to give a gamemaster the same power
|
|
|
|
to improvise that they have at the table, through simple programming and
|
|
|
|
easy-to-understand structures.
|
Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
|
|
|
|
* Player's Guide
|
|
|
|
** Running The Client
|
|
|
|
*** How To Connect To A Server:
|
|
|
|
To connect to a server, use the command-line option =-i=, and the IP address of
|
|
|
|
the server. If the server admin is hosting the server on a port other than the
|
|
|
|
default port of 5000, you can use the =-p= option with the number of the port. If
|
|
|
|
the connection is successful, you will be placed in the server's login
|
|
|
|
area. Type =/join <player name>=, where player name is a name of your choosing,
|
|
|
|
and you will be placed in the spawn area, ready to play.
|
|
|
|
|
|
|
|
*** Other Launch Options:
|
|
|
|
|
|
|
|
** The Basic Commands
|
2022-10-30 13:31:27 +00:00
|
|
|
SilverMUD is played through a set of very simple commands. To use a command,
|
|
|
|
type a forward-slash (/) followed immediately by the command name. The command
|
|
|
|
can be upper or lower-case.
|
|
|
|
|
Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
| Command | Arguments | Effect |
|
|
|
|
|---------+------------------------------------------+---------------------------------------------------------|
|
|
|
|
| JOIN | Character Name | Logs you into the server with the given character name. |
|
|
|
|
| MOVE | Path Name/Path Number | Moves you down the given path. |
|
|
|
|
| LOOK | None | Describes the current area. |
|
|
|
|
| STAT | None | Displays your current status and character sheet. |
|
|
|
|
| SPEC | Core Stat Name | Allows you to apply spec points to a given stat. |
|
|
|
|
| TRY | Core Stat Name/Skill Name, Object Number | Attempt to use the given stat or skill on the object. |
|
2022-10-30 13:31:27 +00:00
|
|
|
|
Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
* Gamemaster's Guide
|
|
|
|
** Running the Server:
|
2022-10-30 13:31:27 +00:00
|
|
|
|
Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
* Developer's Guide
|
|
|
|
** Build Prerequisites:
|
2022-10-30 13:31:27 +00:00
|
|
|
SilverMUD has the following dependencies:
|
|
|
|
- GnuTLS
|
|
|
|
- ncurses
|
Alpha 0.5 release of SilverMUD:
Features Changed:
- Refactored old lists and queues to a single type.
- Commented and cleaned up the codebase.
- Various improvements. See commits for more details.
Squashed commit of the following:
commit ff281e5ce6b9a74158a1c5aa97b7e429727b1018
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:16:12 2023 +0000
Increment version number
commit f5cb3ad16ed4f3d75f9ee39ec5fe7c9981c4646a
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 22:09:21 2023 +0000
More cleaning up.
- Brought remaining files in line with style guides, and improved comments.
commit f31f0c79a55681f7d4d1d4886bbf2bde7dc25483
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:43:13 2023 +0000
Cleaned up gamelogic.c/h
- Improved comments to clarify the purpose and usage of the data structures and functions.
- Brought the files in line with the SilverMUD style guide.
commit c2af4a551a4e44e8e53579cac1927341be40e46c
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:30:40 2023 +0000
Cleaned up inputoutput.h
- Changed the comments about the data structures to be more descriptive about their function.
commit c7531828274f5a725a31238d7d50ce6a83e8f96f
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 15 21:22:14 2023 +0000
Cleaned up inputoutput.c.
- Added additional comments in sections functions that were unclear.
- Renamed targetIndex to sentCount, in order to clarify the usage of the variable.
- Linted according to the current SilverMUD style guide.
commit f411333203df3d0ab01e9f4701fd81a477bcac0a
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Feb 13 17:23:30 2023 +0000
Refactored SilverMUD to use the queue type for command events.
- Removed the old commandQueue type.
- Removed the functions relating to creating, pushing, popping, and peeking the commandQueues.
- Refactored the gameLogicHandler to use a queue type.
commit 602f177a8f9b7d1eef5dc28bd36878b31aa06789
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:32:39 2023 +0000
Added some more comments.
- Commented the data structures in areadata.h and gamelogic.h.
commit d0e4a8f9fc06f9813a2f585f324ab6ddeb80160b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Feb 12 23:13:10 2023 +0000
Removed the body of the try command.
- Removed the try command's test functionality to allow for the later implementation of the actual functionality.
commit 66e0279e781fef6e6f7a3f6732c0e56084c50999
Author: Barry Kane <barry@omnimenu.ie>
Date: Sat Feb 11 00:07:30 2023 +0000
Commented the data structures in queue.h.
- Commented all the data structures in queue, to make it slightly clearer as to their usage and what they store.
commit feb17434252d76cd81ec41f6b1d41f6bdbad8a99
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Feb 10 23:33:36 2023 +0000
Added naming rule 2
commit 52fd7ef6fb5102897b9243fd52cc3c037761641b
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Feb 9 21:53:23 2023 +0000
Wrote more documentation and a rule for the style guide.
Documented basic usage of the client's launch options to join a server and added the no one letter variable names rule.
commit a38cbb70a8b6dc22696f85bef8a8fafedc304025
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Feb 8 17:15:23 2023 +0000
Fixed Thomas's Bug.
In short:
- When a large amount of input was recieved, the server would hang.
- The server would hang on queue->lock for the input queue, in pushQueue().
- Upon debugging, it was revealed that queue->lock was actually false at this time.
- GCC had optimized out the actual loop, leaving it to get stuck even though the variable had changed.
- Adding the volatile keyword to the lock fixed this issue.
commit c2c77d634343a66b2d7a54e96d4908e9b436f91e
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 20:31:32 2022 +0000
Cleaned and styled SilverMUDClient.c
- Brought SilverMUDClient.c to a consistent style.
- Cleaned and neatened various parts of SilverMUDClient.c.
- Minor cleanup of playerdata.h.
- Began writing the SilverMUD Style Guide.
- Removed outputQueue-test.c, because outputQueue no longer exists.
commit 6a653c75b98e59f03909da05711a09b834311f01
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Dec 21 00:49:26 2022 +0000
Implemented proper thread sleeping and additional output thread
- Replaced previous inefficient "spin-waiting" with proper thread sleeping.
- Added threading primitives to the queue type to enable this.
- Added additional thread for output management.
- Miscellanous cleanup and restructuring.
commit 15d82f59ee96cca51bfc9960c77c46ff59a19011
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Dec 20 15:55:24 2022 +0000
Refactored the outputQueue to use the new queue type
- Patched a bug where I didn't set the correct type for queue nodes.
- Removed all traces of the previous outputMessageQueue type.
- Removed the pointer "next" in outputMessage.
- Rewrote the the main thread and game logic thread to use a queue for output.
- Refactored outputMessage to allow for a variable amount of playerInfo pointers.
commit 9b3df5928b45ba2eb74c27f25ee71fa1813fa0af
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Dec 19 23:44:16 2022 +0000
Refactored the input queue to use the new queue type
- Removed all traces of the previous inputMessageQueue type.
- Removed the pointer "next" in inputMessage.
- Rewrote the the main thread and game logic thread to use a queue for input.
commit 8ae3eaf2b844390512deb9fc46159635562130d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Dec 18 21:07:10 2022 +0000
Added queue.c and queue.h.
- Added a singular queue type for input/output messages and commands.
- Added a test of the queue type in tests.
- Made some edits to the Makefile to enable the addition of debug code using the preprocessor.
- Minor styling and spelling updates in gamelogic.c/h and text effects .h.
- Ready to integrate the new queue type in place of the previous ones.
commit 2ab873b40b9ce6c9bf7edc38609c50f267318181
Author: Barry Kane <barry@omnimenu.ie>
Date: Wed Nov 30 15:31:14 2022 +0000
Make the client respect the set character delay.
- The client now respects the character delay set on the command line.
commit 4cc0d3a0f61e66f38872ffbebd7ec8f853819909
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Nov 29 21:04:36 2022 +0000
Completed the conversion to the new linked-list type.
- Moved all code relating to skills to use the new linked-lists.
- Removed all old code relating to other lists.
- Improved linked lists to get nodes more efficiently in the second half of the list.
commit 51f1a953e71be24c827a8aa2b120fb277eb3f3d1
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 18 14:44:25 2022 +0000
Refactored areas to use linked-lists.
- Refactored the server to rely on the linked-list version of area lists.
- Removed all old code pertaining to Area/Path lists.
- Removed a no-longer useful test for corestat-from string performance.y
commit 6b3d9febf64b4083ec6b3a464aac7d4dcd3df5ea
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:26:36 2022 +0000
Linked lists now destroy the pathList of an area.
- Modified destroyList to destroy pathLists in areas.
commit d843f0b170e5c58f5ed7ce0c762d7887449c566f
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 18:21:06 2022 +0000
Added one-way path function.
- Added a function to create one way paths.
- Changed the test areas to a new setting and to include one-way paths.
commit 582a0d02aecc22d2b7274bb00e1a68176fbcdf00
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Nov 13 00:23:42 2022 +0000
Refactored paths to use linked lists.
- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
commit f3ad758e4f4344b58c2218db0c3eaa46b7e89fd4
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri Nov 11 22:58:05 2022 +0000
Preliminary implementation of linked-list.c
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
commit c68e66e7bc92bf6fb349ac09adcadfdff29960db
Author: Barry Kane <barry@omnimenu.ie>
Date: Mon Oct 31 01:55:44 2022 +0000
Squashed current warnings.
- Fixed all current warnings.
- Added the ability to set the text delay as a command line option in the server.
commit ca8ba5e41043aaea9823b4423ea1b69f30d7664a
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 13:00:18 2022 +0000
Incremented version numbering in preperation for merge to master.
- Incremented version numbering to Alpha 0.4.
commit d9497679cb8a3bd906400f13cd08bdb54876dee1
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 30 12:58:39 2022 +0000
Implemented Skill Checks.
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
commit f2dd83857ffc6c60cd40872910fe73057202d492
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 23 17:07:13 2022 +0100
Completed Reorganization of Area Data
- Moved the appropriate data structures and functions into areaData.
- Made movePlayerToArea a gameplay primitive.
commit 52b4b1e2f05ba27a0576e05fd3e4d7fa0b8b744b
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Oct 18 21:00:57 2022 +0100
Warning fixes and Makefile edits
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
commit 60110d3abd48a413c904c559a39f1d13c705709b
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 21:28:32 2022 +0100
Made client exit gracefully upon server exit:
- The client now checks the return value of messageReceive.
- Renamed lists.c/.h to areadata.c/.h.
commit b8189ae2dee1ffd4f44faa18c3482c3718a73da2
Author: Barry Kane <barry@omnimenu.ie>
Date: Sun Oct 16 16:13:33 2022 +0100
Began implementation of skills and stats.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
commit 8673bb1ad5391e0e61f7b3ebf734ef74c01c0ef5
Author: Barry Kane <barry@omnimenu.ie>
Date: Fri May 20 22:28:07 2022 +0100
Reorganized file structure.
- Reimplemented /LOOK.
- Commands are now accepted in both upper and lower case.
- Move now accepts a number for easier movement.
commit 151f3002b81d4629b656598ba957ae401503bae0
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu May 5 19:45:27 2022 +0100
Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
commit 0b3a72beffb789f6d56799626207008890a78a40
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:39:59 2022 +0100
Removed inputhandling library
The functionality was moved to inputoutput.
commit 4ddb80b8b26f13b240a790d62e9047dfd9cd15f0
Author: Barry <bazzakane@gmail.com>
Date: Thu Apr 7 01:38:36 2022 +0100
Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
commit e4b86930374c70a8d95e1c9986ef90a77cf65f4f
Author: Barry <barry@omnimenu.ie>
Date: Tue Mar 15 14:52:49 2022 +0000
Cleaned up client.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
commit 5d772df46985213f10cc955ad2db1975f7078e15
Author: Barry <barry@omnimenu.ie>
Date: Sun Mar 6 00:36:42 2022 +0000
Added initial GnuTLS encryption.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
commit 235ff8e74ffb1afdbd7585b5226a3efb5dff4b9a
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 26 19:07:30 2021 +0000
Added basic logging support and command-line options to the client.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
commit 6c93805d6f3bf5f660562f0ec4c2b267ca124a76
Author: Barry <barry@omnimenu.ie>
Date: Sun Dec 5 23:33:53 2021 +0000
Added initial implementation of doubly-linked lists
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
commit 241ac7a92b6a335d780486f3c23a3b8385e3d408
Author: Barry <barry@omnimenu.ie>
Date: Thu Nov 4 23:14:47 2021 +0000
Added area and path creation functions
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
commit 85a31a293390ee88fd462a68c26681f089474085
Author: Barry <barry@omnimenu.ie>
Date: Thu Oct 21 21:58:55 2021 +0100
Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
commit ae8373d4ce4cddd6632893623cd86d68eb12b84c
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:12:05 2021 +0100
Incremented Version Number.
- Incremented version number in preperation for merge.
commit 18a4f416f6970bd826a6a5157cb03a61e1702048
Author: Barry Kane <bazzakane@gmail.com>
Date: Wed Sep 15 00:07:13 2021 +0100
Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
commit 94118039427c81e047424c73f2f6c3ccb2e88f94
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:07:42 2021 +0100
Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
commit 7047d0ee08dd522709d3130fa340d33f4ab5e23f
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 10 15:03:02 2021 +0100
Added two-window messaging to the client.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
commit 33bc9bcda0c5d4afbbfa9b5371ad2ef83b5e6f1b
Author: Barry Kane <bazzakane@gmail.com>
Date: Fri Sep 3 18:47:11 2021 +0100
Adapted client to use Ncurses instead of raw terminal output:
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
commit 849a80bd377ffad8c3f4cad4880540d45c36173c
Author: Barry Kane <barry@omnimenu.ie>
Date: Thu Aug 19 23:07:58 2021 +0100
Basic input sanatization:
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
commit 2c093903a4f5c32a659f085922f9cab28dd8a2b0
Author: Barry Kane <barry@omnimenu.ie>
Date: Tue Aug 17 18:57:56 2021 +0100
Git Sanity Check
2023-02-15 22:24:24 +00:00
|
|
|
|
|
|
|
** C Style Guide:
|
|
|
|
These rules attempt to make the program as visually clear as possible, while
|
|
|
|
some rules may be made based on my own personal tastes.
|
|
|
|
|
|
|
|
- () :: These are parentheses.
|
|
|
|
- [] :: These are brackets.
|
|
|
|
- {} :: These are braces.
|
|
|
|
*** Formatting:
|
|
|
|
**** Control Statements:
|
|
|
|
- A space should be between the keyword and the condition. This is to make
|
|
|
|
control statements visually distinct from function calls.
|
|
|
|
|
|
|
|
- Opening braces should be on the line after the control statement, and closing
|
|
|
|
braces on the line after the last statement, on it's own. This is to make the
|
|
|
|
scope of the control statement easily identifiable.
|
|
|
|
|
|
|
|
- else and else if should always be on a new line, not the same line as an if
|
|
|
|
statement's closing brace. This is to more easily distinguish the seperate
|
|
|
|
blocks.
|
|
|
|
|
|
|
|
- Control statements should never omit braces and do single statements. This is
|
|
|
|
mostly personal preference, but I do think it makes things more clear.
|
|
|
|
|
|
|
|
*** Naming:
|
|
|
|
**** Rule 0: NEVER USE i AND j!
|
|
|
|
Never use the variable names i and j. These are easy to confuse, and often make
|
|
|
|
nested loops awful to read. Name these more descriptively.
|
|
|
|
For example:
|
|
|
|
- If you are using a variable to index an array, name the variable index.
|
|
|
|
- If you are indexing multiple arrays, name it "array name + Index".
|
|
|
|
- If you are using it to count something, call it count, or "name of the
|
|
|
|
thing you are counting + count".
|
|
|
|
|
|
|
|
**** Rule 1: No one letter variable names, unless in a mathematical function.
|
|
|
|
You should never use one letter variable names. They're needlessly obtuse and
|
|
|
|
you will not remember their meaning upon re-reading of the source code. The
|
|
|
|
exception to this is when you are writing a function which replicates a
|
|
|
|
mathematical formula or function with commonly accepted notation. However, you
|
|
|
|
should consider if it would be better to break mathematical convention for
|
|
|
|
clarity inside the program, such as when the variable names are the first letter
|
|
|
|
of a word or the mathematical notation uses many similar looking variables.
|
|
|
|
|
|
|
|
**** Rule 2: Prefer to use full words in variable and function names:
|
|
|
|
You should always prefer to use full words in variable and function names. It
|
|
|
|
makes the source code much easier to read, like a sentence. Ideally, if you want
|
|
|
|
to shorten the name, use synonyms or rephrasing before you resort to removing
|
|
|
|
letters.
|
|
|
|
|
|
|
|
*** Comments:
|