This is the last lecture in the series series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
In this lecture I rehash the fundamental differences between Game AI and the traditional AI that has been taught in previous courses. It also includes a (frankly time-filling) section called the "Brain Dump" where I briefly touch on a bunch of things I was thinking about at the time.
This talk, delivered at the Høgskolen i Bergen (Bergen College) in Norway in October 2014. It covers some recent games and deconstructs potential AI techniques that could* be used by these games to achieve this.
* Note that the author has no knowledge of the internals of these games and this is broadly educated speculation.
Game AI 101 - NPCs and Agents and Algorithms... Oh My!Luke Dicken
This is a session originally written for students at Bradley University (Peoria, IL).
It covers a very high level introduction to the concepts behind Game AI, and includes some examples of how we can begin to make characters in a game world perform actions and appear to be making intelligent decisions.
Artificial Intelligence in Computer and Video GamesLuke Dicken
This lecture was given at the April meeting of the Glasgow branch of the British Computer Society on 12th April 2010. The lecture was supposed to be given by Dr. Darryl Charles, who fell ill a couple of days before the event, and I was asked to take the lecture instead.
In the presentation I cover the basics of why AI and Games are well suited and give a brief discussion of different types of AI as I see it. I discuss briefly how AI fits into the context of the game in terms of execution.
The bulk of the talk presents case studies in the format of Commercial game -> Theoretical technique used -> Research project using this technique.
It should be noted that the section on Left4Dead was omitted from the lecture as it was presented at the time due to concerns about the length
SLIDES WITH NOTES: http://bitly.com/rej-practical-ai
This talk is an introductory material for students and programmers aspiring for developing AI for games.
Talk is split into 2 parts - first part provides an overview on popular AI approaches in games and second part gives an outlook on technology that might be relevant for games AI in the future.
I gave this talk at Vilnius University as a guest speaker in the late October 2016.
Lecture 6 - Procedural Content and Player ModelsLuke Dicken
This is the 6th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
In this lecture I link together the material presented in lectures 3 and 4 on profiling players and show how this can be used to good effect with Procedural Content Generation (lecture 5). I use Silent Hill : Shattered Memories as a specific example, and discuss research using Tomb Raider, and the standard Bartle Player Types.
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...Luke Dicken
In this talk, given at the 2012 No Show Conference, and alongside long-term partner in crime Heather Decker-Davis, we talk about our game "Easy Money?" and our approach to content generation - along with the challenges they provided and the way it affected our workflow.
The document discusses advances in automated planning techniques for game AI beyond STRIPS-style goal oriented planning. It covers topics like landmark analysis, abstraction, heuristics like relaxed plan graphs and landmark heuristics, hierarchical task networks, plan execution with replanning, and integrated planning with execution monitoring. The presentation aims to show how planning remains relevant for game AI by addressing issues like computational complexity and providing less-than-optimal but still believable behavior.
This talk, delivered at the Høgskolen i Bergen (Bergen College) in Norway in October 2014. It covers some recent games and deconstructs potential AI techniques that could* be used by these games to achieve this.
* Note that the author has no knowledge of the internals of these games and this is broadly educated speculation.
Game AI 101 - NPCs and Agents and Algorithms... Oh My!Luke Dicken
This is a session originally written for students at Bradley University (Peoria, IL).
It covers a very high level introduction to the concepts behind Game AI, and includes some examples of how we can begin to make characters in a game world perform actions and appear to be making intelligent decisions.
Artificial Intelligence in Computer and Video GamesLuke Dicken
This lecture was given at the April meeting of the Glasgow branch of the British Computer Society on 12th April 2010. The lecture was supposed to be given by Dr. Darryl Charles, who fell ill a couple of days before the event, and I was asked to take the lecture instead.
In the presentation I cover the basics of why AI and Games are well suited and give a brief discussion of different types of AI as I see it. I discuss briefly how AI fits into the context of the game in terms of execution.
The bulk of the talk presents case studies in the format of Commercial game -> Theoretical technique used -> Research project using this technique.
It should be noted that the section on Left4Dead was omitted from the lecture as it was presented at the time due to concerns about the length
SLIDES WITH NOTES: http://bitly.com/rej-practical-ai
This talk is an introductory material for students and programmers aspiring for developing AI for games.
Talk is split into 2 parts - first part provides an overview on popular AI approaches in games and second part gives an outlook on technology that might be relevant for games AI in the future.
I gave this talk at Vilnius University as a guest speaker in the late October 2016.
Lecture 6 - Procedural Content and Player ModelsLuke Dicken
This is the 6th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
In this lecture I link together the material presented in lectures 3 and 4 on profiling players and show how this can be used to good effect with Procedural Content Generation (lecture 5). I use Silent Hill : Shattered Memories as a specific example, and discuss research using Tomb Raider, and the standard Bartle Player Types.
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...Luke Dicken
In this talk, given at the 2012 No Show Conference, and alongside long-term partner in crime Heather Decker-Davis, we talk about our game "Easy Money?" and our approach to content generation - along with the challenges they provided and the way it affected our workflow.
The document discusses advances in automated planning techniques for game AI beyond STRIPS-style goal oriented planning. It covers topics like landmark analysis, abstraction, heuristics like relaxed plan graphs and landmark heuristics, hierarchical task networks, plan execution with replanning, and integrated planning with execution monitoring. The presentation aims to show how planning remains relevant for game AI by addressing issues like computational complexity and providing less-than-optimal but still believable behavior.
This is the 5th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
In this lecture I outline some approaches that use AI techniques to automate the creation of content within game world. I make specific reference to assets such as rocks and plants, to interaction mechanisms such as weapons and to quest generating systems, in particular Skyrim's Radiant engine.
The document discusses the various roles involved in game development. It notes that while developers are important, game development requires a team with different specialized roles including designers, artists, producers, testers, and others to support the business operations. It emphasizes that most game development work is done by teams rather than individuals, and that many developers take on multiple roles over the course of their careers.
This is the 7th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture covers ways that we can use AI to manage the experience that the player receives. Topics include Immersive Worlds, Player/Game Interactions, Interactive Fiction and "AI Directors" such as that found in Left4Dead
Knowing When to Hold 'Em, When to Fold 'Em and When to Blow 'Em UpLuke Dicken
Guest presentation given to a mixed-discipline group at the University of West of Scotland Research Students Society @ UWoS 3rd March 2010.
Topics covered : High level overview of work with AI for Poker, Ms. Pac-Man and my own research on the I2 system, concluding with some of my opinions on the current state of Academic and Industrial Game AI.
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
The document provides an introduction to game design, covering topics such as what constitutes a video game, the people involved in game development, frameworks for game design like MDA and the elemental tetrad, the importance of playtesting and tutorials, and game design techniques. It discusses video games as involving interaction between players and software to achieve objectives within a rule-based system. Key aspects of game design addressed are mechanics, dynamics, and aesthetics.
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3Joel Burgess
GDC 2014 Level Design Workshop Session - A breakdown of the multiple stages of level design iteration used at Bethesda Game Studios on Fallout 3 and Skyrim.
weekly AI tech talk #85 ml-agents Enabling Learned Behaviors with Reinforceme...Bill Liu
https://learn.xnextcon.com/event/eventdetails/W19061910
Behaviors in games---and in the real world---are often difficult to program explicitly. Reinforcement learning (RL) has shown success in learning behaviors based on a simple defined reward function that incentivises correct behavior.
Unity ML-Agents toolkit enables Unity developers to train reinforcement learning models to control behaviors within their games. Once these models are trained, they can be integrated across platforms into a game build via the Unity Inference Engine.
Furthermore, by enabling communication between a Unity build and Python code, ML-Agents enables RL researchers to use Unity games as training environments.
Showcase of My Research on Games & AI "till the end of Oct. 2014"Mohammad Shaker
A presentation showcasing my research on Games and Artificial Intelligence (till the end of Oct. 2014) at IT University of Copenhagen, Copenhagen, Denmark.
Modelling Human Expert Behaviour in an Unreal Tournament 2004 BotAntonio Mora
This paper presents a deep description of the design of an autonomous agent (bot) for playing 1 vs. 1 dead match mode in the first person shooter
Unreal Tournament 2004 (UT2K4).
The bot models most of the behaviour (actions and tricks) of an expert human player in this mode, who has participated in international UT2K4 championships.
The Artificial Intelligence engine is based on two levels of states, and it relies on an auxiliary database for learning about the fighting arena. Thus, it will store weapons and items locations once the player has discovered them, as a human player could do.
This so-called expert bot yields excellent results, beating the game default bots in the hardest difficulty, and even being a very hard opponent for the human players (including the expert).
It has been presented at SEED 2013 (I Simposio de Entretenimiento Digital) in CEDI2013.
Level Design Workshop - GDC China 2012Joel Burgess
Originally presented at GDC China 2012, this workshop covered level design fundamentals such as layout, pacing and storytelling. It was presented by Joel Burgess (Bethesda Game Studios), Matthew Scott (Valve Software), and Steven Gaynor (The Fullbright Company)
Ian Dundore discusses five clichés of online game development that often prove true. The first is that the client is in the hands of the enemy, so input from players must be validated and anything sent to clients could be seen. Second, premature optimization should be avoided as proper order is fun, good, then fast. Third, there are known and unknown unknowns, so plan for injected work. Fourth, any tool can be misused so log creations carefully. Finally, the presentation title should come after the content is made.
The document discusses common patterns for developing games in Unity. It recommends using core application logic like a main controller to manage scenes and states like loading, unloading, and running. The main controller can use object pooling and state machines. Other patterns discussed include singleton controllers and pool-based objects. Pool-based objects preload a set number and are spawned from the pool by finding disabled objects to reuse. The document provides examples of implementing these patterns to help structure Unity games efficiently and robustly.
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammellogdc
This document discusses common patterns for developing games in Unity. It recommends using core application logic like a main controller to manage scene loading and unloading. The main controller would use different states like load, unload, and run. It also recommends implementing object pooling for things like explosions and enemies by preloading a set number and disabling unused objects. Singleton and pool-based controllers are common for managing objects and communication between them. The document provides examples of implementing a scene state machine and object pooling in Unity.
Game engines provide an abstraction layer that allows games to run across multiple platforms. A cross-platform game engine handles the complex and platform-specific implementation details, so that game developers can focus on gameplay instead of low-level code. DeadEngine is an example of a cross-platform engine that supports PC, iOS and Android using C++ and common interfaces. While engines like Unity make it easy to deploy games across many platforms, native implementations tend to be smaller and faster than games built with an engine. Therefore, developing a cross-platform engine requires implementing features separately for each platform.
This document discusses performance considerations for functional programming and reactive applications. It notes that while functional programming has benefits, the JVM is optimized for imperative programming so functional abstractions can carry performance penalties. It recommends focusing on reducing allocations, bytecode execution, and regaining runtime control. The document also provides tips on tools and techniques for performance analysis and optimization like avoiding parallel collections, pinning to cores, and judicious use of memory barriers and JVM flags.
Scratching the itch, making Scratch for the Raspberry PieESUG
Title: Scratching the itch, making Scratch for the Raspberry Pie
Speaker: Tim Rowledge
Fri, August 22, 12:00pm – 12:30pm
Abstract: Scratch was originally written in a Squeak 2.8 era image. Much has changed since then and to make the Raspberry Pi run Scratch as well as possible we have ported the code forward to a 4.5 image so it can run on a StackVM; and soon a Cog VM. A substantial amount of Smalltalk code has had to be rewritten to do this and yet we have to maintain complete compatibility with the original system to avoid overloading the teachers that use it in their classes. A new branch of Cog for the ARM cpu is being written as well.
Bio: Tim Rowledge has almost 30 years of Smalltalk experience, and almost as much with ARM. Somehow the two have always gone together.
Sperasoft is a game development company specializing in console development. This document provides tips for console development including considerations for different hardware platforms, using development kits to debug platform-specific issues, optimizing for limited memory and performance, following development processes, and addressing technical requirements checklists.
Steelcon 2014 - Process Injection with Pythoninfodox
This is the slides to accompany the talk given by Darren Martyn at the Steelcon security conference in July 2014 about process injection using python.
Covers using Python to manipulate processes by injecting code on x86, x86_64, and ARMv7l platforms, and writing a stager that automatically detects what platform it is running on and intelligently decides which shellcode to inject, and via which method.
The Proof of Concept code is available at https://github.com/infodox/steelcon-python-injection
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsJonas Bonér
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
Intended Audience:
Programmers, architects, CIO/CTOs and everyone with a desire to challenge the status quo and expand their horizons on how to tackle the current and future challenges in the computing industry.
This is the 5th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
In this lecture I outline some approaches that use AI techniques to automate the creation of content within game world. I make specific reference to assets such as rocks and plants, to interaction mechanisms such as weapons and to quest generating systems, in particular Skyrim's Radiant engine.
The document discusses the various roles involved in game development. It notes that while developers are important, game development requires a team with different specialized roles including designers, artists, producers, testers, and others to support the business operations. It emphasizes that most game development work is done by teams rather than individuals, and that many developers take on multiple roles over the course of their careers.
This is the 7th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture covers ways that we can use AI to manage the experience that the player receives. Topics include Immersive Worlds, Player/Game Interactions, Interactive Fiction and "AI Directors" such as that found in Left4Dead
Knowing When to Hold 'Em, When to Fold 'Em and When to Blow 'Em UpLuke Dicken
Guest presentation given to a mixed-discipline group at the University of West of Scotland Research Students Society @ UWoS 3rd March 2010.
Topics covered : High level overview of work with AI for Poker, Ms. Pac-Man and my own research on the I2 system, concluding with some of my opinions on the current state of Academic and Industrial Game AI.
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
The document provides an introduction to game design, covering topics such as what constitutes a video game, the people involved in game development, frameworks for game design like MDA and the elemental tetrad, the importance of playtesting and tutorials, and game design techniques. It discusses video games as involving interaction between players and software to achieve objectives within a rule-based system. Key aspects of game design addressed are mechanics, dynamics, and aesthetics.
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3Joel Burgess
GDC 2014 Level Design Workshop Session - A breakdown of the multiple stages of level design iteration used at Bethesda Game Studios on Fallout 3 and Skyrim.
weekly AI tech talk #85 ml-agents Enabling Learned Behaviors with Reinforceme...Bill Liu
https://learn.xnextcon.com/event/eventdetails/W19061910
Behaviors in games---and in the real world---are often difficult to program explicitly. Reinforcement learning (RL) has shown success in learning behaviors based on a simple defined reward function that incentivises correct behavior.
Unity ML-Agents toolkit enables Unity developers to train reinforcement learning models to control behaviors within their games. Once these models are trained, they can be integrated across platforms into a game build via the Unity Inference Engine.
Furthermore, by enabling communication between a Unity build and Python code, ML-Agents enables RL researchers to use Unity games as training environments.
Showcase of My Research on Games & AI "till the end of Oct. 2014"Mohammad Shaker
A presentation showcasing my research on Games and Artificial Intelligence (till the end of Oct. 2014) at IT University of Copenhagen, Copenhagen, Denmark.
Modelling Human Expert Behaviour in an Unreal Tournament 2004 BotAntonio Mora
This paper presents a deep description of the design of an autonomous agent (bot) for playing 1 vs. 1 dead match mode in the first person shooter
Unreal Tournament 2004 (UT2K4).
The bot models most of the behaviour (actions and tricks) of an expert human player in this mode, who has participated in international UT2K4 championships.
The Artificial Intelligence engine is based on two levels of states, and it relies on an auxiliary database for learning about the fighting arena. Thus, it will store weapons and items locations once the player has discovered them, as a human player could do.
This so-called expert bot yields excellent results, beating the game default bots in the hardest difficulty, and even being a very hard opponent for the human players (including the expert).
It has been presented at SEED 2013 (I Simposio de Entretenimiento Digital) in CEDI2013.
Level Design Workshop - GDC China 2012Joel Burgess
Originally presented at GDC China 2012, this workshop covered level design fundamentals such as layout, pacing and storytelling. It was presented by Joel Burgess (Bethesda Game Studios), Matthew Scott (Valve Software), and Steven Gaynor (The Fullbright Company)
Ian Dundore discusses five clichés of online game development that often prove true. The first is that the client is in the hands of the enemy, so input from players must be validated and anything sent to clients could be seen. Second, premature optimization should be avoided as proper order is fun, good, then fast. Third, there are known and unknown unknowns, so plan for injected work. Fourth, any tool can be misused so log creations carefully. Finally, the presentation title should come after the content is made.
The document discusses common patterns for developing games in Unity. It recommends using core application logic like a main controller to manage scenes and states like loading, unloading, and running. The main controller can use object pooling and state machines. Other patterns discussed include singleton controllers and pool-based objects. Pool-based objects preload a set number and are spawned from the pool by finding disabled objects to reuse. The document provides examples of implementing these patterns to help structure Unity games efficiently and robustly.
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammellogdc
This document discusses common patterns for developing games in Unity. It recommends using core application logic like a main controller to manage scene loading and unloading. The main controller would use different states like load, unload, and run. It also recommends implementing object pooling for things like explosions and enemies by preloading a set number and disabling unused objects. Singleton and pool-based controllers are common for managing objects and communication between them. The document provides examples of implementing a scene state machine and object pooling in Unity.
Game engines provide an abstraction layer that allows games to run across multiple platforms. A cross-platform game engine handles the complex and platform-specific implementation details, so that game developers can focus on gameplay instead of low-level code. DeadEngine is an example of a cross-platform engine that supports PC, iOS and Android using C++ and common interfaces. While engines like Unity make it easy to deploy games across many platforms, native implementations tend to be smaller and faster than games built with an engine. Therefore, developing a cross-platform engine requires implementing features separately for each platform.
This document discusses performance considerations for functional programming and reactive applications. It notes that while functional programming has benefits, the JVM is optimized for imperative programming so functional abstractions can carry performance penalties. It recommends focusing on reducing allocations, bytecode execution, and regaining runtime control. The document also provides tips on tools and techniques for performance analysis and optimization like avoiding parallel collections, pinning to cores, and judicious use of memory barriers and JVM flags.
Scratching the itch, making Scratch for the Raspberry PieESUG
Title: Scratching the itch, making Scratch for the Raspberry Pie
Speaker: Tim Rowledge
Fri, August 22, 12:00pm – 12:30pm
Abstract: Scratch was originally written in a Squeak 2.8 era image. Much has changed since then and to make the Raspberry Pi run Scratch as well as possible we have ported the code forward to a 4.5 image so it can run on a StackVM; and soon a Cog VM. A substantial amount of Smalltalk code has had to be rewritten to do this and yet we have to maintain complete compatibility with the original system to avoid overloading the teachers that use it in their classes. A new branch of Cog for the ARM cpu is being written as well.
Bio: Tim Rowledge has almost 30 years of Smalltalk experience, and almost as much with ARM. Somehow the two have always gone together.
Sperasoft is a game development company specializing in console development. This document provides tips for console development including considerations for different hardware platforms, using development kits to debug platform-specific issues, optimizing for limited memory and performance, following development processes, and addressing technical requirements checklists.
Steelcon 2014 - Process Injection with Pythoninfodox
This is the slides to accompany the talk given by Darren Martyn at the Steelcon security conference in July 2014 about process injection using python.
Covers using Python to manipulate processes by injecting code on x86, x86_64, and ARMv7l platforms, and writing a stager that automatically detects what platform it is running on and intelligently decides which shellcode to inject, and via which method.
The Proof of Concept code is available at https://github.com/infodox/steelcon-python-injection
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsJonas Bonér
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
Intended Audience:
Programmers, architects, CIO/CTOs and everyone with a desire to challenge the status quo and expand their horizons on how to tackle the current and future challenges in the computing industry.
Owning windows 8 with human interface devicesNikhil Mittal
This document discusses using human interface devices like the Teensy microcontroller in penetration tests against Windows 8 systems. It introduces the Kautilya toolkit for programming Teensy payloads and demonstrates attacks against Windows 8 by connecting the Teensy and executing payloads with the privileges of the logged-in user. Limitations of this technique include storage limits on Teensy and an inability to read responses or clear itself after running. Defenses include disabling removable devices or locking USB ports.
Antifragility and testing for distributed systems failureDiUS
Failure is inevitable. In our modern world filled with continuously delivered and increasingly complex distributed architectures (looking at you micro-services), it is important to be able to test and improve our systems under a range of failure conditions.
In this talk, Matt discusses these complexities and the forces they exert on development teams, presenting some simple strategies and practical advice to deal with them.
Executing for Every Screen: Build, launch and sustain products for your custo...Steven Hoober
The document discusses principles and best practices for designing products and interfaces that work across multiple screens and platforms. It emphasizes starting with principles, designing for user needs rather than specific platforms, building shared features and services first before customizing interfaces, and continuously evolving products based on data and user feedback.
Hadoop Operations: Keeping the Elephant Running SmoothlyMichael Arnold
Pune Hadoop Admins Meetup
From its beginnings years ago at large Internet sites, Hadoop is spreading everywhere. There are multitudes of cool and interesting things that Hadoop allows your organization to do, but running the actual infrastructure may not be as sexy as the application(s) running on top. Operations can be pure grunt-work, exacerbated by the fact that there is usually one machine out of dozens (or more) that is throwing a wrench in the works. In this talk, I will cover my experiences of running Hadoop, provide some recommended practices to simplify your days and nights in the trenches, and highlight some of the lessons learned along the way.
This document provides an overview of garbage collection including:
- Key memory concepts like physical memory, virtual memory, and address space
- Common GC algorithms like reference counting, mark and sweep, and copying collectors
- Advantages of automatic memory management but also performance impacts
- .NET GC implementation with managed heap and how objects are traced and collected
- Best practices like implementing dispose pattern and avoiding calling GC.Collect
1. Scaling up a system by reducing complexity and eliminating unnecessary work is often cheaper than scaling out by adding more servers and hardware. Approaching problems with a scaling up mindset from the start can avoid dead-end solutions.
2. Key steps to scaling up include picking tools that encourage good design, eliminating work by making systems do less, and eliminating synchronization between components to reduce overhead. This allows bulk operations and pipelining of work.
3. Using immutable and idempotent data structures where each operation acts on a message and nodes process messages independently without help from others can help scaling up systems.
What's with all the zombies in games right now? In this session, I talk about some of the reasons that Zombies are a lazy AI Engineers dream come true and what we could be doing instead
Around three years ago I took my first steps into the games industry. Now I'm reasonably well known, recognised as an expert in my area and get to present at conferences around the world. The things that have helped me achieve that though aren't all that hard, and in this talk I discuss some of the tools I've used to become who I am, as well as talking a lot about my own insecurities and those that many other developers were able to share with me.
This session was the first in a series given to a group of University students of differing year groups and abilities. In this lecture, I try to highlight some of the many different aspects that need to be decided when thinking about how to make a game, and demonstrate that simply picking a genre is insufficient.
This is the 3rd of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture moves beyond the Game Theoretic definition of a game, and demonstrates how algorithms can be used not only to find a single good choice, but a sequence of choices that will eventually reach a winning state.
This is the 2nd of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture covers the fundamentals of probability theory, and is relatively basic to ensure that all students have a good grasp on the concept.
This is the first of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture introduces the concept of a game, and the branch of mathematics known as Game Theory.
This is the 4th of an 8 lecture series that I presented at University of Strathclyde in 2011/2012 as part of the final year AI course.
This lecture shows how we can use mathematical analysis to classify players into stereotypes and leverage this classification into generating more successful decisions.
(Some content appears to be missing from the end of this one - I'll fix this as soon as I can)
Influence Landscapes - From Spatial to Conceptual RepresentationsLuke Dicken
These slides are from a presentation of a paper from AISB 2011. They lay out the concept of the Influence Landscape, a technique which uses Automated Planning tools to apply Influence Map-style representations to conceptual as well as spatial representations
The Strathclyde Poker Research EnvironmentLuke Dicken
This presentation was given at AISB 2011 and introduces the Strathclyde Poker Research Environment (SPREE) an open tool for Poker research. Available from Sourceforge @ https://sourceforge.net/projects/spree-poker/
The Ludic Fallacy Applied to Automated PlanningLuke Dicken
This is a short talk I gave to the Strathclyde Planning Group on deficiencies I can see in the way we thing and reason about planning in non-deterministic environments. PPDDL - the accepted standard - is overly simplistic and can get us into hot water because we focus on solving the PPDDL problem, rather than the Real World problem it models.
The breakout session that followed was very useful for generating a lot of ideas about different threads we could use to attack the weaknesses of PPDDL and work being done around the edges, which I hope to summarise at some point.
Integrated Influence - The Six Million Dollar Man of AILuke Dicken
This presentation introduces the fundamentals of contemporary AI research and highlights a significant challenge that we have still not addressed - namely that we have to trade quality of decision making against speed of decision making.
It goes on to discuss the concepts behind the "Integrated Influence Architecture", a new approach to making high-speed and high-quality decisions currently under development at University of Strathclyde.
The document discusses an approach called the Integrated Influence Architecture for planning agent execution in dynamic environments. It generates "influence landscapes" from multiple data sources to allow agents to react deliberatively or deliberate reactively based on a continuous range of stimuli. Key components include stacks that produce landscapes from domain structure, environmental data, and plan data. The unified landscape guides agent decisions while allowing loose conformity to plans for flexibility.
A brief overview of the emerging AI field of "General Games". This presentation was originally given as part of the Researchers' Digest series at University of Strathclyde on 14th Dec 2009.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
2. What is Game AI?
• Game AI is not about :
‣ Beating the player
‣ Optimality
‣ “making the bad guys shoot”
2
3. What is Game AI
• Game AI is about :
‣ Delivering great experiences to players
‣ Building immersive environments
‣ Automating the functions of a human “Dungeon Master”
3
5. Batman - Arkham Asylum
• A classic example of the game AI challenge
• We could coordinate the thugs, use small unit
tactics etc.
• Make use of existing AI techniques to make
intelligent, successful thugs.
• Is this the point?
5
7. Batman - Arkham Asylum
• The overall aim is to make a Batman “simulator”.
• Make the player feel like they ARE Batman.
• Recall “Losing with Style”
‣ Epic brawls
‣ Batman can generally win if he’s smart
• Player is entertained and immersed in the world of
Batman.
7
8. The “Odd Sock Drawer”
Stuff That Didn’t Fit In
Anywhere Else
AKA “The Brain Dump”
9. Emergence
• Emergence is the term for “interesting” things
coming from seemingly simple rules.
• Recall L-Systems from last week
‣ Basic rules : draw, turn left, turn right
‣ Complicated patterns emerged from the interaction of
these rules
9
10. Reynolds Steering
• Three simple rules for steering
‣ Separation - avoid crowding local units
‣ Alignment - steer towards the avg heading of local units
‣ Cohesion - steer towards the avg position of local units
• From these three rules we can simulate “flock”
behaviour
10
12. Cellular Automata
• A CA is a grid representation
• Individual cells are “off” or “on”
‣ Actually can take a range of values, but usually binary.
• Iterative process to determine at a given step a cell’s
state
• Most famous ruleset is Conway’s Game of Life
12
13. Conway’s Game of Life
• Under-population : Any live cell with fewer than
two live neighbours dies
• Overcrowding : Any live cell with more than three
live neighbours dies
• Reproduction : Any dead cell with exactly three live
neighbours becomes a live cell
• Live cells with two or three live neighbours lives
13
16. CA and the Universe
• There are some people who believe that CA
emergence reflects the nature of our universe.
• The universe is claimed to be a Turing Machine.
• Through the property of Turing Completeness any
Turing Machine can replicate behaviour of another.
• CAs are a Turing Machine.
‣ Some researchers claim to be discovering laws of our
universe by analysis of CA systems
16
17. CAs for Games
• CAs are of interest in the context of Game AI
• Can be used to generate “particles”
‣ Think confetti
• Particle systems are used for all sorts in graphics
‣ Smoke, vapour, dust, leaves, sparkles, explosions, flames
• Rather than defining a complex particle system
• Use a lightweight CA definition and a start state
17
18. Emergence
• Emergence allows us to define complex systems
simply.
• Diverse behaviour can be exhibited
‣ Novel, unexpected behaviour
• Loss of directorial control when AI becomes
unpredictable.
18
19. Traditional vs Game AI
• Something I hear on a fairly regular basis is how bad
AI in games is.
• “It’s not intelligent”
• “You could do this with <insert algorithm>”
• We’ve talked at length about the different
motivations of Traditional AI and Game AI
19
20. Processing Time
• One of the big things that is different between is the
amount of CPU power available.
• When we talk about traditional AI systems, that’s
typically all that the computer is doing.
• Our AI systems need horsepower.
• Games need horsepower too.
‣ Graphics, physics, networking.
‣ 1ms of CPU time per frame - <10% of time given to AI
20
21. Memory Usage
• Memory is another big factor.
• Consider the kind of search trees we’ve been
talking about.
‣ Combinatorial explosion
‣ Tracking massive amounts of states
• Memory required for non-trivial planning quickly
hits multiple gigabytes.
‣ For one planning problem
21
22. Debugging AI Systems
• Lots of our AI systems are randomised
• How can we accurately test behaviour if it relies on
random chance?
• We talked previously in Poker context about how
to overcome randomness
‣ Many repetitions to minimise variance
‣ Find a way to rig the randomness
22
23. Pseudo-Random Behaviour
• We know that computers cannot generate truly
random numbers.
• What they actually use are complicated functions
using a “seed” number to initialise them.
• We can generate the same number sequence iff
‣ We know the function
‣ We know the seed
23
24. Car Key
• At a very basic level, this is how many cryptography
techniques work.
• Consider a remote car key
• Lots of keys share the same frequency
‣ Need to distinguish our key/car pair
• Thieves could intercept the unlock command if it
was broadcast in the clear.
‣ Replay Attack
24
25. Rolling Code
• Get around this using a pair of pseudo-random
number generators between lock and key.
‣ Synchronised by having the same seed number
• Both lock and key know what the next number in
the sequence is.
• If a thief intercepts it, that code is now “old”
‣ Need to be able to predict what the next number is
‣ Lots of extra stuff to make this difficult/impossible
25
26. Debugging AI Systems
• We can use the same basic principles to ensure that
when we debug an AI system, we are observing the
same decisions.
• Crash reports always report seed number used.
• We can replicate the random number sequence that
was generated before the crash
‣ Replicate the behaviour that caused the crash
26
27. A Note on Footprints
• Activating debug code and changing your program
can alter it’s footprint when compiled.
• Can lead to unintentional changes in behaviour.
‣ Debug build takes longer to execute as there are more
instructions - different amounts of processor available,
behaves differently
27
28. Software Engineering for
(Game) AI
• By now you will have been told about best practices
for Software Engineering.
‣ UML diagrams
‣ Waterfall method
• Good for well understood tasks
‣ Write an app that does this
• What if the task isn’t understood?
‣ How can we design a system on paper if it isn’t specified?
28
29. Iteration, Iteration,
Iteration
• The way we deal with not knowing the specification
in advance is to constantly test.
• Rapid iteration
‣ Building systems incrementally
‣ No monolithic approach
‣ Make it do something, make it do the right thing later
‣ Iterative refinement
• Testing code correctness every few lines.
29
30. Reality
• Continuous Integration
‣ Code being committed is going through automated tests
to ensure correctness
• Long build processes
• Core reason a lot of AI is based on scripting
‣ No need to alter the code, no need to wait for a
recompile.
‣ Script updates can be executed on the same build.
30
31. Scrum
• Scrum is a project management technique getting a
lot of use in development teams
• Growing in popularity since 2001, although dates
back to 1986
• Tightly integrates a product-centric view of the
development process
‣ Avoids teams working on “cool” rather than “useful”
features.
31
32. Roles
• Product Owner - Represents the “product”, client’s
perspective. Ensures that the team is providing
value.
• Scrum Master - In charge of ensuring smooth
operation of the team. Not leader of the team.
‣ Somewhere between Mum and Fixer
• Team - Developers
32
33. The Product Backlog
• Created by the Product Owner
• Prioritised list of potential features.
‣ Priority based on value of feature and work involved
• Product Owner and Team determine priority
‣ Value is set by the Product Owner
‣ Amount of work is set by the team
• Items in the Product Backlog must be promoted to
the Sprint Backlog before being worked on.
33
34. The Sprint
• Building block of Scrum
• A development process consists of multiple sprints
‣ Each sprint lasts between a week and a month
‣ Firm deadline for the length of the sprints
• Sprint Planning Meeting selects what items from the
Product Backlog are going to be tackled.
• Sprint Review Meeting analyses what has/hasn’t
been accomplished at the end. Demo.
34
35. The Scrum
• Daily Team meeting - 15m
‣ What have you done since yesterday?
‣ What are you going to do today?
‣ Are there any obstacles right now?
• Scrum of Scrums
‣ Daily summary
‣ Each team sends a delegate
‣ Allows inter-team communication and progress checking
35
36. Maslow’s Hammer
• “If all you have is a hammer, everything looks like a
nail” - The Psychology of Science, Maslow
• This plagues the AI field - especially in academia
• Experts in one particular aspect
‣ Or grads who learnt about one technique/algorithm
• Go on to use it as standard approach everywhere,
even when it’s not at all appropriate.
36
37. The Philosophy of this
Module
• As much as possible I’ve avoided talking about
specific algorithms.
• Algorithms are available in books or on Wikipedia
• What I’ve tried to emphasise is approaches and
application areas.
• Teaching ways of thinking about Game AI
‣ Not how to write Game AI
37
38. The AI Toolbox
• Different techniques are suited to different jobs.
• Whenever you come across a new technique, make
a note of it.
‣ Add it to your toolbox
• When you come across a new problem :
‣ Do you have a tool that can solve it?
‣ Is there a better one available?
• These lectures hopefully give you a “starter kit”.
38
39. Final Summary
• Science of playing games
• Building mathematical representations of players.
• Generating content for games
• Tailoring content to players
• Managing the experience of players
39
40. Source Material
• Largely drawn from articles I’ve written for
‣ AIGameDev.com
‣ AltDevBlogADay.com
‣ Gamasutra.com
• Other aspects based on a series of posts
forthcoming for Gamasutra
• Also based on conversations with / talks from the
following people (and more) over the past few years
40
41. Acknowledgements
• Phil Carlisle (Namaste)
• Alex Champandard (AIGameDev.com)
• Kevin Dill (Lockheed Martin Advanced Simulation Center)
• Richard Evans (Stumptown Game Machine)
• Dan Kline (Electronic Arts - Maxis)
• Dave Mark (Intrinsic Algorithm, Game AI Programmers Guild)
• Gwaredd Mountain (Climax Studios)
• Brian Schwab (Blizzard Entertainment)
• Togelius and Yannakakis (ITU Copenhagen)
41
42. Finally
• Strathclyde AI and Games research group
‣ Talk to us about postgrad opportunities
• International Game Developers Association
‣ IGDA Scotland
‣ IGDA Scholarships
• Organising some form of game-development based
program here at Strathclyde
‣ Keep an eye on your email in the next week or two
42