a blog by Sara Farquharson

Virtual Party Space Devlog #13: Server-side architecture

Today I start looking into server-side architecture to support a large number of simultaneous users, and also put in pathfinding for other players' avatars.


Architecture conclusions

  • to be in same conference, all users need to hit same jicofo instance (can only scale vertically)
  • prosody is single-threaded and may also be a blocker https://community.jitsi.org/t/site-slowing-down-on-concurrent-connections/80822/17
  • jvb can be separate, and can load-balance multiple servers for same conference using Octo
  • limitation is bandwidth/client bandwidth
    • last-n is probably required if most people sending video
    • need to come up with distance-based-n solution


  • started putting pathfinding in to allow for other-player movement and also mouse-based movement
    • pulled in easystar
  • started changing gridphysics/player code to work with additional sprites
    • looked into improving isometric math, but it might actually be as good as it gets?
    • removed some extra Vector object creations from methods that get called every draw cycle
      • don’t know that this actually makes a difference but creating 60 objects/second must add up?

About this series

Back in mid-December I started an ambitious project to create a custom platform for a virtual birthday party in February. I kept notes on my progress, both for personal reference and to turn into a series of blog posts. It quickly became apparent that I did not have time to both do the project and blog about the project. I have retroactively decided to post my raw notes as a dev log.