Design Overview - rfsjim/Screeps-Nooby-Typescript-Code GitHub Wiki
Modular Code Design
Organize your code into modules for different functions (e.g., resource collection, room defense, economy building). This makes it easier to update or tweak specific areas without breaking the entire system.
Efficient Pathfinding
Implement algorithms like Dijkstra's or A (A-star)* for pathfinding. Efficient pathfinding can ensure your units move quickly and avoid obstacles while reaching their destination.
Economy Optimization
- Use priority queues or other data structures to manage resources efficiently.
- Build algorithms for dynamic resource allocation based on real-time game state (e.g., send workers to the most depleted areas).
Unit Role Specialization
Instead of general-purpose units, assign specific roles—like "harvester," "builder," "scout," or "soldier." Optimize each role's behavior and resource usage so they excel at their tasks.
Dynamic Room Control
Design a system to monitor player room states (e.g., enemy activity, resource availability) and adapt strategies dynamically. Use decision trees or state machines to adjust actions based on changing conditions.
Testing & Analytics
Write debugging tools to track unit behaviors in-game and analyze their efficiency. You could use JavaScript functions to log key metrics like resource collection rates or combat success.
Scalability
Since you're managing multiple rooms, create reusable code snippets for similar tasks. For example, write a function that handles room expansion logic that can be applied to any new room you control.