Latest Updates
v0.31.0LATEST
2025-12-02✨ Features
- ●Enhanced collision handling for players - introduced passthrough entity types allowing players to pass through certain entities for improved gameplay flow
🔧 Refactoring
- ●Refactored game-client and server code - improved readability and functionality across the codebase
- ●Refactored user data access in website package - improved data access patterns and organization
- ●Refactored import paths in game-shared package - standardized import paths for better consistency
- ●Updated website package dependencies and configuration - improved dependency management and build configuration
- ●Updated dependencies and refactored website components - enhanced component structure and maintainability
- ●Updated game-client and website packages - various improvements and code quality enhancements
v0.30.0
2025-12-01✨ Features
- ●Added Infection game mode - new competitive mode where one player starts as Patient Zero while others defend against zombies
- ●Implemented shared zombie lives system - zombies share a pool of lives in infection mode, creating strategic gameplay dynamics
- ●Added voting system for game mode selection - players can vote on the next game mode after a game ends
- ●Implemented zombie spawning mechanics - zombie players can spawn new zombies at specified locations with cooldown management
- ●Added Human Indicators Panel - zombie players can see human targets on the map and minimap
- ●Added Zombie Lives Panel - displays shared zombie lives remaining in infection mode
- ●Enhanced AI state display - leaderboard now shows AI players with emoji indicators for better visual clarity
- ●Improved map rendering - added fog of war renderer, collidable renderer, and toxic zone renderer for better visual feedback
- ●Enhanced grenade functionality - improved battle royale strategy integration and gameplay mechanics
🔧 Refactoring
- ●Centralized AI configuration - moved AI settings to shared config package for better maintainability and consistency
- ●Refactored entity management - introduced shared distance utility function for improved numerical stability and performance
- ●Enhanced entity registration - dynamic entity registration based on shared configuration for improved modularity
- ●Improved AI player management - dynamically adjusts AI counts based on real player presence for better game balance
- ●Refactored entity factory pattern - streamlined entity creation with better type safety and configuration integration
- ●Enhanced auto-pickup rules - improved rule system for determining which items can be auto-picked up
- ●Improved entity map helpers - added utility functions for managing entity type-based maps
- ●Refactored client event handlers - better organization and separation of concerns for event handling
- ●Enhanced interaction manager - improved interaction logic and state management
- ●Updated projectile balance configuration - centralized projectile settings for easier balancing
⚡ Performance
- ●Optimized distance calculations - shared distance utility function reduces redundant calculations across the codebase
- ●Improved entity spawning logic - streamlined spawning process with better integration into game state
v0.29.0
2025-11-29✨ Features
- ●Added Battle Royale game mode - new competitive mode with shrinking toxic zones, crate spawns, and last-player-standing victory condition
- ●Implemented AI system for zombie players - comprehensive AI with state machines, pathfinding, targeting, threat assessment, and combat decision-making
- ●Added auto-pickup functionality - resources, coins, trees, and stackable items automatically collect when walked over for smoother gameplay
- ●Added Toxic Biome Zone entity - new environmental hazard that applies poison effects to players within its area
- ●Enhanced version mismatch handling - clients now receive graceful version mismatch events instead of immediate disconnection
- ●Added game mode system - extensible strategy pattern supporting multiple game modes (Waves and Battle Royale)
- ●Improved zombie player interactions - zombie players can no longer interact with items, vehicles, crafting, or toxic zones
🔧 Refactoring
- ●Removed admin command manager - eliminated CommandManager from both client and server for improved security and code simplicity
- ●Refactored player entity validation - enhanced type safety with proper PlayerClient instance checks throughout game client and HUD
- ●Refactored interactive entity rendering - improved performance by skipping rendering when auto-pickup is enabled or display name is empty
- ●Enhanced event handling architecture - refactored socket managers and event handlers to support new game modes and improved error handling
- ●Improved entity management - better handling of zombie player restrictions and game mode-specific behaviors
- ●Added comprehensive client-server initialization documentation - detailed guide explaining serialization behavior and game state management
⚡ Performance
- ●Optimized interactive entity rendering - reduced unnecessary rendering calls when entities have auto-pickup enabled
- ●Enhanced event rate limiting - improved server-side event handling with better rate limiting mechanisms
v0.28.0
2025-11-24✨ Features
- ●Added player color customization - players can now select from a range of colors to personalize their appearance
- ●Added upgraded structure entities - WallLevel2, WallLevel3, SentryGunLevel2, SentryGunLevel3, SpikesLevel2, and SpikesLevel3 for enhanced gameplay strategies
- ●Improved wave pacing - reduced wave duration from 60 seconds to 30 seconds for faster-paced gameplay
🔧 Refactoring
- ●Refactored placement logic - introduced entityBlocksPlacement function to improve clarity and maintainability of structure placement
- ●Enhanced placement system - decal entities (blood, acid) no longer block structure placement, allowing visual effects without interfering with gameplay
- ●Updated poison extension parameters - increased toxic gas cloud max damage from 1 to 3 for improved gameplay dynamics
⚡ Performance
- ●Optimized network serialization - implemented efficient serialization methods for ItemState, reducing data size during network transmission
- ●Introduced encoding systems - added item type, group, interactable text, and wave state encoding to map strings to numeric IDs for improved network efficiency
v0.27.0
2025-11-23✨ Features
- ●Added thunderstorm event management - thunderstorms trigger after wave completions with configurable duration and lightning intervals
- ●Added lightning bolt effects - visual lightning strikes that damage players caught in the strike area
- ●Added rain particle effects - visual rain particles during thunderstorms for enhanced environmental immersion
- ●Enhanced environmental event system - refactored to support multiple environmental strategies including toxic gas and thunderstorm events
🔧 Refactoring
- ●Refactored environmental event manager - moved to strategy pattern with separate strategies for each event type for better extensibility
- ●Enhanced game state management - added support for global illumination and darkness hue changes during thunderstorms
v0.26.0
2025-11-23✨ Features
- ●Added toxic gas cloud entity and environmental event management - toxic gas clouds spawn after wave completions, expanding over time and creating hazardous areas
- ●Added energy drink item - consumable item that provides temporary infinite run effect, allowing players to sprint without depleting stamina
- ●Implemented automatic player respawn mechanics - players automatically respawn after death when cooldown expires, with countdown display on death screen
- ●Added survivor and crate spawning mechanics - survivors and crates now spawn in random biomes at wave start, improving item distribution and gameplay dynamics
🔧 Refactoring
- ●Enhanced survivor indicators and UI responsiveness - survivor indicators now only show unrescued survivors on map and minimap, improving visual clarity
- ●Improved item drop balance - adjusted item drop chances for zombies and overall spawn rates using global multipliers for better game balance
v0.25.0
2025-11-23✨ Features
- ●Enhanced merchant panel functionality - improved UI layout with title area, close button, and better spacing for better user interaction
- ●Added balance configuration system - centralized pricing configuration for consistent item pricing across merchants
- ●Implemented individual player cooldowns for car repairs - each player now has their own repair cooldown timer
🔧 Refactoring
- ●Refactored input handling - restricted key inputs when merchant panel is open, allowing only Escape and E to close the panel
- ●Enhanced entity management - added safety checks to prevent duplicate entity IDs and ensure proper ID recycling
- ●Improved merchant buy panel - always displays all inventory items without tab filtering for better visibility
- ●Updated prediction manager - skips collision checks for walls and sentry guns to improve performance
- ●Adjusted Splitter Boss balance - reduced splits remaining from 4 to 3 for better game balance
- ●Improved one-time trigger extension - enhanced check interval for more responsive interactions
- ●Updated item stack sizes and inventory handling - improved gameplay experience with better stack management
v0.24.0
2025-11-22✨ Features
- ●Added Splitter Boss zombie - new boss type that splits into smaller versions when reaching health thresholds, spawning on wave 9
- ●Implemented boss split mechanics - Splitter Boss splits up to 2 times with configurable speed, health, and damage multipliers per split
- ●Added boss split event system - client and server-side event handling for boss splitting behavior with visual feedback
🔧 Refactoring
- ●Enhanced boss entity system - added split configuration support for dynamic boss behavior
- ●Updated wave configuration - integrated Splitter Boss into wave spawn system as wave 9 boss
v0.23.0
2025-11-22✨ Features
- ●Added Acid Flyer zombie - new flying zombie type with cross-dive movement pattern that drops acid on players
- ●Implemented Acid and Poison effects - players can be poisoned when walking over acid pools left by Acid Flyers
- ●Added Grave Tyrant boss zombie - replaced BossZombie with new Grave Tyrant boss type
- ●Added Charging Tyrant boss zombie - new boss type with ground slam attack and charging movement strategy
- ●Implemented player display name functionality - players can now change their display names with validation and local storage support
🐛 Bug Fixes
- ●Fixed game instructions toggle - instructions menu no longer toggles when typing username on initial screen
🔧 Refactoring
- ●Enhanced zombie movement strategies - added cross-dive movement pattern for Acid Flyer and charging movement for Charging Tyrant
- ●Improved attack strategies - added ground slam attack for Charging Tyrant with area damage effect
- ●Updated wave configuration - integrated new zombie types into wave spawn system
v0.22.0
2025-11-22✨ Features
- ●Added car destruction mechanics - car can now be destroyed, spawning zombies around the campsite and creating explosion effects
- ●Enhanced zombie spawning system - implemented robust spawn logic that ensures zombies spawn at valid positions with proper distribution
🐛 Bug Fixes
- ●Fixed chat widget player name retrieval - now correctly checks if entity is PlayerClient instance before retrieving name
🔧 Refactoring
- ●Refactored MapManager - introduced constants for ground and collidable tile IDs to improve readability and maintainability
- ●Improved spawn logic and tile handling - enhanced biome proximity checks and merchant spawn logic for better configurability
- ●Updated resource bag initialization - players now start with zero coins instead of twenty for improved game balance
- ●Enhanced throwing knife projectile - now stops at boundaries while allowing it to pass through walls
v0.21.0
2025-11-22✨ Features
- ●Added merchant item selling functionality - players can now sell items to merchants for coins
- ●Enhanced item pickup logic - improved feedback when inventory is full with visual messages and color-coded interaction text
- ●Added interaction text background - improved visibility of interaction prompts with background styling
- ●Enhanced SpawnPanel - categorized spawnable entities into weapons, items, zombies, and ammo for better organization
- ●Improved inventory capacity checking - accurate detection of full inventory based on non-null item count
🔧 Refactoring
- ●Refactored merchant UI styling - improved merchant buy panel code organization and maintainability
- ●Updated entity configurations - improved collision handling and entity type definitions
- ●Enhanced stackable item system - better support for item stacking logic and validation
- ●Improved map manager - enhanced entity spawning and management logic
v0.20.0
2025-11-21✨ Features
- ●Added throwing knife weapon - new throwable melee weapon that can be thrown at enemies and recovered
- ●Added molotov cocktail weapon - throwable fire weapon that creates area damage and flames on impact
- ●Enhanced zombie alert system - zombies now broadcast alert events when detecting players, triggering sound effects for better awareness
- ●Added smoke particle system - visual smoke effects for molotov cocktails and other fire-based weapons
- ●Implemented inventory item stacking - items can now be stacked in inventory slots with count display
- ●Added inventory item switching - players can drag and drop items to swap positions in inventory
- ●Added split item functionality - players can split stacked items and drop them separately
- ●Implemented full state request on reconnect - clients now request complete game state when reconnecting for seamless recovery
- ●Added user ban event handling - server can now ban users with proper client-side notification
- ●Added version mismatch detection - clients are notified when game version doesn't match server
- ●Improved merchant shop UI - enhanced item browsing, purchasing, and inventory management interactions
- ●Improved weapons HUD - better ammo display positioning and wheel sizing adjustments
🔧 Refactoring
- ●Refactored extension system - all extensions now use generic fields for improved type safety and code clarity
- ●Enhanced zombie AI separation behavior - zombies now maintain separation distance to prevent clustering
- ●Removed delayed socket implementation - simplified socket management by removing unused delayed socket code
- ●Improved spatial grid management - better cleanup and state management for entity queries
⚡ Performance
- ●Optimized client entity management - improved performance through better state handling and cleanup
v0.19.1
2025-11-19✨ Features
- ●Added inventory drag and drop functionality - players can now drag items from inventory slots to drop them
- ●Implemented interact hold system - players can hold the interact key for a duration before executing interactions
- ●Added drop item event handler - new server-side handler for dropping items from inventory slots
- ●Added consume item event handler - new server-side handler for consuming items with proper validation
- ●Added select inventory slot event - players can now explicitly select inventory slots via dedicated event
- ●Improved inventory UI - drag preview shows item being dragged with visual feedback
🔧 Refactoring
- ●Refactored inventory management - introduced selected inventory slot system for improved item selection and drop mechanics
- ●Enhanced input handling - updated input system to support new interaction events (onInteractStart, onInteractEnd)
- ●Improved player entity serialization - streamlined inventory and interaction data handling for better network efficiency
v0.19.0
2025-11-18✨ Features
- ●Improved boss zombie mechanics - enhanced position calculation and hitbox management for more accurate combat
- ●Added Pong event system - implemented latency tracking and connection quality monitoring for better network diagnostics
- ●Enhanced connection handling - improved error handling, reconnection logic with exponential backoff, and connection timeouts
- ●Improved UI layout - updated chat widget bottom margin for better visual spacing
🔧 Refactoring
- ●Major event system refactor - reorganized events into proper folder structure with dedicated handler classes for better maintainability
- ●Refactored game state management - entities now organized by type for improved organization and faster lookups
- ●Removed decal system from biome editor - streamlined editor experience by eliminating decal handling and related components
- ●Type consistency improvements - changed player IDs from string to number type for consistency across the codebase
- ●Refactored server architecture - moved event handlers into dedicated handlers directory and improved code organization
⚡ Performance
- ●Removed MonitoredBufferWriter - replaced with standard BufferWriter for improved performance and reduced overhead
- ●Added pathfinding cache - implemented LRU cache for pathfinding results to significantly improve AI performance
- ●Optimized lighting system - culling far-away light sources, reusing combined light maps, and only updating visible tiles for better frame rates
v0.18.0
2025-11-17✨ Features
- ●Added ClientSnared extension - new extension system for marking entities as immobilized on the client
- ●Added boss entity functionality - implemented boss step and summon events with enhanced enemy rendering for boss presentation
- ●Improved weapons HUD - added ammo display and refactored code for better weapon information visibility
🐛 Bug Fixes
- ●Added event processing guard - events are only processed after initial game state is received, preventing race conditions
- ●Improved map manager - now skips entities without positionable extension to prevent rendering errors
🔧 Refactoring
- ●Refactored entity interaction system - changed entity IDs from string to number type for improved performance and consistency
- ●Enhanced entity serialization - introduced FIELD_TYPE_NULL and field metadata for better handling of optional and typed fields
- ●Refactored Player entity - removed activeItem field and now derive activeItem directly from inventory for cleaner architecture
- ●Refactored input handling - removed SequenceManager and improved input serialization with dedicated event classes
- ●Added field-level delta compression analysis - comprehensive documentation and implementation for efficient network updates
- ●Refactored game architecture - removed deprecated day/night cycle components and transitioned to wave system management
- ●Added comprehensive serialization documentation - new guides explaining extension field-level delta compression analysis
⚡ Performance
- ●Enhanced entity serialization with BufferWriter - refactored all extensions to use MonitoredBufferWriter for improved logging and performance
v0.17.0
2025-11-16✨ Features
- ●Added closest interactive entity highlighting - interaction text now shows yellow for the closest entity and white for others
- ●Improved interaction feedback - players can now easily identify which entity they will interact with when multiple are nearby
- ●Added priority system for dead players - dead players are prioritized over other interactive entities for looting
- ●Updated interaction text rendering across all entity types - car, survivor, enemy, and generic entities now use consistent highlighting
⚡ Performance
- ●Optimized interaction detection - closest interactive entity is calculated once per frame and cached in gameState
v0.16.1
2025-11-16✨ Features
- ●Added pickup progress indicator above players while holding interact on placeable items
- ●Improved teleport and pickup visuals by reusing shared radial progress renderer
- ●Reduced pickup hold time to 0.5 seconds and broadcast progress to clients for faster feedback
🐛 Bug Fixes
- ●Fixed leaderboard data by marking display name, kills, and ping fields dirty immediately
v0.16.0
2025-11-16✨ Features
- ●️ Added biome-editor-server package - new server infrastructure for biome management and editing
- ●Improved client event handling - added disconnect handling with automatic reconnect attempts and exponential backoff
- ●Added camera shake effects - weapons now trigger camera shake on attack, and zombie deaths create proximity-based shake for enhanced immersion
- ●Improved item pickup interaction - players can now hold interact key to pick up placeable items for better control
- ●Added performance monitoring environment variable - ENABLE_PERFORMANCE_MONITORING flag for enhanced debugging capabilities
🔧 Refactoring
- ●Refactored weapon recoil mechanics - consolidated recoil system in Weapon class for better maintainability and consistency
- ●Updated infrastructure - upgraded to TypeScript 5.7.2 and Node.js 24-slim for improved performance and features
⚡ Performance
- ●Implemented object pooling system - vectors and rectangles now use memory pools for improved performance and reduced garbage collection
- ●Refactored entity serialization to use BufferWriter - significantly improved network efficiency and reduced bandwidth usage
- ●Enhanced entity ID management - implemented pool-based ID system to prevent ID exhaustion and improve efficiency
- ●Added automatic entity cleanup - entities are automatically removed after 2 minutes to prevent memory leaks
v0.15.0
2025-11-15✨ Features
- ●Added gallon drum containers - new lootable environmental objects that spawn randomly on the map
- ●Gallon drums can be searched for random items - contains 2 random items from the spawn pool
- ●Added spacebar attack support - players can now attack using spacebar in addition to mouse clicks
- ●Improved combat controls - spacebar provides quick melee/ranged attack alternative to clicking
- ●Updated items sprite sheet with new gallon drum graphics
- ●Gallon drums are destroyed after being looted and disappear from the map
⚡ Performance
- ●Enhanced compression system with gallon_drum entity support for network efficiency
v0.14.0
2025-11-15✨ Features
- ●Added blood decals - blood splatter appears when players and zombies take damage, fading over 10 seconds
- ●Added arrow recovery system - arrows that reach max travel distance drop as collectible arrow items
- ●Improved bow and arrow gameplay - reduced arrow travel distance from 200 to 100 pixels for better balance
- ●Enhanced visual feedback with new blood sprite on ground texture sheet
- ●Added Expirable extension for temporary entities - blood decals automatically expire after duration
- ●Updated ground and items sprite sheets with new blood and arrow graphics
🐛 Bug Fixes
- ●Fixed arrow and bow sprite positioning in items sheet for correct visual alignment
🔧 Refactoring
- ●Added DECALS z-index layer between ground and items for proper rendering order
⚡ Performance
- ●Enhanced compression system with blood entity support for network efficiency
v0.13.2
2025-11-14✨ Features
- ●Added fullscreen map drag functionality - players can now pan around the map with mouse dragging
- ●Implemented map offset tracking - view position persists while map is open
- ●Improved player indicator on map - shows actual player position relative to dragged view instead of always center
- ●Added proper drag state management - drag is canceled when closing the map
🐛 Bug Fixes
- ●Fixed input blocking when fullscreen map is open - weapon firing and aiming disabled during map view
v0.13.1
2025-11-14✨ Features
- ●Added wood resource entity - wood can now be collected and managed as a resource item
- ●Enhanced entity factory to support resource registry - resources spawn correctly client-side
- ●Added resource configuration system for data-driven resource management
🔧 Refactoring
- ●Refactored wearable items system - miners hat and other wearables now use config-based detection
- ●Updated hardcoded lists documentation with critical maintenance checklist
- ●Improved code organization by reducing hardcoded item type checks
v0.13.0
2025-11-14✨ Features
- ●Added baseball bat weapon - new melee weapon for close-range combat
- ●Implemented survivor indicators panel - displays status and count of rescued survivors
- ●Added server time synchronization - client now calculates server time offset for accurate timing
🔧 Refactoring
- ●Added comprehensive hardcoded lists documentation - maps all content registrations and maintenance points
- ●Improved melee weapon detection - refactored to use weapon config type checking instead of hardcoded lists
- ●Consolidated hotbar into main HUD system - simplified UI architecture and click handling
- ●Enhanced display name formatting utility - consistent text formatting for interactive entities
- ●Refactored swipe animation logic - melee attacks now use config-based detection for better extensibility
- ●Improved code organization - removed redundant weapon type checks throughout codebase
- ●Enhanced input manager integration - hotbar now properly integrated with HUD event handling
v0.12.0
2025-11-14✨ Features
- ●Added comprehensive sound effect system - car repair, wave start, crafting, and building sounds now play positionally
- ●Added background music system - ambient music plays during exploration with automatic transitions
- ●Added battle music - intense music plays during wave combat and stops when wave ends
- ●Added campfire ambient sound - looping campfire crackling with distance-based volume
- ●Added horn sound effect - plays when wave starts to alert players
- ●Added campsite fire entity - animated fire with 5-frame animation cycle at the campsite
- ●Improved sound manager with looping sound support - updateCampfireSoundVolume() for dynamic volume control
- ●Added build sound support - different build sounds for different placeable items (walls, spikes, etc)
- ●Added sound cleanup on game exit - stops all music and sounds when leaving game
🐛 Bug Fixes
- ●Fixed wave state transitions - battle music stops correctly when wave ends (ACTIVE to PREPARATION)
🔧 Refactoring
- ●Refactored entity image loading - all entities now use getImage() method for consistent asset management
- ●Added comprehensive sound documentation - complete guide for adding sounds with event system examples
- ●Improved client event handling - added CarRepairEvent, WaveStartEvent, CraftEvent, and BuildEvent handlers
- ●Enhanced campfire rendering - uses entity type for dynamic asset loading instead of hardcoded keys
⚡ Performance
- ●Optimized campfire sound updates - caches campsite fire reference to avoid repeated entity searches
v0.11.7
2025-11-14🔧 Refactoring
- ●Refactored movement strategies - centralized targeting logic into shared movement-utils module for consistency across all zombie AI types
- ●Added getCarLocation() method to MapManager - provides centralized access to car position for AI targeting
⚡ Performance
- ●Optimized AI targeting - zombies now prioritize closest friendly entities (players/survivors) over car, reducing unnecessary long-distance pathfinding
- ●Added tiered entity update system - entities far from players now update less frequently to reduce CPU usage (configurable via UPDATE_TIERS config)
- ●Optimized trigger extensions - OneTimeTrigger and TriggerCooldownAttacker now check for entities every 0.5 seconds instead of every tick
- ●Added random cooldown offsets to trigger checks - prevents multiple triggers from checking simultaneously and spreads queries over time
- ●Added UpdateScheduler class - manages entity update frequency based on distance tiers (0-500px, 500-1000px, 1000+px ranges)
- ●Integrated UpdateScheduler into EntityManager - entities automatically register/unregister and update based on proximity to players
- ●Improved zombie AI efficiency - all movement strategies now use TargetChecker class to cache target positions and reduce redundant calculations
- ●Added UPDATE_TIERS configuration - allows enabling/disabling tiered updates and customizing update intervals per tier
v0.11.6
2025-11-14✨ Features
- ●Added granular performance tracking instrumentation throughout zombie AI update loops for detailed profiling
- ●Added ENABLE_PERFORMANCE_MONITORING config flag - performance monitoring disabled by default for production safety
🐛 Bug Fixes
- ●Fixed player activeItem handling - added proper null/undefined checks to prevent rendering crashes
🔧 Refactoring
- ●Removed fire extinguisher item from the game (cleaned up both client and server implementations)
- ●Removed debug console.log statements from asset manager for cleaner production logs
⚡ Performance
- ●Optimized zombie AI performance - offset attack cooldowns randomly to prevent simultaneous attacks and spread expensive queries over time
- ●Optimized idle zombie behavior - reduced player check frequency from every tick to every 0.5 seconds for significant CPU savings
- ●Optimized survivor targeting - converted to filterSet-based entity queries and squared distance calculations for faster nearest zombie detection
- ●Improved attack strategy efficiency - idle zombies now skip attack queries when no players are nearby (avoids expensive operations when zombies are far away)
v0.11.5
2025-11-13🐛 Bug Fixes
- ●Fixed input crash bug - added null/undefined checks for previousInput in facing and aim angle comparisons
- ●Fixed client rendering crash - added extension existence check before accessing ClientCollidable in BulletClient
- ●Fixed player initialization - ensured input is always defined with fallback to default values
- ●Fixed OneTimeTrigger distance calculation - changed from getPosition() to getCenterPosition() for accurate trigger detection
- ●Fixed entity removal cleanup - corrected expire logic in entitiesToRemove splice condition
🔧 Refactoring
- ●Simplified zombie targeting - removed unused filterTypes parameters from findNearbyAttackableEntities and findClosestAttackableEntity
- ●Refactored grenade initialization - replaced array find() with hasExt/getExt pattern for consistency
- ●Integrated EntityStateTracker - added notifyTrackerDirty() and notifyTrackerClean() for automatic dirty entity tracking
- ●Removed performance timing tracking - cleaned up updateExtensionsTiming Map and related code
⚡ Performance
- ●Optimized entity dirty tracking - implemented O(1) lookup with entity-level dirty flag instead of checking all extensions
- ●Optimized extension storage - changed from array to Map for O(1) hasExt() and getExt() lookups
- ●Optimized entity lookup - added Map for O(1) getEntityById() instead of O(n) array search
- ●Optimized player interaction - cached position/radius, pre-calculated distances, and removed redundant filters
- ●Optimized Positionable.getCenterPosition() - reduced Vector2 allocations by computing center directly
v0.11.4
2025-11-13✨ Features
- ●Reduced bullet travel distance from 400 to 200 pixels for better game balance
- ●Added per-entity-type timing tracking in EntityManager for performance profiling and debugging
🐛 Bug Fixes
- ●Fixed mouse aiming - continuous firing now works correctly when moving mouse while holding click
- ●Fixed entity count tracking - properly increment/decrement counts when adding/removing updatable entities
- ●Fixed Interactive range - now uses MAX_INTERACT_RADIUS constant instead of hardcoded 64 pixels
🔧 Refactoring
- ●Removed redundant Triggerable extension from Spikes - TriggerCooldownAttacker already handles triggering
- ●Improved EntityFinder signature - accepts Set<EntityType> instead of array for consistency
⚡ Performance
- ●Optimized spatial queries - converted entity type filters from arrays to Sets for O(1) lookups instead of O(n)
- ●Improved AI targeting performance - moved entity type filtering to constants for reuse across systems
- ●Optimized TriggerCooldownAttacker - added early exit when cooldown not ready to skip expensive spatial queries
- ●Reduced query radius in TriggerCooldownAttacker from 100 to 16 pixels to avoid unnecessary entity lookups
- ●Optimized distance calculations - replaced sqrt with squared distance comparison in TriggerCooldownAttacker
- ●Enhanced getNearbyEntities performance - reverse iteration and early continue for better cache locality
- ●Added ATTACKABLE_TYPES and FRIENDLY_TYPES constants to reduce allocations in hot paths
v0.11.3
2025-11-13🔧 Refactoring
- ●Refactored entity extension initialization - replaced array assignment with addExtension() method calls
- ●Removed syncExtensionTracking() method - no longer needed with proper addExtension() usage
- ●Simplified extension dirty tracking - all extensions now consistently marked dirty on creation
- ●Improved type safety - removed optional chaining for isDirty() and serializeDirty() checks
- ●Enhanced code maintainability with consistent extension registration pattern across 40+ entity classes
v0.11.2
2025-11-13✨ Features
- ●Added specialized movement strategies - melee, ranged, flying, leaping, and idle movement patterns for different zombie types
- ●Added specialized attack strategies - melee, ranged, and leaping attack behaviors with configurable damage and cooldowns
- ●Improved survivor NPC rendering - survivors now display pistol weapon when rescued and patrol campsite
- ●Added GunFired event - plays positional pistol sound when survivors and players fire weapons
- ●Added Boundary entity to client - syncs map boundaries between server and client for collision detection
🐛 Bug Fixes
- ●Fixed survivor animation - survivors no longer animate during pause periods between wandering movements
🔧 Refactoring
- ●Refactored enemy AI with strategy pattern - separated movement, attack, and targeting behaviors into composable strategies
- ●Added comprehensive serialization documentation explaining entity state sync patterns and dirty tracking system
- ●Improved type safety in client event handlers - better instanceof checks for PlayerClient entities
- ●Removed zombiesRemaining from game state - simplified wave tracking to use totalZombies only
- ●Fixed unused variable warnings in bullet.ts for cleaner codebase
v0.11.1
2025-11-13🐛 Bug Fixes
- ●Fixed minimap fog of war radius calculation for more accurate reveal area
- ●Fixed server restart bug by removing unnecessary entityManager.clear() call
🔧 Refactoring
- ●Refactored network compression layer - moved encoding/decoding into DelayedSocket and DelayedServer classes
- ●Improved bandwidth tracking - centralized byte tracking in DelayedServer for better monitoring
- ●Simplified socket event handling - removed manual compression calls throughout codebase
⚡ Performance
- ●Added 'resourceType' to compression dictionary for improved network efficiency
v0.11.0
2025-11-12✨ Features
- ●Added Survivor NPCs - rescue survivors scattered across the map to recruit defenders for your campsite
- ●Survivors automatically shoot at zombies within range after being rescued and teleported to campsite
- ●Survivors wander around campsite area with periodic movement and pause behavior
- ●Survivors are invincible in special biomes but vulnerable elsewhere - zombies skip them in safe zones
- ●Added stackable item system - bandages, gasoline, grenades, landmines, spikes, and walls now stack
- ●Items display count badge in inventory when stacked for better space management
- ●Improved UI scaling - reduced font sizes from 32px/48px to 24px for cleaner HUD appearance
- ●Repositioned chat widget from 320px to 140px above bottom for better visibility
- ●Survivors can be looted when killed, dropping their inventory items
🐛 Bug Fixes
- ●Fixed death screen overlap - death screen no longer displays during game over dialog
🔧 Refactoring
- ●Added Asset Manager documentation explaining sprite loading and asset management system
v0.10.1
2025-11-11✨ Features
- ●Added inventory slot change callback system for better reactivity to player input
- ●Added local inventory slot tracking on client for smoother UI responsiveness
🐛 Bug Fixes
- ●Fixed UI click blocking - clicking HUD elements no longer triggers placement system
- ●Fixed enemy collision detection - enemies now properly update position during collision checks
🔧 Refactoring
- ●Added ResourcesBag extension - moved resource tracking (coins, wood, cloth) into dedicated extension system
- ●Added Inventory extension - refactored inventory management into extension-based architecture
⚡ Performance
- ●Optimized entity performance with dirty tracking - only serialize changed extensions to reduce network traffic
- ●Added fast extension lookups using Set for O(1) hasExt() checks instead of O(n) array iteration
- ●Added separate tracking for updatable extensions to avoid checking every extension on each tick
- ●Improved serialization efficiency with dirty-only mode - significant reduction in bandwidth usage
v0.10.0
2025-11-11✨ Features
- ●Added teleport-to-base feature - players can hold C to channel a 3-second teleport back to campsite
- ●Teleport is interrupted if player takes damage during the channel time
- ●Added circular progress indicator above player's head showing teleport channel progress
- ●Changed quick heal keybinding from Z to H for better ergonomics
- ●Players cannot teleport if already near the campsite (minimum 200 pixel distance required)
- ●Updated instruction panel to reflect new keybindings
- ●Added teleport cancel event when releasing C key before completion
🔧 Refactoring
- ●Removed crafting keybinding (C key now used for teleport)
v0.9.4
2025-11-11✨ Features
- ●Added resource pickup event system - broadcasts when players collect wood, cloth, or other resources
- ●Made grenades stackable - grenades now stack in inventory with count tracking
- ●Added weapon handler registry for extensible weapon behavior without hardcoded checks
🐛 Bug Fixes
- ●Fixed SPAWNABLE_ENTITY_TYPES proxy for improved React compatibility
🔧 Refactoring
- ●Refactored player resource management to use generic Map-based system for extensibility
- ●Converted grenades to Weapon class for consistent weapon behavior
v0.9.3
2025-11-11✨ Features
- ●Added entity override registry system for registering custom entity classes
- ●Created generic entity classes that auto-generate from configuration (no manual class creation needed)
- ●Added entity generator utility to auto-generate entity constants from configs
🔧 Refactoring
- ●Simplified item and weapon creation process - simple items now only require config definition
- ●Completely rewrote documentation for adding inventory light items with simplified approach
- ●Completely rewrote documentation for adding weapons with simplified data-driven approach
- ●Reduced code duplication by auto-generating server and client entities from shared configs
v0.9.2
2025-11-10✨ Features
- ●Added behavior configuration system (spawn, merchant, recipe) for items and weapons
🔧 Refactoring
- ●Refactored spawn system to use dynamic spawn tables built from item and weapon registries
- ●Refactored merchant shop to auto-generate items from registry configurations
- ●Removed legacy Canvas-based crafting table UI in favor of React component
- ●Centralized item and weapon configuration with spawn chances and merchant pricing
v0.9.1
2025-11-10🔧 Refactoring
- ●Improved release script code formatting and consistency
v0.9.0
2025-11-10🔧 Refactoring
- ●Minor version update and improvements
v0.8.3
2025-11-10✨ Features
- ●Redesigned homepage with full-screen splash image background for improved visual appeal.
- ●Changed loading scene background color to black for better contrast.
- ●Changed play route background to black for consistent dark theme.
- ●Added splash images (splash.jpg and splash.png) for homepage display.
v0.8.2
2025-11-09✨ Features
- ●Added mouse aiming support for grenades - grenades now use aim angle from mouse input when available.
- ●Increased spike trap damage from 1 to 2 for better effectiveness.
- ●Increased first wave delay from 10 seconds to 90 seconds to give players more preparation time.
v0.8.1
2025-11-08✨ Features
- ●Added Miners Hat - a wearable item that provides passive lighting when in inventory.
- ●Miners Hat automatically emits light without needing to be equipped or selected.
- ●Miners Hat renders as an overlay on the player sprite when in inventory.
- ●Miners Hat never shows as a 'held item' when selected since it's worn, not held.
🐛 Bug Fixes
- ●Fixed right-facing direction rendering issues for player sprites and animations.
v0.8.0
2025-11-08✨ Features
- ●Added individual player respawn system with 'Press any key to respawn' prompt.
- ●Players now respawn at the campsite with full health when they press any key after dying.
- ●Inventory is cleared on death and items remain scattered on the ground.
- ●Death screen displays with semi-transparent overlay when player dies.
- ●Added mouse aiming for weapons - aim with cursor and click to shoot.
- ●Players can now aim in any direction independent of movement direction.
- ●Improved weapon firing mechanics with precise angle-based targeting.
🔧 Refactoring
- ●Removed player revival system - players can no longer revive each other.
v0.7.1
2025-11-08✨ Features
- ●Players no longer emit light unless they have a torch equipped.
- ●Torches must now be actively selected to provide illumination.
- ●Enhanced strategic gameplay - players must choose between weapons and visibility.
- ●Minimap fog of war now respects player lighting (only reveals areas when torch is equipped).
⚡ Performance
- ●Improved lighting system performance by filtering out entities with no light radius.
v0.7.0
2025-11-08✨ Features
- ●Replaced day/night cycle with wave-based gameplay system.
- ●Game now features timed waves with preparation periods between zombie attacks.
- ●Added wave timer HUD display showing current wave number and time until next wave.
- ●Implemented idle zombie behavior - zombies now wander around when not chasing players.
- ●Zombies exhibit more dynamic movement patterns during waves.
- ●Added map darkness overlay for enhanced atmosphere and visibility challenge.
- ●Darkness effect creates more tension during zombie waves.
🔧 Refactoring
- ●Refactored map rendering system for improved performance and maintainability.
⚡ Performance
- ●Optimized chunk rendering and camera viewport calculations.
v0.6.0
2025-11-07✨ Features
- ●Add car defense mechanic - players must protect the car to survive
- ●Implement mouse cursor aiming for weapons (replaces 4-directional shooting)
- ●Add angle-based knife attack direction using mouse position
- ●Create car health panel UI at top of screen
- ●Add crate indicators with arrows pointing to nearby supply crates
- ●Implement death screen panel with respawn prompt
- ●Add game messages system for important announcements (yellow/red colored)
- ●Create mute button panel for audio control
- ●Update knife swipe animation to face mouse attack direction
- ●Add welcome message on game start about defending the car
- ●Add new car sprite to collidables sheet
- ●Added Sentry Gun craftable item that automatically targets and shoots zombies.
- ●Sentry guns can be placed using the interactive placement system.
- ●Sentry guns have 360-degree detection radius and automatically engage zombies within range.
- ●Added campfire sprite and decal system for enhanced visual detail.
- ●Decals can now be placed in the map editor for decorative elements.
- ●New DecalsPanel in the map editor allows browsing and placing decal sprites.
- ●Campfire decal added to campsite biomes for improved atmosphere.
🐛 Bug Fixes
- ●Fix chat input blocking - prevent movement/actions while typing
- ●Fix input handling when entering chat mode
🔧 Refactoring
- ●Refactor UI into modular panel components (CarHealthPanel, DeathScreenPanel, GameMessagesPanel, MuteButtonPanel, CrateIndicatorsPanel)
- ●Store attack direction in player attack events
- ●Update camera to follow player center position for accurate aiming
- ●Update player facing direction based on mouse position
v0.5.0
2025-11-07✨ Features
- ●Added interactive wall placement system with mouse targeting.
- ●Walls can now be placed by selecting them from inventory and clicking on the map.
- ●Ghost template preview shows valid (green) and invalid (red) placement locations.
- ●Walls snap to 16x16 pixel grid for clean alignment.
- ●Placement range limited to 100 pixels from player with visual range indicator.
- ●Server validates all placements to prevent cheating and ensure fair gameplay.
- ●Placement blocked on occupied tiles, near entities, or outside map bounds.
v0.4.2
2025-11-07✨ Features
- ●Direction changes now feel more accurate with less visible drift accumulation.
🔧 Refactoring
- ●Simplified reconciliation system by removing adaptive lerp in favor of fixed correction speeds.
⚡ Performance
- ●Improved client-side prediction to reduce player drift during movement.
- ●Added continuous gentle correction that pulls player towards server position while moving.
v0.4.1
2025-11-07✨ Features
- ●Refactored instructions menu to remove dark background overlay.
- ●Instructions menu now toggles when clicking the settings button.
- ●Added click-outside-to-close functionality for instructions menu.
v0.4.0
2025-11-07✨ Features
- ●Add an exploding zombie
- ●A user can search a dead zombie body for items (randomly drop items)
🐛 Bug Fixes
- ●Fixed game inputs triggering while typing in UI input fields (spawn panel, config panel, etc.).
- ●A player shouldn't be colliding with a dead zombie
- ●Fix bullet from coming out of players head
- ●A bullet was not blowing up the gas can (because I forgot to add the groupable extension to the gas can)
- ●A zombie should be lootable, but the label isn't showing
🔧 Refactoring
- ●Refactor the zombie constructor
v0.3.0
2024-12-19✨ Features
- ●Add sound for shotgun
- ●Add sound for player hurt
- ●Add sound for zombie hurt
- ●Add sound for item pickup
- ●Add sound for item drop
- ●Add sound for player death
- ●Add a way to toggle the instructions on and off
- ●When a player is killed, notify all players in the game a player has died
v0.2.0
2024-12-01✨ Features
- ●A user can drop items from their inventory
- ●A user shall be able to harvest trees
- ●️ Create an entry point function for the client code which creates a canvas, connects to a server, and starts the game loop
- ●A user shall be able to move their player around with w,s,a,d
- ●A user shall be able to move in a diagonal direction
- ●A user shall be able to attack using space
- ●A user shall be able to see a health bar which shows how much health they have
- ●️ Create an next.js application which will use the client code to render the game
- ●A user can move up, down, left, and right
- ●️ Create initial server logic for the game
- ●A user should be able to pick up previously placed walls
- ●A zombie can attack a player
- ●Add in collidable entities (barrels, boxes, etc.)
- ●A user can hold one weapon at a time
- ●Add a day cycle which let's players explore, build, gather
- ●Add a basic night cycle which spawns zombies
- ●A user can pick up wood and place into inventory
- ●A user can build a barricade using wood
- ●A user can fire in the direction they are facing
- ●A zombie can attack walls (walls have hp)
- ●A player should drop all items when they die and scatter them around their body
- ●The player should have a running animation (keep it simple), 2 frames with legs going up and down
- ●The crafting recipe should be red or grayed out if you don't have enough items to craft it
- ●Zombie should use walk animation as well
🐛 Bug Fixes
- ●Picking up a damaged walled shouldn't restore it's health back to full when replacing
- ●When picking up items, it should pick up the CLOSEST item first
- ●The health bars need to be attached to the player group so that when they interpolate they don't lag behind
- ●A player shouldn't be able to move when crafting
- ●Fix the size of the wrench icon
- ●Figure out why the wrench icon becomes small when near a tree
- ●Close the crafting menu after making an item
- ●A player shouldn't be able to open the craft menu when dead; also close it if they die while crafting
- ●Every player faces the same direction as YOUR player which is a bug (FIXED)
- ●Pressing space while crafting an item you don't have enough resources to craft should not auto close the crafting menu
- ●When a player is killed by a zombie, it seems like the zombie gets stuck either on the player, or thinks it still needs to attack the player
- ●A player is able to shoot themself, this is bad (FIXED)