Skip to content

Commit

Permalink
Merge pull request SOMAS2020#68 from SOMAS2020/vis-section
Browse files Browse the repository at this point in the history
short visualisation section

admin privelages lol (jk its one paragraph merigng in due to time constraints)
  • Loading branch information
yp717 authored Jan 15, 2021
2 parents 5ec6b2b + b86fa22 commit 5c7e220
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions 03_gamedesign/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -195,10 +195,15 @@ \subsection{Technology Stack}
\subsection{Visualisations}
\label{sec:GD:implementation:visualisations}

\subsubsection{Toolchain}
A benefit from the choice of the Go technology stack was that it supports compiling source code into WebAssembly out of the box. WebAssembly can be run efficiently in most modern browsers, which meant that in-browser simulations can be run and then visualised on a website.
The visualisations developed to support interpretation and analysis of the data generated by simulations took full advantage of Golang's compatibility with WebAssembly. WebAssembly supports the compilation of source code into WebAssmebly out of the box and can even be run efficiently in most modern browsers. This meant that the website supported real-time in-browser simulations and visualisations.

The website (\url{https://somas2020.github.io/SOMAS2020/}) features... % TODO:- Vis team: yp717 et al.
The website (\url{https://somas2020.github.io/SOMAS2020/}) features an array of visualisations that help extract meaning from the raw data. The site was developed using ReactJS, TypeScript, and a series of visualisation libraries including Re-Charts and D3.js.

As the cutting edge front-end development framework used in industry today, ReactJS brought the benefits of decomposition, reusable components, and easier management of the state of content on the Document Object Model (the DOM) of the site. Further, its support for JSX for templating allows it to create complex components, while also remaining a flexible plug in architecture for future visualisations and work. TypeScript's strict typing capabilities on top of this enforced strict typing to improve code quality and reduce runtime errors.

D3.js is a low level visualisation library that facilitates the creation of dynamic and interactive data visualisations. The focus with each visualisation was to bring clarity to the data through both its visual representation and interactivity. This library was used in the development of the transaction and IITO visualisations on the site.

This tooling approach significantly sped up the simulation process and facilitates real time exploration of the system and agents developed. The site currently supports the visualisation of IIGO rules, roles and payments, IITO transactions, Foraging, Transactions between islands and the common pool, resources, island achievements and metrics.

\subsection{Engineering Practices}
\label{sec:GD:implementation:practices}
Expand Down

0 comments on commit 5c7e220

Please sign in to comment.