Skip to content

brunosimon/folio-2025

Repository files navigation

Folio 2025

image info

Setup

Create .env file based on .env.example

Download and install Node.js then run this followed commands:

# Install dependencies
npm install --force

# Serve at localhost:1234
npm run dev

# Build for production in the dist/ directory
npm run build

Game loop

0

  • Time
  • Inputs

1

  • Player:pre-physics (Inputs)

2

  • PhysicalVehicle:pre-physics (Player:pre-physics)

3

  • Physics

4

  • PhysicsWireframe (Physics)
  • Objects (Physics)

5

  • PhysicalVehicle:post-physics (Player:pre-physics)

6

  • Player:post-physics (Physics, PhysicalVehicle:post-physics)

7

  • View (Inputs, Player:post-physics)

8

  • Intro
  • DayCycles
  • YearCycles
  • Weather (DayCycles, YearCycles)
  • Zones (Player:post-physics)
  • VisualVehicle (PhysicalVehicle:post-physics, Inputs, Player:post-physics, View)

9

  • Wind (Weather)
  • Lighting (DayCycles, View)
  • Tornado (DayCycles, PhysicalVehicle)
  • InteractivePoints (Player:post-physics)
  • Tracks (VisualVehicle)

10

  • Area++ (View, PhysicalVehicle:post-physics, Player:post-physics, Wind)
  • Foliage (VisualVehicle, View)
  • Fog (View)
  • Reveal (DayCycles)
  • Terrain (Tracks)
  • Trails (PhysicalVehicle)
  • Floor (View)
  • Grass (View, Wind)
  • Leaves (View, PhysicalVehicle)
  • Lightnings (View, Weather)
  • RainLines (View, Weather, Reveal)
  • Snow (View, Weather, Reveal, Tracks)
  • VisualTornado (Tornado)
  • WaterSurface (Weather, View)
  • Benches (Objects)
  • Bricks (Objects)
  • ExplosiveCrates (Objects)
  • Fences (Objects)
  • Lanterns (Objects)
  • Whispers (Player)

13

  • InstancedGroup (Objects, [SpecificObjects])

14

  • Audio (View, Objects)
  • Notifications
  • Title (PhysicalVehicle:post-physics)

998

  • Rendering

999

  • Monitoring

Blender

Export

  • Mute the palette texture node (loaded and set in Three.js Material directly)
  • Use corresponding export presets
  • Don't use compression (will be done later)

Compress

Run npm run compress

Will do the following

GLB

  • Traverses the static/ folder looking for glb files (ignoring already compressed files)
  • Compresses embeded texture with etc1s --quality 255 (lossy, GPU friendly)
  • Generates new files to preserve originals

Texture files

  • Traverses the static/ folder looking for png|jpg files (ignoring non-model related folders)
  • Compresses with default preset to --encode etc1s --qlevel 255 (lossy, GPU friendly) or specific preset according to path
  • Generates new files to preserve originals

UI files

  • Traverses the static/ui. folder looking for png|jpg files
  • Compresses to WebP

Resources