Finding your way around the Stendhal Web Client Code
Stendhal code design
This doucment describes the code structure of the experimental Stendhal web client. Please see How to setup an experimental Stendhal HTML5 Environment? for information on how to setup a development environment.
Folder structure
The web client is in the srcjs folder, which is next to the src-folder for Java. It makes uses of the marauroa client to handle network communication.
| Folder | Content |
|---|---|
| lib | external libraries, mostly used for polymer |
| stendhal/data | data structures for maps and image caches |
| stendhal/entities | entities (a combination of Entities and EntityViews in the java client) |
| stendhal/ui | the userinterface |
| stendhal/ui/stendhal-... | web components for buddy list, chat bar, chat log and inventory |
User interface
- The world view and the minimap are canvas based
- The buddy list, chat bar and chat log are web components using HTML
- The inventory (character, bag, keyring) are HTML based at the moment, but it might be a good idea to use canvas drawing for them
- The draw logic for world view and minimap is inside stendhal/entities.
Entry points
- stendhal.html is the entry point for the web client.
- stendhal-admin.html is the entry point for a simple text-only admin-client without graphics
- https://stendhalgame.org/client/webclient-todo.html TODO for a minimal playable client