# outlol: multiplayer browser football and foosball, 3D view in three.js

**URL:** <https://discourse.threejs.org/t/outlol-multiplayer-browser-football-and-foosball-3d-view-in-three-js/94799>\
**Category:** Showcase\
**Created:** [September 29, 2026, 3:19pm UTC](https://discourse.threejs.org/t/outlol-multiplayer-browser-football-and-foosball-3d-view-in-three-js/94799 "2026-09-29T15:19:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ege\_Evirgen](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/ege_evirgen/32/72871_2.png) [@Ege\_Evirgen](https://discourse.threejs.org/u/Ege_Evirgen)\
**Post date:** [September 29, 2026, 3:19pm UTC](https://discourse.threejs.org/t/outlol-multiplayer-browser-football-and-foosball-3d-view-in-three-js/94799/1 "2026-09-29T15:19:08Z")

</div>

outlol is a free multiplayer football game that runs in the browser: [https://outlol.bid](https://outlol.bid)

The 3D view and the lobby are three.js (WebGLRenderer):

- **Lobby:** a globe that turns into a low-poly city island, where every field is a stadium. The stadiums are instanced. The shadow map has `autoUpdate = false` and is only rebuilt when the scene’s structure changes.
- **Match view:** in 3D you play from behind your own player, and spectators watch from the side like a TV broadcast. The foosball tables sit inside their own rectangular arena.
- **Models:** built in Blender or generated by Python scripts, with no third-party packs. Replacing the old packs took the map from 1.36M to 0.45M triangles per frame, and the model download from 890 KB to 144 KB gzipped.
- **Phones:** pixel ratio 2 with MSAA, ACES filmic tone mapping. The rule was to draw less on phones, not to draw worse.

The match itself is a fixed 60 Hz physics simulation on one player’s browser, sent to the others over WebRTC. There is also a 2D Canvas view of the same match.

I’d love feedback on how it runs on your GPU and phone, especially the city map.

 ![foosball-3d](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/4/6/46a5cf7835d72b90f44fb0fadf9559630be5f874.jpeg)  
 ![world-map](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/b/e/be1790b6d74f2431ac7c26c570ac90809b41de58.jpeg)
