0302 인턴십

최태선·2022년 3월 2일
0

ICT인턴십

목록 보기
2/19

LockStep

모든 클라이언트의 입력을 받은 후에만 게임 로직이 진행되므로 모든 클라이언트가 동일한 게임 상태를 보고 있도록 만들 수 있음. 턴제게임이 1/60초마다 한번씩 지속된다고 생각하면 이해가 편하다.

Simulation - 로직 돌리는 것
Presentation - 보여주는 것
서버가 통신할 때 커맨드를 매초 30프레임

싱글톤

디자인패턴중 하나
ex) DatabaseManager2를 만들고 싶을때 단 하나만 존재함을 보장하기 위해서 생성자를 내부에 if문으로 처리하여 코딩하는 방식

단축키

단축키 Ctrl + . 으로 button 등 기본 엔진에서 제공하는 클래스를 사용하려는데 사용하지 못할때 이 단축키를 사용하면 자동으로 기능을 제공하는 클래스를 찾아줌.

Gitignore

gitignore를 사용하면 git에 업로드하지 않을 요소를 지정해줄 수 있음.
예를들어 Visualstudio 설정같은 부분은 개발자마다 사용 방식이 다르기 때문에 이것을 git에 올릴필요 없으므로 gitignore파일에 추가하여 이를 막을 수 있다.

코딩표준

닷넷스파이더가 제공하는 코딩표준으로 작성할것
코딩표준

하드코딩 하지 말것

하드코딩이란 소스코드에 데이터를 직접 입력해서 저장하는 것을 말한다. 하드코딩이 많아지면 소스코드를 보고 그것의 의미를 단번에 파악하기 힘들어지고, 유지보수가 힘들어진다.
참고블로그

Adressable

Adressable을 활용하면 패치를 진행할 때 항상 모든 파일을 패치하는 것이 아닌 변경된 파일만 패치하도록 만들 수 있다.

SimulationManager

Unity는 기본적으로 업데이트 순서를 지정할 수 없는데, 이 프로젝트는 RTS 게임이기에 업데이트 순서를 지정해줄 필요가 있었고, 이것을 List자료형의 processes 클래스를 생성해 구현했다. 좀 더 코드분석과 공부가 필요.

EventManager

상호참조를 피하기 위해 EventManager클래스를 활용해 중재자역할을 하게끔 구현했다.

Dictionary

Dictionary는 게임 개발에서 자주 쓰이는 자료구조이다.

Type(키)에 대한 Action을 저장할 수 있다.

Where T

Where T를 활용하면 T에 대한 제한을 걸 수 있다.
T는 IEventBase의 인터페이스를 반드시 구현해야함

의문점

main에서 EventManager.instance.SendEvent()라는 방식으로 사용되어있는데 클래스 생성하지 않고 메소드를 사용 가능한 것인가?

profile
최태선입니다

0개의 댓글