Graphics - Multi-User-Domain/vocab GitHub Wiki

Having a world with characters and actions is great, it means we have a world with agents who can interact with each other. To have a game, we need some way to represent this to the user. In this guide we're concerned with games which want to display to the user what is happening through a graphical interface - i.e. characters being rendered as bodies in a 2D or 3D physics engine, rather than in a text-adventure game. For static representations (e.g. character portraits), use the foaf:img and foaf:depiction properties (from the FOAF ontology). img is for something particularly representative (img) and depiction for any image which depicts the object.

2D Graphics

This guide is related to the logic in the 2Dgraphics ontology. The objective of that ontology is to provide logic for instructing 2D games engines (e.g. Godot) on how to display what is happening for any given action, character etc. It achieves this through the main class Animation which is attached to an object (character, building) and which is activated by an action (walking)

Normally any key-bindings etc remain the responsibility of the game, if you want to decentralise that you'll need to extend this vocabulary and guide

A note on animation variety

There is a trade-off here: storing graphical representations for each character (and being strict about only using these representations) is more work but it means that my character can be unique

However the most flexible design involves providing endpoints which is able to return representations of character. Providing and using this kind of thing allows people to create characters without thinking about how they look in a 2D game (or indeed to encounter them in a text-adventure game), and then to have those characters look roughly correct when imported into said 2D game (e.g. be the correct species). Cool, right?!

Animation

Each action (e.g. movement) can have an animation associated with it. The animation is concerned with the instructions for graphical representation of the action

# TODO : full example

Art Style Negotiation

mud:ArtStyle is a subclass of mud:Specification which indicates the compatibility between games of different artistic styles in graphics. The objective is to allow the game to prioritise graphical representations more consistent with its themes. As with other kinds of mud:Specification, a demo and spec on negotiating this is TODO