---
# System prepended metadata

title: Cryptovoxels MEGASCALE

---

# Cryptovoxels MEGASCALE


Ben: Backend

movePacket is 80 * 5 bytes / second.


* Ben to load test
* Scale up number of heroku instances
* 

Marcus: Frontend

* Limit number of avatars displayed
* Display all but x nearest avatars as billboard standins (maybe with [sprites](https://doc.babylonjs.com/babylon101/sprites))
    * https://github.com/cryptovoxels/cryptovoxels/issues/191
* Disable voice chat connection unless `activate` called
* Disable loading of avatars in low performance mode
* measure frametime in scene.render() - if consistenyl below 40fps, pop up low performance message

Zuni: Metrics / ui

* setInterval every 30 seconds
* insert row into database of servername, created_at = now() and number of users in the shard (shard.client.length)
* make chat persistent
* low performance warning message: in bottom right saying 'your computer is on fire, click here to run in ?performance=low mode'


Mobile work:

* Test on marcus iphone 6
* Reduce memory usage
* Don't load more parcels than needed
* Make sure we free memory
* Only activate one parcel at a time
* Texture compression on server
* Try add PVRTC to the image server to see if it fixes out of memory (OOM) crashes on marcus's phone

Fix Edge browser support:

## More optimisation tricks (benefit rated 1 - 5)



| Description | Social | Realism | Network | FPS | Avatar limit |
| ----------- | ------ | ------- | ------- | --- | ------------ |
| sprite avatars | 5 | 3 | 3 | 3 | 3 |
| billboard avatars | 5 | 2 | 3 | 4 | 4 |
| chatroom avatars | 5 | 1 | 5 | 5 | 5 |
| smaller culling radius | 4 | 4 | 4 | 5 | 2 |
| less updates for faraway avatars | 5 | 4 | 4 | 4 | 2 |
| sharding | 3 | 5 | 5 | 5 | 3 |
| queue (no sharding) | 5 | 2 | 5 | 5 | 3 |
| single parcel | 4 | 3 | 5 | 5 | 3 |

## Online admin tool

### Reporting

* List of users in different shards
* Date/time user entered and left
* Minimum, median, maximum FPS for users (can plot as line graph as well)
* User-agent (from web server logs) for each user
* User volume over time

### God features

* Can kick out users
* Can post chat messages / popups on every users' screen

