Skip to content

Navigation Menu

Sign in
Sign up

changelog

Vicious Squid edited this page Sep 8, 2026 · 192 revisions

v2.3.0.0709 | MILESTONE 8

ENGINE / PERFORMANCE

  • PERFORMANCE: Added cached brush AABBs, eliminating repeated bounding-box calculations across physics, collision and visibility systems.
  • PERFORMANCE: Optimized spatial-grid queries with fast paths for single-cell lookups.
  • PERFORMANCE: Inlined ray/AABB intersection in line-of-sight checks, substantially reducing temporary allocations and Python call overhead.
  • PERFORMANCE: Replaced per-tick NumPy allocations in door and mover interpolation with scalar arithmetic.
  • PERFORMANCE: Added lightweight XZ distance culling for the main camera render path.
  • PERFORMANCE: Cached renderer matrix uniform pointers within textured batches.
  • PERFORMANCE: Optimized terrain lighting by selecting the nearest lights supported by the terrain shader.
  • PERFORMANCE: Reduced property-editor rebuild overhead through deferred Qt updates and lazy plugin-tab construction.

EDITOR

  • NEW: Collapsible property-editor sections for improved inspector organisation.
  • NEW: Advanced property tab for less frequently used/dynamic properties.
  • NEW: Editable KeyValue defaults in the property editor.
  • NEW: Property grouping support for plugin-defined properties.
  • NEW: Generic floating-window infrastructure for editor and diagnostic tools.
  • NEW: Plugin entity-wizard hooks for custom entity creation workflows.
  • NEW: Singleton entity support for plugin-defined entity types.
  • IMPROVED: Entity type lookup can now use an explicit map_type, decoupling map serialization from Python class names.
  • IMPROVED: Asset browser failures are isolated to individual assets instead of aborting an entire scan.

PLUGIN SYSTEM

  • NEW: Expanded plugin API with property groups, entity wizards and singleton entity types.
  • IMPROVED: Plugin custom-property tabs are constructed lazily, reducing unnecessary editor initialization work.
  • IMPROVED: Plugin registration infrastructure now supports additional built-in extension layers while remaining backwards-compatible with existing plugins.

AUDIO

  • FIXED: Speaker looping property was not being honoured by game-view audio playback.
  • FIXED: StopSound now correctly stops active speaker channels.
  • IMPROVED: Per-entity audio channel tracking prevents duplicate looping channels when sounds are retriggered.

ROBUSTNESS

  • FIXED: Logic-thread exceptions are now logged with full tracebacks instead of silently terminating the update loop.
  • FIXED: Terrain shader setup no longer reports misleading failures when invoked before a valid OpenGL context exists.
  • FIXED: Terrain lighting no longer attempts to address more light uniforms than are declared by the terrain shader.
  • IMPROVED: GLB thumbnail generation reports failures without destabilising the asset browser.
  • IMPROVED: Runtime-only renderer caches are excluded from map serialization and undo state.

RENDERING

  • IMPROVED: Main-camera rendering can discard distant objects before expensive render preparation while leaving lights, portals and shadow/portal source collections unaffected.
  • IMPROVED: Reduced repeated uniform-pointer lookup during textured brush rendering.

QUALITY

  • NEW: Extensive regression and equivalence tests covering AABB caching, physics fast paths, ray intersection, mover interpolation, rendering culling, audio, floating windows and plugin infrastructure.
  • FIXED: Multiple edge cases identified through cross-codebase regression testing.

v2.2.0.2408a

  • PERFORMANCE: Gated some unnecessary lookups in monster vision system
  • Backported IO widget from MiniWind

v2.2.0.2408

  • Fixes and improvements:
    • FIXED: Property editor crash with integers >32 bits (backported from miniwind branch)
    • Textures can now be applied to angled brush faces via the FACE button

v2.2.0.2108 | MILESTONE 7

  • Everything needed to make & distribute First person, Top-Down and Open-World games
  • NEW: LogicCommand — Executes a console command when triggered.
  • Added native Play-mode load/save functionality to console and API
  • FIXED: ad-hoc signing to macOS release build (Thanks Carson)

v2.2.0.1908

  • UI fixes and performance enhancements
  • NEW: BigWorld Plugin for massive worlds; streams only the area around the player.

v2.2.0.1508

  • Improved random level generator
  • Property editor now exposes UUIDs and the I/O system can reference them
  • NEW: Topdown camera mode and assets (work in progress)
  • FIXED: Keyboard nudging was re-serialising the entire scene every keypress
  • PERFORMANCE: Persistent play-mode cull cache (_build_cull_cache). Built once at play-start:
    • (N,3) NumPy arrays of brush AABB centers and half-sizes
    • an object array of per-brush render refs
    • the list of mover/door row indices (the only brushes that move)
    • Per frame, the fast path now does almost no Python!

v2.1.0.0 | MILESTONE 6

  • NEW: Plugin API v1.3 provides primitives and extension points (Documented here)
  • NEW: Tidy Plugin for building "put everything away" games
  • FIXED: Improved package map discovery and ensured plugin metadata is not treated as playable maps.
  • I/O System:
    • FIXED: Added missing inputs/outputs in IO manager
    • FIXED: Console commands fire and ent_fire were broken
    • FIXED: levelchanger.OnUse was broken

v2.0.1.0


v2.0.0.0 | MILESTONE 5

  • NEW: Convex polyhedra brushes
  • NEW: Scissor (clip) tool - Shortcut X
  • NEW: Per-face surface inspector
  • NEW: cig pickup entity
  • FIXED: Portal rendering pipeline bug
  • PERFORMANCE: Hot code paths aggressively optimized across core rendering and spatial subsystems

v1.3.2.0 | MILESTONE 4

  • NEW: Dynamic lights cast real-time cubemap shadows
  • NEW: Water volume physics
  • PERFORMANCE: Improved terrain generation speed via NumPy batching
  • PERFORMANCE: Portals now utilize frustum culling for significant FPS gains
  • AI: NPCs now hear nearby sounds and actively investigate source locations
  • FIXED: OpenGL crash when loading/generating large terrain
  • FIXED: Linked portal yaw/pitch/roll orientation calculations

v1.3.1.0

Optimizations:

  • Vectorized brush frustum culling with NumPy (replaced per-brush Python loop)
  • Cached collision-brush lists instead of rebuilding every tick
  • Precomputed trigger, pickup, level-changer, and monster entity lists
  • Cached mover/door brush lists and normalized direction vectors once at load time
  • AI now iterates a precomputed monster list/ID-map instead of rescanning all entities
  • Batched spatial-grid and monster-ray debug visualizers into a single draw call
  • Memoized monster sprite texture-key strings to eliminate per-frame allocations

v1.3.0.0

  • NEW: Autocaulk tool for automated face optimization
  • NEW: Added GLB model support
  • NEW: Added "Save layout", "Restore layout", and "Reset layout" workspace controls
  • NEW: Taskbar and Dock icons for packaged Mac/Windows binaries
  • ENGINE: PyGame integrated for audio spatialization and gamepad support
  • AI: Monster AI offloaded to a dedicated background thread; increased monster hitboxes
  • UI/UX:
    • Improved Asset and Model Browsing via menu
    • Faster Property Editor response times
    • Enhanced Scene Hierarchy overview
    • Improved 2D view wireframes with clearer labelling
  • PERFORMANCE: Optimized renderer batching to reduce draw calls
  • FIXED: Selecting <None> shader type now properly reverts brush properties
  • FIXED: Issue where the Play button could display an incorrect state
  • FIXED: CSG subtraction failures on complex geometries

v1.2.6.51 | MILESTONE 3

  • NEW: Fiopak archive import/export system fully operational
  • UI/UX: Added dedicated Tools menu and enhanced Property Editor performance
  • ASSETS: Updated Asset Browser with distinct Maps and Packages views
  • IMPROVEMENTS: Upgraded OBJ loader and general code refactoring

v1.2.6.31


v1.2.6.30

  • NEW: Split-screen support in Play Mode (ss console command or F9) — Player 2 maps to arrow keys or connected gamepad

v1.2.6.2

  • FIXED: Corruption issue when exporting certain .fiopak archives
  • ENGINE: Initial work on split-screen viewport architecture

v1.2.6.1

  • FIXED: LogicSpawner failing to instantiate Monster entities
  • MAPS: Added Spawner_Test map for I/O validation

