본문 바로가기

분류 전체보기

(30)
윤성우 열혈 TCP / IP 소켓 프로그래밍 (1) - Chapter 01 https://www.yes24.com/Product/Goods/3630373 윤성우의 열혈 TCP/IP 소켓 프로그래밍 - 예스24 소켓을 이용하여 네트워크 프로그래밍을 시작하는 사람들을 위해 쓰여진 책으로, 「열혈강의 TCP/IP 소켓 프로그래밍」의 개정판이다. 운영체제와 시스템 프로그래밍 그리고 TCP/IP 프로토콜에 대 www.yes24.com 개요 클라이언트 개발자를 목표로 하고 있던중 제대로 된 서버 지식이 필요함을 느꼈습니다. 따라서 Win32 게임 개발 경험을 기반으로 C언어로 서버 공부를 시작했습니다. 도서 "윤성우의 열혈 TCP / IP 소켓 프로그래밍"은 먼저 리눅스 운영체제에서 C언어를 사용하는 소켓을 소개하고, 이후 윈도우 프로그래밍의 소켓을 소개합니다. 이는 리눅스와 윈도우의 서..
Unity 강화 학습 ML-Agent(4) - Chase AI MeetAgain 프로젝트에서 제작할 AI 모델은 2종류입니다. Chase AI : Target을 향해 불확실하게 향해 가는 AI Stay AI : Target 주위를 벗어나지 않는 AI 이번 게시글에선 Chase AI 모델의 생성 과정을 작성하겠습니다. Chase AI Chase AI는 Ml-Agent에서 가장 기본적인 추적 Agent입니다. 강화학습의 원리와, Ml-Agent의 사용법 그리고 Reward의 설정을 익히기 위해 가장 기본적인 모델부터 구현 시작했습니다. Chase Agent 스크립트는 CollectObservations() 함수를 통해 관찰 정보를 조절하거나 OnActionReceived() 함수에서 SetReward() 함수를 통해 보상을 조절하며 개선했습니다. 아래는 Chase AI..
Unity 강화 학습 ML-Agent (3) - GitBash로 학습 진행 이번 게시글에선 GitBash를 통해 Ml-Agent를 작동하여 신경망 모델을 제작하겠습니다. Ml-Agent가 Pytorch의 딥러닝 모델을 활용하는 과정은 아래와 같습니다. 환경 설정: ML-Agents로 훈련하려는 환경을 설정. Unity에서 에이전트들이 상호 작용하는 게임 환경이나 시뮬레이션을 구성합니다. 에이전트 정의: 각 에이전트는 훈련되어야 할 개체를 나타냅니다. 에이전트는 환경과 상호 작용하며 관찰(observation)을 수집하고, 행동(action)을 수행합니다 결정 주기: 학습된 에이전트는 환경에서 일정 주기마다 행동을 선택해야 합니다. 이 결정 주기는 DecisionRequester 등의 메커니즘을 사용하여 관리됩니다. 모델 학습: ML-Agents는 강화 학습 알고리즘을 사용하여 ..
Unity 강화학습 ML-Agent (2) - Agent 클래스와 딥러닝 구조 이번 게시글에선 Ml-Agent의 Agent 클래스에 대해 설명하며, Feature Vector를 활용하는 딥러닝의 구조에 대해 작성하겠습니다. Agent 클래스를 상속받는 클래스는 최소 3개의 함수로 구성됩니다. 1. Ml-Agent FrameWork의 Agent 클래스를 상속하는 클래스 A작성 public class ButterflyAgentChase : Agent { void Start() { ... } //Update는 사용하지 않습니다. } 2. Agent 클래스의 OnEpisodeBegin을 override하여 새로운 Episode가 시작될 때 환경의 초기값 설정 // In Agent Class . . /// /// Implement `OnEpisodeBegin()` to set up an A..
Unity 강화학습 ML-Agent (1) - Meet Again Unity를 통해 3D 공간 설계에 집중한 프로젝트를 진행하고 있습니다. 머신 러닝을 사용하는 Ml_Agent 강화학습을 활용하여 나비 오브젝트가 특정 오브젝트 주위를 맴도는 학습 AI를 제작하려고 합니다. 머신 러닝이란 명시적인 프로그램 없이 컴퓨터가 스스로 배우는 능력을 연구하는 분야를 뜻합니다. Ml-Agent는 Machine Learning Agent의 약어로 Unity에서 머신러닝을 간단하게 수행시킬 수 있는 도구입니다. ML Agent의 주요 구성 요소와 개념은 다음과 같습니다: 에이전트(Agent): ML Agent의 핵심이며 의사 결정을 내리고 행동하는 주체입니다. 강화학습에서는 에이전트가 환경과 상호 작용하며 경험을 통해 학습합니다. 환경(Environment): 에이전트가 상호 작용하는..
민코프스키 합 (Minkowski Sums)을 컴퓨터 과학에서 응용하는 사례 (길찾기 알고리즘 , 효율적인 거리 측정 알고리즘) https://www.youtube.com/watch?v=OL6zwhV4rc4 유클리드 공간에서 시간이 정지된 (시간축을 다루지 않는) 3차원 벡터에 관한 자료를 조사하다가 우연히 시간을 다루는 민코프스키 시공간을 접하고, 민코프스키 합이라는 수학 공식을 접하게 되었습니다. 수학에 깊이 관여하진 않았기 때문에 부정확할 수도 있지만, 민코프스키 합은 컴퓨터 공학 특히 선형대수 , 길찾기에서 충분히 적용 가능한 공식이기 때문에 기록해보겠습니다. 민코프스키 합은 2차원 유클리드 공간에 볼록한 다각형 (어떤 선분도 다각형 외부로 나가지 않는 단순 다각형 , 일반적인 다각형이라고 생각하시면 됩니다.)P와 R가 존재한다고 가정합니다. 민코프스키 합은 P와 R의 위치 벡터 집합의 모든 원소를 더하여 새로운 집합을 만..
전제경 EscapeFromTheAbyss 포트폴리오 영상 클라이언트 : Unity 3D , Unity ML-Agent , Anaconda 사용 언어 : C#(클라이언트) , Python(AI) 개발 목적 : 맵을 학습하는 AI가 존재하는 공포게임 구현 개발 기간 : 2022.09 ~ 2022.12 개발 규모 : 3인 팀 (클라이언트 1명 , AI 1명 , UI 1명 ) 담당 업무 : 프로젝트 리더 겸 클라이언트 개발을 맡았습니다. 게임 설계 , 플레이어와 몬스터 클래스 설계 , 레벨 제작 , 피직스 구현 , 물 쉐이더 구현을 진행했습니다.
WeaponGameProject - Weapon 클래스 설계 (3) (Bash와 상호작용하는 Weapon의 상태 구현 - 2) 바로 직전의 포스팅을 보았는데 글의 규모가 너무 넓고 집중이 되지 않았습니다. 기술의 핵심만을 작성하는 기술을 연습 해보겠습니다. 고로 오늘은 짧게 작성하겠습니다. 지난 포스팅에서 작성한 Weapon에 1가지 상태를 추가할 것입니다. 예전에 포스팅한 동영상에서 눈치채신 분들도 있겠지만, Weapon의 상태는 1가지 더 존재합니다. 무기가 노랗게 빛나는 상태. Weapon의 BashTrigger가 준비되었습니다. Bash 기술을 사용하여 WeaponDetectCollider가 생성되었을 때 플레이어 주변의 Weapon들은 CanBash 상태가 됩니다. 하지만 많은 무기들 중에 플레이어가 원하는 무기를 선택할 수 있어야겠지요. 원하는 무기를 선택하기 위해선 조준선이 필요했습니다. 조준선은 SphereCast..