DEV Community

Discussion on: Invoking Functions on Distributed Game Objects

Collapse
 
deadwisdom profile image
Brantley Harris • Edited

Yeah, alright. Let's get to it then.

I have been thinking of a similar architecture, layering things like Engine | Servers | Web Clients.

The Engine, I imagined as an Entity-Component-System that held all of the game state. It would shard per "map", a zone/group of rooms. And it would run like a data-source, sort of like redis. You could send it commands and queries, and it would return state information. Systems would tick the world, as it were: move objects, spawn things, apply effects, etc.

Servers could be many, and this is where the WASM would come into play. I don't fully understand your WASM actors, but I am reading about them now. Servers would manage configuration, worlds, and libraries. Each "Library", would be a versioned set of types and scripts. So you could branch off of a library to work on your own Ogre, put this new guy into a demo room, work on him, and then upgrade all Ogres to your new version. The servers would be able to work on their own, running many actors as AI, or they could connect to the web clients.

I'm more of a front-of-house full-stack guy, so I'm exceedingly comfortable in the web-client. I have lots of designs, and have prototyped, a web interface that feels like a modern book, with SVG maps that give you a sense of where you are. (No images except for these maps, this is a MUD after all.)

Anyway, those were my thoughts. I have much more, and I would love to work with you on this.