I'm thinking of switching over from .NET Console App to Godot 4 C# because I just opened this project in VS2022 and the console logger cursor was not working correctly.
Pros of going to Godot
- Can make use of Godot specific functions like GetNoise2D() which could be easily synced with client GetNoise2D() so everyone seeds the same seed
- Can make use of Godots awesome UI (who knows might even use ImGui with Godot)
A multi-threaded console / game server that handles logging, user commands, database and ENet connections for Raccoons Rise Up clients.
I have tried using several networking libs in the past, none of them worked out for me.
- Unity's 2019 LLMAPI has little documentation and unexplained behavior
- Godot's server-client model requires Godot to be built from open source which led me to several issues
- Mirror has to be created within Unity 2019 LTS, it cannot be used in a dotnet console app
The only networking lib that stood out to me is ENet-CSharp, I find it to be very simple and straight forward. Since the original repository has their issues closed, you'll find that this repository has theirs open and there are many people willing to help you with any questions you may have.
I previously created a game-server for The MMORPG Project but it did not follow thread safety and depended on an external API for the console. This game-server follows thread safety and does not depend on any external API for the console.
- ENet-CSharp Networking Lib
- JSON files to read / write from
- Console logs messages from several threads and listens for user commands at the same time
- Each character can have its own unique color (limited to the colors defined by
System.ConsoleColor
) - Each message shows a timestamp, the name of the thread and the log level
Delete
- Delete the character in front of the cursor
Backspace
- Delete the character behind the cursor
Left Arrow Key
- Navigate one character to the left
Right Arrow Key
- Navigate one character to the right
Up Arrow Key
- Go to the next recent command in command history
Down Arrow Key
- Go to the next previous command in command history
Command | Aliases | Finished | |
---|---|---|---|
help [cmd] |
h |
Show a list of helpful commands or info on a specific command. | Yes |
clear |
cls |
Clear the console. | Yes |
exit |
stop , quit |
Shutdown the server properly by saving everything before exiting. | Yes |
reset <player> |
Clear player from database or clear the entire database. | Yes | |
whois <player> |
who |
Get info about a player. | Yes |
kick <player> |
Kick a player. | Yes | |
ban <player> |
Ban a player. | Yes | |
unban <player> |
pardon |
Pardon a player. | Yes |
banlist |
List all banned players. | Yes | |
list |
List all currently connected players. | Yes | |
whisper <player> <message> |
w |
Send a private message to a player. | No |
broadcast <message> |
announce |
Broadcast a message to every player in the server. | No |
reply <message> |
r |
Reply to the most recent player that messaged the console. | No |
setperm <permLevel> <player> |
Set one or more players permission level. | No | |
whitelist <add | remove | enable | disable | list> [player] |
Whitelist management. | No |
// Log levels
Log("Hello world");
LogWarning("Be careful!");
LogError("Oops!");
// Colors
Log("&3The &8red &yfox &bjumped &rover &4the &5fe&6n&7c&8e&9.");
// Color Codes
/*
* Black &0 | Dark Gray &1 | Gray &2 | Dark Magenta &3
* Dark Blue &4 | Dark Cyan &5 | Dark Green &6 | Dark Yellow &7
* Dark Red &8 | Red &9 | Blue &b | Cyan &c
* Green &g | Magenta &m | Yellow &y | Reset &r
*/
Please see the projects current issues
Please see CONTRIBUTING.md
If you want to know more of what needs to be done please talk to valkyrienyanko
in the Raccoons Rise Up Revolt chat.