단일 플레이어, 로컬 & 온라인 멀티플레이어용 Bots
봇은 멀티플레이어 게임의 성공을 위해 엄청나게 중요할 수 있습니다. 룸을 채우는 데 사용할 수 있지만, 실행 중인 게임 세션을 떠난 플레이어를 대체하는 데도 사용할 수 있습니다.
Quantum Bot SDK를 사용하면 이러한 작업이 완벽하게 수행됩니다. 플레이어가 연결을 끊으면 봇이 즉시 작업을 인계받으며 플레이어는 간단히 잠시 후에 다시 참여할 수 있습니다.
더 좋은 것은, 시간 절약입니다. 봇의 코드는 싱글 플레이어나 로컬 멀티플레이어, 온라인 멀티플레이어의 코드와 동일합니다.
여기에서 Bot SDK v2.0.0.Alpha3 다운로드.
이 애드온은 주요한 두 가지로 나누어져 있습니다:
- 빠르고 효율적인 방식으로 나마느이 AI 를 생성하고 디플로이 할 수 있는 비주얼 에디터;
- 퀀텀 솔루션 기반에 구현된 결정론적 AI 코드.
Bot SDK는 현재 두 개의 AI 모델을 지원합니다:
- 계층 무한 상태 머신 (HFSM);
- 목적 기반 액션 플래닝 (GOAP).
이 문서에서는 비주얼 에디터의 기능을 나열하고 게임에서 사용하는 방법에 대한 샘플을 제공하는 비주얼 에디터의 사용 방법에 대해 설명합니다.
이 프레임워크를 사용할 때, 사용하려는 AI 모델의 선택은 자신에게 달려 있습니다:
- 하나의 모델만을 사용하여 모든 봇을 설계할 수 있습니다.
- HFSM 과 GOAP를 사용한 다른 봇들을 설계할 수 있습니다.
- 또한 GOAP를 사용하여 어떤 HFSM을 실행할 것인지(또는 그 반대로) 결정하여 두 모델을 결합할 수도 있습니다.
bot sdk 샘플 을 확인해보세요.
유니티의 최상위 메뉴로 이동하여 "Window" > "Circuit" > "Open Editor" 를 클릭합니다.
화면이 다음과 같이 표시됩니다:
Apr 28, 2020 - Bot SDK 2.0.0 Alpha3 * GOAP Editor - Fixed issue regarding duplicated paths for Actions with the same type - Fixed issue regarding duplicated paths for Tasks with the same name - Fixed issue which prevented users to give custom names to Action nodes Apr 24, 2020 - Bot SDK 2.0.0 Alpha2 * Circuit Editor - Added Filter button on the top bar; - Added “Refresh Documents” button to re-import all types on all Bot SDK documents at the project; - Added Bot SDK version label to the top bar; - Removed the “Promote to Variable” alternative from Action/Decision fields * Issues - Adapted Bot SDK dll to work with the new dlls structure present on Quantum SDK 2.0.0 A1 260 and on Apr 16, 2020 - Bot SDK 2.0.0 Alpha * Portability to Quantum 2.0.0 Alpha - This version has no major changes in comparison to version Bot SDK 1.0.0 Final. Only minor changes needed for it work with Quantum 2.0 March 16, 2020 - Bot SDK 1.0.0 Final * Visual Editor - Support for adding Labels to Actions/Decision Nodes (from the right click menu) - Allowed connection between Event Nodes and String/AIParamString slots - Fixed the Constant Nodes drawer: its width is now defined by the size of the Node value instead of its name - Removed log message when adding Constant nodes to the graph - Fixed issue in which uninitialized AIParam fields would generate broken Nodes on the Visual Editor - Fixed issue in which the compilation process tried to find for the Events on the Constants panel, which would lead to unnecessary logs showing up - Fixed issues regarding the History view - Fixed issue that happened when drag-and-dropping assets into AssetLink fields on Actions and Decisions - Fixed issue in which the Priority values were initialized as null instead of zero - Fixed issue with the “Compile Project” functionality - Changed the tooltip from “Compile Project” to “Compile All” - On the Unity top toolbar, changed the tool name from “Circuit” to “Bot SDK” * Hotkeys - Added Hotkey: press “M” to mute and unmute States/Actions/Transitions Links - Added Hotkey: press “F2” to edit States/Actions/Decisions/Transitions Nodes/TransitionSets - Added Hotkey: press “Esc” to go upper on the states hierarchy or out of a transiton graph * Configs panel - Created new panel on the left side menu named Config This panel should be used for agents which use the same HFSM but need different constant values from each other * Blackboard - The Blackboard getter method is now generated automatically. Instead of Entity.GetBlackboardComponent(entity), use Entity.GetAIBlackboardComponent(entity) - Fixed issue regarding destroying and re-initializing Blackboard components * GOAP - Fixed issue on muting Tasks * Unity files - Moved the AssetLinkDatabase and SettingsDatabase to a new folder. It is not on the Resources folder anymore - Removed duplicated Gizmos Icon images * Debugger - Added support to debugging Blackboard Vars - Event nodes can now be linked to String fields - Fixed transition color when there is only one transition to be debugged Dec 17, 2019 - Bot SDK 1.0.0 Release Candidate 3 * Visual Editor - Changed the line drawers which are used to link states, actions, decisions, etc - Keyboard numeric Enter is now also used to confirm some editing actions - Clicking on some transition slot doesn't delete that transition anymore. Instead, drag and drop it to re-direct some transition to another state - Right click transitions to access the Delete button - Variables on the left side menu are now ordered by alphabetical order - Actions and Decisions are also now ordered by alphabetical order - Actions and Decisions nodes can now have its names changed on the Visual Editor (right click on it to edit). This makes no difference to the actual actions and decisions classes - Created a menu to fix events/blackboard variables from former Bot SDK versions - Added the transition Priority to the top view on the graph, on the state node - No longer generates a Blackboard asset when there is no Blackboard Variable on the visual eitor * ANY Transition - Added Excluded List to it, which allows the user to inform states that should not consider that ANY transition * Compilation - Removed code which was causing the compilation process to take the double of the time needed - Improved a lot the compilation time by re-using the previous data assets structure to prevent re-creating assets unnecessarily * Debugging - Added new toolset for debugging HFSM agents. Its main features are: Select some Game Object on your Hierarchy tab which represents some HFSM Agent and has the HFSMDebugComponent added to it in order to open its HFSM editor See what is the current state in which the HFSM Agent is See what are the last three transitions taken by that HFSM Agent (works hierarchically) See what are the current states on the left panel, to easily see all of the current states considering the hierarchy * Quantum_code - Created the AIContext, which is used to reference Constants and Config data assets and can be set differently for bots which has the same HFSM but uses different values - Changed the way that Transition Sets were handled on the HFSM core code * Constants - Created the Constants menu on the left side part of the editor - Constants can be used to define nodes with a default type, and the same constants node can be used as input for many fields * Blackboard - On the Visual Eitor, added a new slot on every Blackboard node: the value slot, which can be used to define where some Action/Decision reads some value from - Fixed serialization issue for entities which has the Blackboard Component and are Created -> Destroyed-> Created (respawned) - Fixed serialization issue regarding using the Blackboard component during matches between different platforms (cross platform) - Fixed serialization issue regardinsg usint the Blackboard component on replays * AI Param - Created a new type that easily changes the source from where it reads values: the AIParam - Public AIParam fields can be defined, on the Visual Editor, from a value set by hand (click to edit), from a Blackboard node or a Constant node - AIParams are strongly typed, so they are used as AIParamInt, AIParamFP, AIParamBool, etc * Unity Assets - Added new asset: HFSMDebugComponent * Issues - Fixed issue on using Events on ANY transitions - Reduced the amount of SetDirty called for the data assets created, which was causing a bug during compilation on some Mac OS machines - Added custom header on the default Bot SDK actions/decisions to prevent the Reset method to be created. It was also the cause of issues during compilation - Fixed precision issues regarding closing/opening circuits with FP values. Every re-open would make the FP value change. FPs are now stored as their internal long value - Fixed issue when (de)serializing the XML document. It didn't use InvariantCulture so it would cause errors depending on the machine's localization. Issue happened with some czech localized Windows machines - Fixed issue in which OnExit actions would be called right after entering some state which has children states - Fixed compilation and runtime issues when some states were named the same - Fixed nodes being in incorrect states if it was created as a result of drawing a new transition. It was generating broken nodes after copying and pasting it - Documents are now saved before assembly recompilation to prevent loss of document modifications - Fixed the Circuit window when the game is on Play mode Aug 15, 2019 - Bot SDK 1.0.0 Release Candidate 2 * Visual Editor - Mute Transition option, accessible by right clicking on a any transition's line or on its in/outbound slot. Muted transitions will be ignored during the compilation process; - Mute State option, accessible by right clicking on a State node. Muted states are ignored during the compilation process, so no transition will lead to that state. The HFSM will not compile if you mute the Default State; - Mute Action option, accessible by right clicking on a Action node. It is possible to mute any Action, no matter its position on the actions list. If a muted action is linked to another action, then the other action will still be executed; - Editor screen panning using direcional arrow keys; - Actions and Decision nodes will automatically add or remove its fields list based on changes performed on the quantum_code (such as adding/removing fields); - Actions and Decisions nodes fields are initialized with the values defined on quantum_code; - Warning logs if some Action/Decision isn't serialized. Those Actions/Decisions wont show on the pop up menu in this case; - Actions/Decision fields always showing its values. There is no need to select the node to see the values anymore; - Transitions are now labelled with their Event name if there is no custom label defined; - Added menu to create Blackboard information within the editor view from which your custom Blackboards are created and from where you can drag and drop the Blackboard keys as nodes. * Blackboard - Blackboard Initializer asset, which can be used to define initial values for blackboard instances; - Fixed issue on Blackboard's memory allocation; - Added optional compilation symbol (USE_BLACKBOARD_FRAME_METHODS) to define if the Blackboard will not use Frame's partial methods. * Unity Assets - Compiling a HFSM generates both a Blackboard asset and a BlackboardInitializer asset for that agent; - Fixed redundancy between SettingsDatabase and AssetLinksDatabase assets which led to invalid cast errors; - Downgraded all assets versions. Assets were previously generated from Unity 2019.1.0f2, now it is generated from Unity 2018.4.0f1 LTS. * GOAP - Reduced the amount of GOAP re-planning: it now happens when the agent's Goal changes and when the agent's Current State changes * Changes on quantum_code BotSDK folder's content: - Included the Samples folder with some very simple pre-defined Actions and Decisions Jul 1, 2019 - Bot SDK 1.0.0 Release Candidate 1