top of page
  • Join our Discord!
  • Join our Kickstarter!

A.I. 3부

벌써 3번째 AI 개발자 로그군요! 이렇게 여러분들을 다시 찾아볼 수 있어 기쁩니다.

2부에서, 우리는 어떻게 AI가 건설 명령을 내리고 그룹을 구성하는지 알게 되었고, 그 명령들이 특정한 기능에 의해서 제어된다는 것도 알게 되었습니다.

이번에는, 그 기능들을 조금 더 자세히 살펴보려고 합니다:



플래툰은 무엇인가요?


간단하게 말해서, 우리는 유닛의 그룹을 플래툰이라고 부르게 됩니다.

만약 AI가 공격 명령을 실행하고 싶다면, 플래툰이 형성되어 유닛 그룹을 제어하는 프로그램 스레드가 시작됩니다.


이 목적을 위해 유닛 그룹들을 관리하는 Lua 클래스가 작성되고요.

저나 모더 분들처럼 이 부분을 건드려보고 싶은 사람들을 위한 좋은 가이드가 있습니다:


그래서, 우리는 단순히 CreatePlatoon()으로 새 플래툰을 생성한 뒤, AssignUnits()로 더 많은 유닛들을 넣을 수 있게 됩니다. 이제 유닛 그룹을 생성하고 관리할 수 있게 되었으니, 마지막 문제가 하나 남습니다...



플래툰을 어떻게 제어해야 할까요?


이 역시, 플래튼 클래스의 동작은 매우 단순하고 한 가지의 명령만이 필요합니다:

Platoon:StartAIFunction(platoonFn, ...)


platoonFn은 실행되어야 하는 AI 기능의 이름 자리에 대신 들어가는 플레이스홀더입니다.

예시를 하나 보여드리겠습니다. 단순한 공격 명령을 넣어봅시다:




이 경우, 플래툰에서 가장 가까운 적 유닛을 찾아 공격하는 명령이 수행됩니다.

1초 정도 기다린 후에, 그 명령이 반복되고요.

자기-학습 AI들이 생츄어리에서 유용하게 쓰일 곳이 있다면, 이것이 그 중 하나일 겁니다(어디까지나 제 의견이지만요)


어디까니나 이론인가, 아니면 머신러닝 AI가 정말로 생츄어리에 도입되는 것인가요?

AI 개발자 로그를 읽어보셨다면, 우리 팀의 AI가 아직 작업 중이라는 사실을 아실 겁니다. 개발자 로그에 이미 명시된 것들은 전부 작동하는 기능이고요. 더해서, AI 모드와 모딩 가능한 유닛들은 이미 지원 가능한 상태에 있습니다.

제 개인적인 계획은, 우선 AI의 기본 구조를 완성시키는 것입니다.

이에 더해, 모더들이 완전히 새로운 AI를 개발할 수 있도록 보장하고 싶고요.

며칠 동안이지만, AI와 경쟁하거나 테스트 게임(AI 대 AI)가 가능했던 적도 있었습니다. 그러니, 기초적인 AI가 가능할 것이라는 질문에는 예라고 대답할 수 있겠네요.



언제나 그랬듯이, 여러분들의 관심에 감사드리고, 여러분과 함께할 다음 개발자 로그를 기다리겠습니다.

또 만나요, Uveso가.

6 views0 comments
bottom of page