Skip to content

A solo continuation of the nostalgic StarCraft-inspired resource gathering simulator, built with C for some old-school fun.

Notifications You must be signed in to change notification settings

Broosky/Gatherers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💡 Gatherers

A continuation of the Gatherers-Legacy StarCraft-style simulation.
Active development continues here when time allows — see the legacy repo for early progress and design context.


🔹 Ideas & Upcoming Changes

  • Optimize pathfinding...
    • Selectable pathfinding mode: raycast (original), bisection...
    • Memoize pathfinding points, or compute full path + memoize.
    • For main pathfinding points, curve the transitions such that the movement is not jagged.
  • Move entity resource diagnostic rendering out of entity rendering logic.
  • Draw scaled down versions of entities in the minimap instead of coloured blocks.
  • Selectable renderer: Direct3D.
  • Engine:
    • Homebrew renderer (DIBSECTION)...
    • Pre-processing...
    • Post-processing...
    • Networking...
    • Sound...
    • 3D spectator mode...
  • Crossplatform support: Refactor IO, clock, etc...
  • Mouse wheel zoom in or out.
  • Replace classic char buffer copying with modern safer alternatives.
  • Double check and update const parameters.
  • Use stack allocations instead of repetitive pointer dereferences for tight loops.
  • Single vs multiple instances.
  • Doxygen documentation.
  • Don't allow workers to move inside an entity.
  • Check include paths for Linux toolchain.
  • Unit movement acceleration/deceleration.
  • Framerate independent unit movement.
  • Tiled backdrop for very large maps.
  • Fixed point arithmetic?
  • New assets...

🔹 May 2025 Updates

  • Rough-in pathfinding optimizations.
  • Rough-in renderer dirty zones.
  • Memory pools for critical allocation paths (pathfinding).
  • Refactor existing mallocs to use memory pools where applicable.
  • Change constant #defines to types.
  • Migrate volatile settings to file + hot reload.
  • Restructure DOUBLE_BUFFER_T to RENDERER_T and allow it to operate on a renderer implementation strategy.
  • Selectable renderer: wireframe, GDI single/double buffer, SDL, Direct2D.
  • Modified the resource bar for large numbers: 999,999,999.
  • Crop blit selective background on redraw.
  • Improve log flow with trace, warning, and others + common writing functions.
  • Maintenance timebase + daily bookending of log file.
  • Linked list traversal helpers.
  • Rough in some engine pre/post-processing.
  • Experiment with frame buffer channel masking and blurs using SSE SIMD vectorization.
  • Restructured menu items.
  • Split large functions into smaller ones.
  • Other architectural and miscellaneous changes + toolchain updates.

🔹 April 2025 Updates

  • Updated pointer dereference style.
  • Arrow keys now adjust view translation.
  • Added uptime tracking.
  • Combined engine logic into Win32 message loop.
  • Cropped images for DC blit ops.
  • Added build mode, date & time stamping.
  • Toolchain updates.
  • Began benchmarking capture system.
  • Introduced a logging system.
  • Added Visual Studio 2022 solution/project setup and formatting rules.
  • Configured debug/release flags for MSVC.
  • Menu structure refinements.
  • Reviewed local function types.
  • Images -> Assets (renamed + consolidated GDI brushes/pens).
  • #include dependency graph organization.
  • All functions to reference passed pointers & variables instead of global declarations/externs (where applicable).
  • Fail fast on bad mallocs.
  • Bump map size.
  • Borderless windowed mode (escape toggleable) + other chord QoL keys.
  • Consolidate MoveTo/LineTo's.
  • Replace I/FPOINT structs with I/FDELTA structs where applicable.
  • When building, if the entity extends past the client area, disallow it.
  • Right-click -> build none.
  • Comma print large positive numbers.
  • Clean up sorting.
  • Render + slight pathfinding optimizations.

🔹 March 2025 Updates

  • Output current working directory.
  • Prefixed diagnostics for clarity.
  • New diagnostics: selected entities, selection box dimensions, selected workers.
  • Improved double-buffer canvas stability on resize.
  • Tweaked initial conditions for quicker building.
  • Renamed and rearranged menu items.
  • Added a diagnostics toggle-all option.
  • Diagnostic colour updates.
  • Assigned IDs to entities.
  • Minimap:
    • Displays selection area.
    • Allows left-click translation of main view.
    • Highlights selected entities.
  • Worker AI:
    • Scatters to nearest resources when multiple are selected.
  • File structure reorganization.
  • Added project files for:
    • Code::Blocks
    • Dev-C++
  • Updated Windows/Linux toolchain support.
  • Reviewed and updated typedefs, code, and comments.
  • General code review and distance calculations.
  • Note: Dev-C++ generates _private.h/.rc files by default — aligned these with main.rc where applicable.

About

A solo continuation of the nostalgic StarCraft-inspired resource gathering simulator, built with C for some old-school fun.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages