Open RubyNova opened 6 years ago
What we could do is maybe add a POCO option for the player. And let everything else be handled by an InputManager of some kind.
The reason why a POCO might be a good idea is because it would supply the option to use them with ECS as well as completely decoupling input from the player object. This is a benefit for the netcode as well as we only need to send values and we can send a complete state back to the client. Although i am unsure how this would behave with other people their MUD clients.
Ive been currently looking into IO and player representation being separated in the first revision of the prototype. Should be out in a few days.
The IIOHandler
handles all input and ohtput as it currently stands. This is the centralised point of entry and exit.
In the first revision, input entities will be used as a means for command context. The input entity used to run the command will be determined by command source data which users of the engine can define.
If the POCO locks it to the engine's own sister client then well need a way to send standard telnet protocol to other MUD clients.
I don't want the engine to be restrictive like Unreal Engine 4, whereby if you're not making an FPS you're out of luck. I want to keep the engine as open-ended as possible, but since it's a MUD engine there's the issue of characters and how we wish to handle their stats and inventories.
Is this something we add into the engine? If so, how? I don't personally think we shold write this ourselves, or at least not entirely.
I want the engine to be used in as many RPG-esque contexts as possible.