This document discusses behavior trees, which are commonly used to direct behaviors for AI in games. It provides an overview of behavior tree theory, including the basic components of behavior trees like composites, services, decorators, tasks, and the blackboard. It then discusses behavior trees in Unreal Engine 4 specifically. The document also provides an example of how behavior trees could be used for an airplane dogfighting AI and includes references for further information.
How to build build pipeline for your Unreal Engine 4 game, along with iteration advice and best practices.
Originally presented in Poznan, Poland for GIC 19.
In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part on performance profiling and optimizations. Finally, there will be an overview of debugging and profiling improvements in the newly announced Unity 5.0.
UE4は4.19からInput Latencyの改善を行える設定が加わりました。
https://docs.unrealengine.com/ja/Platforms/LowLatencyFrameSyncing/index.html
その設定が実際どのようなことをしているのか質問されることが多かったため、今回簡単にですがドキュメトにまとめてみました。各スレッドの並列動作を理解する必要があり事前説明がちょいと長いのですが、ご参考になれば幸いです。
(Epic Games Japan Support Manager 篠山範明)
3월 중순부터 한달이라는 기간동안 선거운동을 경험하면서 느낀점과 의견들을 정리해 봤습니다. 비전문가의 의견이라 부족한 점이 많고, 선거캠프의 공식적인 입장이나 견해와도 다른 개인의 생각일 뿐입니다.
IT업계가 단기간에 성장을 할 수 있었던 이유는 지식의 공유 문화가 활발했었기 때문이라고 생각합니다. 성공하든 실패하든 자신의 경험을 다른 사람들과 공유하고, 그것을 통해 배움으로써 업계 전체가 빠르게 발전할 수 있었습니다.
정치계에서는 이런 식으로 무언가를 공유하는 문화가 낯설고 걱정도 되시겠지만, 개인적으로는 우리나라 정치권에서도 사소한 지식이라도 문서로 정리되고 공유하는 문화가 만들어 지면 좋겠다고 생각합니다. 그런 문화 속에서 자연스럽게 정치권에 종사하시는 분들이 서로 배우고 성장해, 우리나라의 정치를 더 발전시켜 주실테니까요. 고 노무현 대통령이 대통령 기록실을 만드신 취지도 그런 게 아니었을까 감히 추측해봅니다.
벌써 선거가 끝난 지 한달이 지났고, 저는 다시 일상으로 돌아왔습니다. 그 전과 달라진 게 있다면 정치뉴스란을 좀 더 흥미롭게 읽을 수가 있게 되었다는 정도? 많이 부족한 글이지만 그냥 이런 의견도 있구나 정도로 가볍게 읽어봐 주세요. 감사합니다.
Difference between Discriminative Learning and Generative Learning
Cosine distance as a Basic metric of Deep Learning
Multi-layer Perceptron as a common part of Deep Learning Variants
Analogy between Similarity in Deep Learning and Wave Coherence
Deep Neural Net. as a Wave Extractor
How to build build pipeline for your Unreal Engine 4 game, along with iteration advice and best practices.
Originally presented in Poznan, Poland for GIC 19.
In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part on performance profiling and optimizations. Finally, there will be an overview of debugging and profiling improvements in the newly announced Unity 5.0.
UE4は4.19からInput Latencyの改善を行える設定が加わりました。
https://docs.unrealengine.com/ja/Platforms/LowLatencyFrameSyncing/index.html
その設定が実際どのようなことをしているのか質問されることが多かったため、今回簡単にですがドキュメトにまとめてみました。各スレッドの並列動作を理解する必要があり事前説明がちょいと長いのですが、ご参考になれば幸いです。
(Epic Games Japan Support Manager 篠山範明)
3월 중순부터 한달이라는 기간동안 선거운동을 경험하면서 느낀점과 의견들을 정리해 봤습니다. 비전문가의 의견이라 부족한 점이 많고, 선거캠프의 공식적인 입장이나 견해와도 다른 개인의 생각일 뿐입니다.
IT업계가 단기간에 성장을 할 수 있었던 이유는 지식의 공유 문화가 활발했었기 때문이라고 생각합니다. 성공하든 실패하든 자신의 경험을 다른 사람들과 공유하고, 그것을 통해 배움으로써 업계 전체가 빠르게 발전할 수 있었습니다.
정치계에서는 이런 식으로 무언가를 공유하는 문화가 낯설고 걱정도 되시겠지만, 개인적으로는 우리나라 정치권에서도 사소한 지식이라도 문서로 정리되고 공유하는 문화가 만들어 지면 좋겠다고 생각합니다. 그런 문화 속에서 자연스럽게 정치권에 종사하시는 분들이 서로 배우고 성장해, 우리나라의 정치를 더 발전시켜 주실테니까요. 고 노무현 대통령이 대통령 기록실을 만드신 취지도 그런 게 아니었을까 감히 추측해봅니다.
벌써 선거가 끝난 지 한달이 지났고, 저는 다시 일상으로 돌아왔습니다. 그 전과 달라진 게 있다면 정치뉴스란을 좀 더 흥미롭게 읽을 수가 있게 되었다는 정도? 많이 부족한 글이지만 그냥 이런 의견도 있구나 정도로 가볍게 읽어봐 주세요. 감사합니다.
Difference between Discriminative Learning and Generative Learning
Cosine distance as a Basic metric of Deep Learning
Multi-layer Perceptron as a common part of Deep Learning Variants
Analogy between Similarity in Deep Learning and Wave Coherence
Deep Neural Net. as a Wave Extractor
How to implement realistic fabric material by Unreal engine?
This slider shows the way. You can make realistic and physically correct fabric shader by this method.
Approximate nearest neighbor methods and vector models – NYC ML meetupErik Bernhardsson
Nearest neighbors refers to something that is conceptually very simple. For a set of points in some space (possibly many dimensions), we want to find the closest k neighbors quickly.
This presentation covers a library called Annoy built my me that that helps you do (approximate) nearest neighbor queries in high dimensional spaces. We're going through vector models, how to measure similarity, and why nearest neighbor queries are useful.
오픈소스 개발을 시작하기로 결정했더라도, 처음 개발하는 경우에는 막상 무엇을 개발할지, 그리고 어떻게 개발해야 할 지 막막하기만 합니다. 이 때는 기존에 공개되어 있는 오픈소스 프로젝트를 활용해 개선해나가는 프로젝트부터 시작하면 많은 도움이 됩니다. 이번 강연에서는 기존 오픈소스 프로젝트를 처음부터 새로 만들어가면서 개선해나갔던 경험을 이야기하고 어떻게 하면 오픈소스 개발에 쉽게 접근할 수 있는지를 알려줍니다.
발표 당일에 발표를 결심하는 바람에 아침부터 코엑스로 가는 버스 안에서, 점심 시간과 쉬는 쉬간에 틈틈이 작업하느라 리허설을 한 번밖에 해보지 못해서 발표할 때 거의 슬라이드 노트를 읽다시피 했던 점 넓은 마음으로 양해 부탁드립니다. 마지막 한 문장을 남겨두고 징이 울려서 매우 아쉽네요. 좋은 행사를 만드는데 기여하신 모든 스텝, 발표자 그리고 참가자 분들께 진심으로 감사드립니다. 내년에 또 뵐 수 있었으면 좋겠습니다.
NDC 16에서 발표한 '스매싱더배틀 1년간의 개발일지'라는
제목의 포스트 모템입니다.
PT의 내용은 실제 발표 자료에 조금 더 설명을 붙였으며
PT의 내용에 대한 질문은 아래의 주소를 통해서
문의 부탁드립니다.
Twitter
https://twitter.com/Studio_HG
Facebook
https://www.facebook.com/GameStudioHG
2D 컴퓨터비젼에 대한 설명. 영상으로부터 정보를 추출해내는 공학/과학 분과인 컴퓨터비젼의 기술에 대한 쉬운 설명. 파이썬(Python)의 컴퓨터비젼/영상처리 라이브러리인 scikit-image를 주로 활용하였으며 코드를 함께 담음.
R컨퍼런스 발표본 (2014.5.30) 임.
이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
Speaker:
Alex Cruise (Dir. Architecture, Metafor Software)
Abstract:
The rise of the DevOps movement has brought into welcome focus something that is often learned only through painful experience and expense: the success of a software product critically depends not only on its implementation, maintenance and enhancement, but also on how it’s deployed and operated.
Distributed systems are hard, but you can’t escape them: you need to scale out, but wrapping proxy interfaces around remote resources so they look local is a recipe for a fragile system. Plus, as the complexity of components and services increases, local systems aren’t actually as reliable as we think! Concurrency is hard, but you can’t escape it: whether you’re using threads in a single process, or multiple processes on a single machine, you still need to synchronize state between them somehow. Fault tolerance is hard, but you can’t escape it: parts will fail, you need to cope without rebooting the whole application. Correctness is hard, but you can’t escape it: whether through laborious testing or a Sufficiently Advanced Compiler, you need to have some assurance that the software will work as intended.
Let’s talk about a set of architectural patterns (and, yes, frameworks) that can really help us achieve the goals of concurrency, fault tolerance and correctness, while affording us the flexibility we need to scale our deployments when we achieve terrifying success.
No Training Data? No Problem! Weak Supervision to the Rescue!
A talk on NLP Weak Supervision at the Singapore Quantum Black Meetup.
This talk talks about
1. ML's insatiable need for large datasets
2. Contemporary ML leaving out domain knowledge from Subject Matter Experts
3. How Weak Supervision, an approach of Data-Centric AI, solves both the problems simultaneously by encoding domain subject matter expertise into programmatic labeling functions.
4. The WRENCH benchmark to compare various weak supervision algorithms on several standard datasets.
5. Snorkel to combine the various labeling functions.
6. COSINE to fine-tune a final transformer based model that overcomes the noise in weak labels
7. Future Directions and Resources
Feel free to use the slides but please remember to credit me with a link to my Linkedin profile: www.linkedin.com/in/marie-stephen-leo.
VSSML16 LR1. Summary Day 1
Valencian Summer School in Machine Learning 2016
Day 1
Summary Day 1
Mercè Martin (BigML)
https://bigml.com/events/valencian-summer-school-in-machine-learning-2016
Deep learning has accomplished impressive feats in areas such as voice recognition, image processing, and natural language processing. Deep learning enthusiasts have rushed to predict that this family of algorithms is likely to take over most other applications in the near future. This focus on deep architectures seems to have cast a shadow over more “traditional” machine learning and data science approaches, leaving researchers and practitioners alike wondering whether there is any point in investing in feature engineering or simpler models.
In this talk, I will go over what deep learning can and cannot do for you, both now and in the near future. I will also describe how different approaches will continue to be needed, and why their demand will likely grow despite the rise of deep learning. I will support my claims not only by looking at recent publications, but also by using practical examples drawn from my experience at companies at the forefront of machine learning applications, such as Quora.
You are a clever and talented person. You create beautiful designs, or perhaps you can architect a system that even a cat could use. Your peers adore you. Your clients love you. But (until now) you haven't *&^#^ been able to make Git bend to your will. It makes you angry inside that you have to ask your co-worker, again, for that *&^#^ command to share your work.
It's not you. It's Git. Promise.
We'll kick off this session with an explanation of why Git is so freaking hard to learn. Then we'll flip the tables and make YOU (not Git) the centre of attention. You'll learn how to define, and sketch out how version control works, using terms and scenarios that make sense to you. Yup, sketch. On paper. (Tablets and other electronic devices will be allowed, as long as you promise not to get distracted choosing the perfect shade for rage.) To this diagram you'll layer on the common Git commands that are used regularly by efficient Git-using teams. It'll be the ultimate cheat sheet, and specific to your job. If you think this sounds complicated, it's not! Your fearless leader, Emma Jane, has been successfully teaching people how-to-tech for over a decade. She is well known for her non-technical metaphors which ease learners into complex, work-related topics that previously felt inaccessible.
Yes, this is an introductory session. No, you don't have to have Git installed to attend. You don't even need to know where the command line is on your computer. Yes, you should attend if you've been embarrassed to ask team-mates what Git command you used three weeks ago to upload your work...just in case you're supposed to remember.
If you're a super-human Git fanatic who is frustrated by people who don't just "git it", this session is also for you. You'll learn new ways to effectively communicate your ever-loving Git, and you may develop a deeper understanding of why your previous attempts to explain Git have failed.
When setting up a new project we have some tips and tricks to help you do this in the best way possible, incl. infrastructure, database, standard attributes, logging, code alignment, and service center.
Learn more about enterprise frameworks and why your technology business and you need to be thinking about your software application architecture at scale.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
10. Why not use other solutions?
● There are innumerable ways to
implement AI or other decision
making systems.
● Not necessarily always best, but
they are frequently great for games.
(LOL, Uncharted 2, ...)
10
11. Why not use other solutions?
State Machine?
● While state machines are reasonably
intuitive for simple cases, as they become
more complex they are hard to keep goal-
oriented. As the number of states
increases, the transitions between states
become exponentially complex. Hierarchical
state machines help a little, but many of
the same issues remain.
11
13. #1 They’re Unorthodox
Problem : Building a FSM is a very
different process from any other form
of software engineering. Sure, the
concept is “designer friendly” but a
surprisingly small amount of
mainstream programming knowledge
applies to FSMs.
13
14. #1 They’re Unorthodox
Reason : FSMs require each state to be
wired with an explicit transition to
the next state. No programming
language requires this; everything is
done implicitly on the semantics of
the language itself.
14
15. #2 They’re Low-Level
Problem : The process of editing the
logic of a FSM is very low-level and
quite mechanical. You often find
rebuilding the similar behaviors over
and over from scratch - which takes a
lot of time.
15
16. #2 They’re Low-Level
Reason : All you can do is edit
transitions from a state to another.
There’s no way to capture higher-level
patterns that reoccur frequently like
sequences or conditionals. Meta-
programming doesn’t exist in the world
of finite state machines.
16
17. #3 Their Logic is Limited
Problem : Finite state machines, as
they are defined formally, are
computationally limited. This means
you can’t do things like counting by
default.
17
18. #3 Their Logic is Limited
Reason : If you consider events as
symbols, you can only recognize
regular grammars with a finite state
automaton. Likewise, finite state
machines can only act as transducers
for regular language.
18
19. #4 They Require Custom Extensions
Problem : Game developers often use
extensions to make FSMs useful in
practice. However, these hacks aren’t
always easy to understand and aren’t
so well documented either — unlike the
academic foundations of FSMs.
19
20. #4 They Require Custom Extensions
Reason : Because FSMs are
theoretically limited, developers must
add functionality externally to
implement certain features. This means
leveraging the underlying programming
language to implement things like
counters, timers, or any form of
memory. 20
21. #5 They Are Hard to Standardize
Problem : Unlike planners (HTN) or
search algorithms (A*) which are
implemented in relatively common ways,
FSMs are very difficult to reuse
across multiple games or in different
parts of the engine.
21
22. #5 They Are Hard to Standardize
Reason : Since FSMs aren’t turing
complete, FSMs need customizing to be
able to deal with the special cases of
each problem. This makes them very
narrowly applicable, unlike scripting
languages which can easily be
repackaged.
22
23. #6 They Are Not Deliberative
Problem : It takes a lot of work to
use a FSMs to create goal-directed
behaviors. This is an issue as most
purposeful AI will require dealing
with long-term goals.
23
24. #6 They Are Not Deliberative
Reason : FSMs operate in a reactive
mode, only dealing with events and
triggering transitions. They are not
capable of searching ahead, so you
have to edit the transitions for
dealing with all the different goals
manually.
24
25. #7 They Have Concurrency
Nightmares
Problem : FSMs just don’t like
concurrency. When running multiple
state machines in parallel, you either
end up with deadlocks or you have edit
them all in a way they are compatible.
25
26. #7 They Have Concurrency
Nightmares
Reason : FSMs have as much trouble
dealing with external resource
conflicts as they do storing
information. Solutions to make state
machines concurrent are typically
external to the FSM itself.
26
27. #8 They Scale Poorly
Problem : Finite state machines, even
hierarchical ones, don’t scale very
well. They often end up being edited
as a large block of logic, instead of
behaviors edited modularly.
27
28. #8 They Scale Poorly
Reason : FSMs are not built with the
many mechanisms of programming
languages that help them scale up to
solve large problems, in particular
indirection. Also, FSMs provide no
easy way to synchronize multiple
modular behaviors together.
28
29. #9 They Are Labor Intensive
Problem : It takes a lot of work to
wire up a FSM to implement any design.
Certain problems occur only because of
the state machine itself!
29
30. #9 They Are Labor Intensive
Reason : Dealing with all the
challenges mentioned previously takes
a lot of time by the designers, and
this ultimately becomes a source of
bugs in the behaviors.
30
31. #10 Industry is Moving On
Fact : Experienced game developers are
using finite state machines less and
less, switching to alternatives like
behavior trees.
31
32. #10 Industry is Moving On
Fact : Middleware vendors for game AI
are focusing their development efforts
mainly on planners, and 2008 should
see more of these becoming available
off the shelf.
32
42. Unreal Engine 4 Behavior Tree
Root
Composite
Service
Decorator
Task
42
43. Unreal Engine 4 Behavior Tree
Root
● The starting execution node for
the Behavior Tree.
● Every Behavior Tree has one.
● You cannot attach Decorators or
Services to it.
43
44. Unreal Engine 4 Behavior Tree
Composite
● These are nodes that define the
root of a branch and define the
base rules for how that branch is
executed.
● Sequence, Selector, Simple
Parallel
44
46. Unreal Engine 4 Behavior Tree
Composite : Sequence
● Sequence Node execute their
children from left to right, and
will stop executing its children
when one of their children Fails.
If a child fails, then the
Sequence fails.
46
48. Unreal Engine 4 Behavior Tree
Composite : Selector
● Selector Nodes execute their
children from left to right, and
will stop executing its children
when one of their children
Succeeds. If a Selector’s child
succeed, the Selector succeeds.
48
50. Unreal Engine 4 Behavior Tree
Composite : Simple Parallel
● The Simple Parallel node allows a
single main task node to be
executed along side of a full
tree. When the main task finishes,
the setting in Finish Mode
dictates the secondary tree.
50
52. Unreal Engine 4 Behavior Tree
Service
● These attach to Composite nodes,
and will execute at their defined
frequency. These are often used to
make checks and to update the
Blackboard. These take the place
of traditional Parallel nodes.
52
54. Unreal Engine 4 Behavior Tree
Decorator
● Also known as conditionals. These
attach to another node and make
decisions on whether or not a
branch in the tree, or even single
node, can be executed.
54
58. Unreal Engine 4 Behavior Tree
Blackboard
● A blackboard is a simple place
where data can be written and read
for decision making purposes.
● A blackboard can be used by a
single AI pawn, shared by squad.
58
59. Unreal Engine 4 Behavior Tree
Blackboard : Why use?
● To make efficient event-driven
behaviors
● To cache calculations
● As a scratch-pad for behaviors
● To centralize data
59
60. Unreal Engine 4 Behavior Tree
Blackboard : Notice
● Don’t clutter the blackboard with
lots of super-specific-case data.
● If only one node needs to know
something, it can potentially
fetch the value itself rather than
adding every bit of tree.
60
61. Unreal Engine 4 Behavior Tree
Blackboard : Notice
● If you fail to copy data to the
blackboard properly, it may cause
you some debugging nightmare!
● If very frequently updated and
copied to the blackboard, that
could be bad for performance.
61
72. References
● AiGameDev.com
● Behavior Trees What and Why : Unreal Engine
Forum
● 10 Reasons the Age of Finite State Machines
is Over
● Blackboard Documentation : Unreal Engine
Forum
● zoombapup : AI Tutorial youtube playlist
● 길안에서 묻다 : 네이버 블로그
72