Finding your way around the Stendhal Web Client Code

From Arianne
Jump to: navigation, search

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 / Files Content
lib/ external libraries, mostly used for polymer
stendhal/actions.js Actions sent from the client to the server
stendhal/config.js configuration settings
stendhal/data/ data structures for maps and image caches
stendhal/entities/ entities (a combination of Entities and EntityViews in the java client)
stendhal/events.js events sent from the server to the client
stendhal/main.js main entry point
stendhal/ui/ the userinterface
stendhal/ui/stendhal-.../ web components for buddy list, chat bar, chat log

User interface

  • The world view and the minimap are canvas based
  • The draw logic for world view and minimap is inside stendhal/entities.
  • 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 to handle the quantity display nicely

Entry points