전쟁 시대
Age of War AI, 내가 끔찍한 시간을 보냈던 프로젝트는 거대한 스파 헤티 코드로 바뀌 었습니다. 그것은 나의 첫 번째 큰 프로젝트 였고 모든 분야에서 부족했고 (여전히 아마도 여전히 가능성이 높았 기 때문에) 얼마나 많은 것을 배워야하는지 보여주었습니다. 이 프로젝트의 맥락에서 나는 다음을 수행했다.
프로젝트를 수행하지 않는 방법
- 바닐라 시대의 전쟁 게임을 얻고 게임이 진행될 때 OpenCV 라이브러리를 통해 데이터를 추출하는 모듈을 만들고 깔끔한 알고리즘에 공급합니다. 내가 깨닫지 못한 것은 게임에서 30 ~ 50 에이전트를 평가하고 세션 당 10 분의 평균 플레이 시간을 훈련하는 데 많은 시간이 걸리며 큰 결과를 얻지 못했다는 것입니다.
- 치트 엔진을 얻고,이 특정 게임에서 누가 어떤 이유를 아는 사람을 위해이 특정 게임에서 작동하지 않는다는 것을 깨닫고, 플래시 게임에 대한 디 컴파일러를 찾아서 값을 얻기 위해 전체 opencv를 우회하기 위해 텍스트 파일을 스폰하는 게임에 스크립트를 주입하십시오. 치트 엔진으로 게임 X2의 속도를 높이기 때문에 약간 더 나은 결과를 얻었지만 여전히 부족했습니다.
- 통일성을 얻으십시오. 이미 게임 코드에 대한 방법을 찾았 기 때문에 모든 IT 메커니즘을 리버스 엔지니어링하고 원래 게임과 동일한 매개 변수를 가진 Unity에서 매우 충실한 시뮬레이션을 만들었습니다.
- 10 배 속도로 50 개의 환경을 시뮬레이션하고 TCP를 통해 모든 환경과 해당 행동에 대한 신이트 관리자가있는 파이썬 스크립트와 함께 TCP를 통해 통신하게합니다. 여기서 나는 실제로 일반 모드에서 승리하고 승리하는 몇 가지 중요한 결과와 전략을보기 시작했습니다. 그러나 나는 Moe를 원했다
- Unity ML 에이전트를 본질적으로 Python 스크립트, 기차 및 에이전트를 PPO로 포기하고 매개 변수를 전환 한 후에는 Hard 모드에서 게임에서 승리하는 좋은 전략을 갖도록합니다.
- 원래 게임에서 테스트하고 승리를 기록하고 3 주 안에 완료 될 수있는 프로젝트에서 2 개월을 잃어버린 것을 깨달았습니다.
- 리포지토리를 게시하지 않은 주제에 대한 멋진 YouTube 동영상을 발견했기 때문에 수학 엔진 Manim을 사용하여 깔끔한 시각화 라이브러리를 만듭니다.
이 고통에 대한 개요를 여기에서 볼 수 있습니다. 저는이 채널로 100%로 돌아와서 적어도 1m로 가져갈 것입니다. 그러나 지금은 다른 목표가 있습니다.
파이썬에서 실행 3.7.9
입력 :
- 훈련 중 부대 수 (1 입력)
- 적 HP- 총 건강의 퍼센트 (1 입력)
- 내 HP- 총 건강의 퍼센트 (1 입력)
- 돈 - 기본 단위 비용으로 정규화 (Money/Cost_of_Basic_Unit) (1 입력)
- XP- 연령을 업그레이드 할 수 있습니다 (1 입력)
- 능력을 활성화 할 수 있습니다 - 0 ~ 1 재사용 대기 시간 (1 입력)
- 지상에 내 부대 1, 2, 3, 4 (4 개의 입력)
- 지상에 적군이 1, 2, 3, 4 (4 개의 입력)
- 사용 가능한 대포 슬롯 수 (1 입력)
- 플레이어 연령 - 1 개의 뜨거운 인코딩 (5 개의 입력)
- 적 연령 - 1 개의 뜨거운 인코딩 (5 개의 입력)
- 포탑 및 포탑이있는 배열 (최대 4) (최대 4) (최대 유형의 1 입력은 점차 강해지고 연령 감가 상각의 경우 1 개의 입력) (각 슬롯에 대해 2) (8 입력) (8 개의 입력)
- 현재 전투는 어디에 있습니까?
출력 :
- 1, 2, 3 단계 (3 가지 행동) 부대 생성
- 우주 나이에 대한 4 단계 부대 생성 (1 행동)
- 대포 구매 (1 액션)
- Cannon Tier 1, 2, 3, 첫 번째 사용 가능한 슬롯 구매 (3 조치)
- 특정 슬롯에 대포 판매 (4 가지 액션)
- 기다림 (1 개의 행동)
- 사용 능력
종속성 :
- Numpy
- 패들 OCR
- 오픈 -CV
- Scipy
- 깔끔한 파이썬
pip install numpy paddlepaddle paddleocr opencv-python scipy neat-python
자산은 게임 해결을 수정하려면 해당 특정 해결책에 대해서만 작동합니다. 그에 따라 자산 크기를 변경해야합니다 (예 : 게임 및 자산 만들기 x% 더 작음)
여기에서 게임에 사용한 아카이브를 다운로드 할 수 있습니다.