Mycal
Staff member
I'll be honest. I do greatly enjoy learning new things, tinkering, etc. But, I program professionally for a company and at the end of a work day, I have very little desire to work on this or even most of my other personal projects.
I don't want to say this project is fully dead since I do still work on this off and on occasionally. However, the vast majority of the time, I'm experimenting with new ideas, technologies, etc. Since the last time I posted anywhere in this forums, I've greatly refactored this project into a distinct game and server library which I consider separate from Odyssey. The benefit of what I've done is that the libraries are entirely re-usable and fully extendable, but at the cost of, I've not actually worked on Odyssey itself or any specific game in years.
Rather than just completely closing down this site/forums, etc. I'm currently thinking, maybe I'll just convert the focus of this. Instead of being focused on games that I'm making, maybe I'll flip the focus to what I've dubbed BSGameLib. Odyssey has always been a Game Maker type of software, so this is just progressing even deeper down that path by providing a complete game library that is both cross-platform and extremely extendable.
So the question I pose to absolutely no-one (since I doubt anyone still visits here) is this. Considering the lack of any progress on this website. Would this interest anyone?
What this would essentially mean is, I would open-source all of BSGameLib as-is and build readme.md's for each of the pieces on how to use each component. I moved all of the source-code that I've produced over the last decade into Github a couple of years ago, so it would simply be flipping a few flags to make these repositories public and adding some licenses to them.
Please note, none of the original Odyssey code is used in BSGameLib since I greatly enjoy creating things from scratch, but because I agreed I wouldn't share Odyssey's code when it was given to me, I am going to apply that to the rewrite as well. Therefore, the Odyssey codebase and assets I've been rewriting will remain closed-source in order to respect Steverino's wishes.
Currently BSGameLib consists of the following:
* BSGameLib.Core - Just a collection of utilities that are used across all components.
* BSGameLib.Client.Core - Houses a bunch of view/ui related contracts and a custom built event pub/sub system.
* BSGameLib.Server.Core - Mostly database related contracts
* BSGameLib.Chat - A complete custom built chat command engine. Allows registering commands and handlers or dynamically building chat commands. Also allows for command groups to accomdate odyssey style commands of "/god <command>".
* BSGameLib.Networking - Complete networking library. This was written to be agnostic of the networking framework so that can change basically at any time if needed. So this wraps Lidgren but doesn't expose any Lidgren methods/interfaces. The super big advantage to this library is it has a custom built packet system which essentially utilizes a DTO and a DTOHandler. This makes it very easy to add new game packets to both the game client and server.
* BSGameLib.UI - This houses a BurningstormGame component which is a wrapper around MonoGame. It adds a very rough MVVM system, though this is very incomplete as I never finished the bindings. The view engine utilizes xml based templating. I've created most of the basic controls that would be used in a user interface, such as buttons, labels, textboxes, radio buttons, checkboxes, comboboxes. The general idea was to provide a mechanism for creating a scene which could house one or more views which would be drawn in order on the scene before being rendered to the screen. There's a lot more to say about this library, but I'll save that for a readme.
* BSGameLib.Graphics - Mostly just giving some texture sheet and BMFont support to MonoGame.
If I go decide to open-source this. I'll probably also add the following which are currently very tied into Odyssey.
* BSGameLib.Server - A server library that wire's up and implements a lot of the basic things you would need to build a new game server. This could probably be either a library or contracts an executable. Currently this is a console based executable with no UI.
* BSGameLib.Server.Plugin - A server plugin system that basically will let you use minimal programming to extend the game server.
* BSGameLib.Networking.Pipes - A simple Named Server Pipe library utilizing Grpc. This probably won't be helpful on it's own but gives a useful starting framework for pipe-based contracts. This is a completely optional library to help you keep the Server UI separate from the Server console as I have it today.
I don't want to say this project is fully dead since I do still work on this off and on occasionally. However, the vast majority of the time, I'm experimenting with new ideas, technologies, etc. Since the last time I posted anywhere in this forums, I've greatly refactored this project into a distinct game and server library which I consider separate from Odyssey. The benefit of what I've done is that the libraries are entirely re-usable and fully extendable, but at the cost of, I've not actually worked on Odyssey itself or any specific game in years.
Rather than just completely closing down this site/forums, etc. I'm currently thinking, maybe I'll just convert the focus of this. Instead of being focused on games that I'm making, maybe I'll flip the focus to what I've dubbed BSGameLib. Odyssey has always been a Game Maker type of software, so this is just progressing even deeper down that path by providing a complete game library that is both cross-platform and extremely extendable.
So the question I pose to absolutely no-one (since I doubt anyone still visits here) is this. Considering the lack of any progress on this website. Would this interest anyone?
What this would essentially mean is, I would open-source all of BSGameLib as-is and build readme.md's for each of the pieces on how to use each component. I moved all of the source-code that I've produced over the last decade into Github a couple of years ago, so it would simply be flipping a few flags to make these repositories public and adding some licenses to them.
Please note, none of the original Odyssey code is used in BSGameLib since I greatly enjoy creating things from scratch, but because I agreed I wouldn't share Odyssey's code when it was given to me, I am going to apply that to the rewrite as well. Therefore, the Odyssey codebase and assets I've been rewriting will remain closed-source in order to respect Steverino's wishes.
Currently BSGameLib consists of the following:
* BSGameLib.Core - Just a collection of utilities that are used across all components.
* BSGameLib.Client.Core - Houses a bunch of view/ui related contracts and a custom built event pub/sub system.
* BSGameLib.Server.Core - Mostly database related contracts
* BSGameLib.Chat - A complete custom built chat command engine. Allows registering commands and handlers or dynamically building chat commands. Also allows for command groups to accomdate odyssey style commands of "/god <command>".
* BSGameLib.Networking - Complete networking library. This was written to be agnostic of the networking framework so that can change basically at any time if needed. So this wraps Lidgren but doesn't expose any Lidgren methods/interfaces. The super big advantage to this library is it has a custom built packet system which essentially utilizes a DTO and a DTOHandler. This makes it very easy to add new game packets to both the game client and server.
* BSGameLib.UI - This houses a BurningstormGame component which is a wrapper around MonoGame. It adds a very rough MVVM system, though this is very incomplete as I never finished the bindings. The view engine utilizes xml based templating. I've created most of the basic controls that would be used in a user interface, such as buttons, labels, textboxes, radio buttons, checkboxes, comboboxes. The general idea was to provide a mechanism for creating a scene which could house one or more views which would be drawn in order on the scene before being rendered to the screen. There's a lot more to say about this library, but I'll save that for a readme.
* BSGameLib.Graphics - Mostly just giving some texture sheet and BMFont support to MonoGame.
If I go decide to open-source this. I'll probably also add the following which are currently very tied into Odyssey.
* BSGameLib.Server - A server library that wire's up and implements a lot of the basic things you would need to build a new game server. This could probably be either a library or contracts an executable. Currently this is a console based executable with no UI.
* BSGameLib.Server.Plugin - A server plugin system that basically will let you use minimal programming to extend the game server.
* BSGameLib.Networking.Pipes - A simple Named Server Pipe library utilizing Grpc. This probably won't be helpful on it's own but gives a useful starting framework for pipe-based contracts. This is a completely optional library to help you keep the Server UI separate from the Server console as I have it today.