Skip to content

Make sauerbraten fork more dynamic

Andreas Schaeffer edited this page Jun 29, 2014 · 4 revisions

Sauerbraten is more or less a very static game. In future, we should reduce the core functionalities to a minimum but make things extendable. There are lots of possibilities which would increase the fun dramatically.

Dynamicification Possibilities

  • Unlimited types of weapons
  • Unlimited types of player models
  • Dependency management for content
  • Unlimited types of game modes
  • New dynamic particle system
  • New dynamic 2d effect system
  • New dynamic entity system
  • Destructible geometry
  • Location based effects
  • Customizable HUD

Unlimited types of weapons

  • API for the weapon game logic
  • reloading
  • shot
  • hud updates
  • bouncer control
  • 3D Model Files
  • 1st Person
  • 3rd Person

Unlimited types of player models

Currently there is a fixed number of player models. To make it more dynamic it would require to address player models by name instead of a number.

  • Player-Model Configuration (Name, Description)
  • 3D Model Files
  • Preview

Dependency management for content

Content depends on other content. The goal is to reduce redundancy which makes the game more lightweight and faster: less hard drive space needed, decreased download duration and increased map loading times. Nowadays we can't deliver one single package anymore: it would be too big and we would dictate what content the player have to play. Instead the game should dynamically update the content dependent on the players needs. There's no need to deliver 80 ctf maps if the player only plays regen capture for example.

Dependencies

  • Maps
  • Textures
  • Map models
  • Map sounds
  • Skyboxes

Unlimited types of game modes

  • The game logic must be loaded dynamically (for example a javascript)
  • Game mode configuration
  • spawn/respawn states
  • team modifiers
  • specify allowed weapons, ammo, reload time, ...
  • specify health, armor, ...
  • specify engine/physics modifiers
  • API for adding features to the HUD
  • New elements on the HUD
  • Minimap

New dynamic particle system

Replace the old particle system by a more dynamic one.

  • Emitters (different types, configurable)
  • Different types
  • Point
  • Line
  • Plane
  • Circle
  • Sphere
  • 2D Raster Field
  • 3D Raster Field, ...
  • Configurable
  • Emitter rate
  • Initial Velocity
  • Scatter
  • Renderer to use
  • Modifiers to use
  • Particle Modifiers
  • Mass-Spring
  • Particle <-Spring-> Particle
  • Fixed Coordinate <-Spring-> Particle
  • Brownian Motion
  • Velocity Damper
  • Branching Particles
  • Bounding Box Particle Culling
  • Geometry Collision
  • Particle Rendering
  • Point-Based (Billboards)
  • Smoke
  • Fire
  • Lava
  • Poison
  • Snow
  • Flares (Lightnings, Rain)
  • Geometry-Based
  • 2D: Triangles, Quads, Rings, ...
  • 3D: Tetrahedrons, Cubes, Tubes (Hair), ...
  • Model-Based
  • Meta Balls
  • Merge multiple particles into a blub
  • Combined (Geometry + Faces + Mass-Spring)
  • Cloth
  • Reaction with environment
  • Gravity Points, Planes (only applies on particles)
  • Constant Gravity
  • Pulsing Gravity
  • Performance
  • Use pools
  • Use shaders
  • Use billboarding
  • Particle Limiter
  • Particle Culling
  • Full control for map makers
  • Scripting particle effects using JavaScript

New dynamic entity system

  • Unlimited types of entities
  • Map Models
  • Particle Gravity Point

Destructible geometry

  • Modify geometry
  • Shot based
  • Explosion based
  • Modify lightmaps
  • Synchronize geometry of all players
  • Synchronize lightmaps