Hello everyone!
I've been working on a project for the S&box Tech Jam (first time for me) that I’m excited to share with you: EQS for S&box (Environment Query System). Inspired by Unreal Engine’s EQS, this system allows developers to create dynamic AI behaviors and environment queries within the Source 2 engine.
What is EQS ?
EQS, short for Environment Query System, is a system designed to evaluate a set of points in the game world and score them based on various customizable tests. These tests determine the "best" point for AI or other systems to interact with, like finding a safe spot, targeting an enemy, or selecting a path to follow.
Features of My Implementation :
- Custom Tests: Includes Distance, Visibility, and even custom queries like targeting entities based on tags.
- Priority System: Tests can have assigned priorities, ensuring the most important criteria take precedence.
- Dynamic Scoring: Fully supports weighted scoring, allowing nuanced decision-making.
- Debug UI: Comes with a user interface for visualizing and testing EQS behaviors in real-time.
- Expandable: Easily extendable to integrate additional tests, including future pathfinding.
Why It Matters
With this EQS implementation, developers can:
- Build smarter AI that reacts dynamically to the environment.
- Create versatile systems that adapt based on game states.
- Save development time with reusable and scalable query logic.
Demo
The system is fully functional and already integrated with several example use cases. You can view the system in action and experiment with it using the UI provided.
Link : https://sbox.game/fys/eqssystem
What’s Next?
I’m planning to enhance the system further with:
- Pathfinding optimizations & better integration (A* algorithm).
- Advanced debug tools.
- Performance optimizations for large-scale queries.
- Interface (UI) with multitask support (Work on C#).
- Improved user interface, including block-based programming and json queries.
Feel free to try it out, share feedback, or even contribute ideas for improvement. If you’re curious or have questions, drop a comment or reach out.
(Link to github repos soon public)
Looking forward to hearing your thoughts!