environmentally conscious ai: improving spatial analysis and reasoning
Post on 25-Jun-2015
Embed Size (px)
DESCRIPTIONThis presentation was presented during GDC 2014, AI Summit. In this talk was presented a unified architecture for spatial reasoning using a database-like interface. The objective is to be able to simply query and manipulate spatial information in autonomous characters behaviors.
- 1. Environmentally Conscious AI Improving Spatial Analysis and Reasoning Clodric Mars MASA LIFE Lead email@example.com @clodericmars
2. What is Spatial Reasoning? Spatial objects POIs Areas/zones Influence map ... Relationships Distance Visibility Accessibility ... !2 3. What is the closest bone that is not too old, out of the cat likely position and that I can chew while observing the street? !3 4. How? List of points of interests Query several sources closest pathfinding not too old metadata likely position influence map observing visibility mesh, pvs Add some custom logic ! A little complex for just a dog! !4 5. Wouldnt it be cool if... Behavior designers can focus on using One stop gateway Expressive query Developers can extend and optimize ! Handle the technical complexity for the benefit of both !5 6. Inspirations Game industry Environment Tactical Querying (ETQ) [Zielinsky 2013] Tactical Position Selection (TPS) [Jack 2013] GIS PostGIS (postgis.net) !6 7. !7 8. Lets study a practical example! !8 9. Tactical behaviors in VBS2 Tactical groups... ...navigating in a hostile environment Behaviors that dont depend on the environment !9 10. !10 11. select cover query SELECT p FROM interest_points WHERE p.metadata.type == 2 AND (p.metadata.assignee == NULL OR p.metadata.assignee == $.id) AND p.geometry.x > $.position.x - 10 AND p.geometry.x < $.position.x + 10 AND p.geometry.y > $.position.y - 10 AND p.geometry.y < $.position.y + 10 ORDERED BY distance(p.geometry, $.position) LIMIT 10 collection type (2 is cover points) free or already assigned to me no farther than 10 m order by distance to me take the first 10 !12 12. Reach a zone and take cover select cover SpatialDB query Distance Protected direction Availability assign cover SpatialDB update Transactional goto cover goto zone close to zone? select cover assign cover !13 13. Technical stuffs SQLite (www.sqlite.org) Easy to integrate Public Domain Mature Fast Geospatial index (r-tree) Functions In-Memory peg/leg (piumarta.com/software/peg/) !14 14. !15 15. How? with this implementation List of points of interests (bones) ! Query several sources (navmesh, visibility, ) ! Add some custom logic !16 SQLite Tables metadata spatial index SQLite Functions Signature Callback to subsystem Metadata access/index SQLite arithmetic and custom parser 16. What worked Fast implementation of first version Data driven behaviors Familiar query language OK performances !17 "select cover" duration 0,08 ms 0,15 ms 0,23 ms 0,30 ms 0 1250 2500 3750 5000 Core i7 @ 2Ghz // 8Go of RAM Total size 3 000 kb 6 000 kb 9 000 kb 12 000 kb 0 1250 2500 3750 5000 17. What needs to be improved Easy-to-use assignment Tools inspection sandbox Performances grouping/ordering evaluators time slicing multithreading !18 18. Takeaways !19 1.Decouple (designer/developer) 2.Use existing tech (eg. SQLite) 3.Create a familiar language Meet us at booth #1743 @masalife_ai