v1.2.6.0 | MILESTONE 2

  • NEW (BETA): World Portal entity for seamless non-Euclidean level design
  • NEW: .fiopak archive packaging format and "Play Game Package" launcher
  • NEW: Fullscreen toggle (F12 during Play mode)
  • TOOLS: tools/fio_to_map.py exporter converts Fio JSON maps to Quake/Valve 220 format
  • EDITOR: Arrow key nudging for selected entities (Shift for 5x multiplier)
  • EDITOR: Real-time 2D view camera tracking during Play mode
  • FIXED: Adreno GPU flickering issues on multi-monitor configurations
  • FIXED: Mover distances decreasing by 'lip' value on repeated cycles
  • FIXED: Monster hit registration accuracy

v1.2.5.5 | MILESTONE 1

  • NEW: Camera and Spawner entities
  • NEW: Teleporter brush mechanics fully functional
  • MOVERS: Movers can now interpolate along sequential PathNodes
  • FIXED: Preview Movement toggle for doors and movers

v1.2.5.1 – v1.2.5.3

  • NEW: Native macOS build and precompiled binary release
  • FIXED: Qt GUI crashes on macOS (special thanks to zc1036)
  • FIXED: Monster.get_sprite_path performing redundant filesystem queries every frame
  • FIXED: Missing overlay draw calls in Face Mode
  • CLEANUP: Removed redundant obj_loader.py module

v1.2.5.0

  • NEW: PathNode entity for monsters, movers, and teleporters
  • NEW: SpatialGrid partition visualization (sg console command)
  • NEW: Real-time 2D viewport rendering during Play Mode
  • NEW: notarget console command (makes player invisible to AI)
  • ENGINE: Dedicated engine/monster_ai.py logic core

v1.2.4.0

  • NEW: Monster AI behaviors and console debugging suite
  • NEW: Dynamic moving light sources (see maps/dLight_Test.json)
  • NEW: Mouse sculpting mode for terrain generation
  • WEAPONS: Added secondary weapon type (Shotgun)
  • I/O: Named brushes can now be toggled via I/O events (visibility, collision, color). Hidden brushes bypass render calls entirely.
  • FIXED: Broken I/O import references and glow brush rendering

v1.2.0.0 (Stable)

  • NEW: Visual Logic Graph Editor (CTRL+L) and Logic Wizard (CTRL+SHIFT+W) with 25 pre-built templates
  • NEW: Initial Monster entity implementation
  • MAP FORMAT: Upgraded to Map Format v3 with UUID-based entity identifiers (preserves I/O connections through renames)
  • TERRAIN: Heightmap loading and mouse sculpting support
  • FIXED: YZ viewport dragging direction flipped
  • FIXED: Frame-pacing race condition causing visual flickering

v1.1.0.0

  • NEW: LevelChanger entity for inter-map transitions
  • ENGINE: Refactored level loading pipeline utilizing Qt signals for safe state changes
  • CONSOLE: Expanded rendering engine console commands
  • FIXED: Edge cases in Logic Gate evaluation

v1.0.17.0

  • SHADERS: Implemented explicit mixed-precision shader qualifiers (highp for vertex positions, mediump for lighting and color calculations)
  • CONSOLE: Added interactive help command and expanded runtime triggers

v1.0.16.0

  • NEW: In-engine Debug Console (toggle with ~)
  • ARCHITECTURE: Refactored and summarized module structure across /editor and /engine directories

v1.0.15.0

  • SHADERS: Shader optimizations in preparation for deferred rendering pipeline
  • DISPLAY: High-DPI display scaling support

v1.0.14.0

  • PERFORMANCE: CPU path optimizations specifically targeted for ARM processors
  • SHADERS: Upgraded shaders to #version 330 core

v1.0.13.0

  • NEW: Source/Half-Life 2 style Entity I/O event system with real-time debugger
  • NEW: Logic Entities (timers, gates, and switches)
  • NEW: Per-face texture application
  • SYSTEM: Auto-saving and recent file history

v1.0.12.5

  • TERRAIN: Expanded procedural terrain generation limits by 16x
  • VISUALS: Enhanced untextured lo-fi geometry rendering modes

v1.0.12.0 | Verdant_Meadow

  • NEW: Terrain generator tool and UI
  • ENGINE: Expanded core rendering pipeline

v1.0.11.0 | Delicious-Toast

  • NEW: Initial non-beta public release
  • UI: Added Toast notification system to the editor UI

"Fio was born from a simple frustration: waiting hours for BSP, VIS and RAD just to test a level. Every design decision follows one principle—edit, press Play, and iterate instantly."

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /