inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)

HP 연동 #1

프로퍼티의 get set

해결된 질문

306

sounds good

작성한 질문수 13

0

안녕하세요

Players의 PlayerDbId, Session의 프로퍼티는 {get; set;}으로 설정되었는데 ClientSession_PreGame의 AccountDbId는 {get; private set;}으로 설정되어있습니다.

AccountDbId는 이 클래스에서만 변경 가능함.. 이라고 설정해두는건 아마 오랜 경험이 있어야 될것 같습니다.

강사님은 보통 어떤 경우를 구분해서 프로퍼티를 설정하시는지 (대략적으로라도..) 궁금합니다~

MMORPG

답변 1

4

Rookiss

안녕하세요,

단순하게 생각해서 Session의 AccountDbId는 처음 한 번 세팅을 해주면
두 번 다시 바뀔 일이 없을테니 private로 막아놓긴 했지만,
그런 부분은 심오하게 고민할 부분은 아니고
이리저리 본인 스타일대로 고쳐도 무방합니다.

사실 저도 회사를 가기 이전에는 회사 코드는 뭔가
규격있는 스타일 및 노하우가 있을거라 생각했지만,
방대한 코드를 보면서 느낀건 (우선 이게 돌아가는게 신기하기도 하고)
100명의 작업자가 있으면 100명의 스타일이 뒤섞여 있기에
세세한 부분은 심각하게 고민할 필요가 없는 것 같습니다.

가령 가끔 질문들을 보면 [특정 함수는 왜 어떤 클래스에 넣었는지],
[전역 클래스, 싱글톤 등은 OOP에 어긋나니 사용하면 안되는거 아니냐] 등의 설계 질문을 종종 받는데
다른 소프트웨어와 다르게 게임은
워낙 사양 변화가 심하고 작업자가 많이 바뀌는 편이기도 해서,
이론적인 부분과 실제 작업하는 방식에는 많은 차이가 있는 것 같습니다.

결론 : 본인 편한대로 하고 잘 돌아가면 됩니다.
그리고 정말 그렇게 하다가 문제가 생기면
거기서 또 경험치를 얻는 부분도 생기니 미리 걱정할 필요가 전혀 없습니다.

마우스 이벤트 처리방법(오브젝트간 인터렉션)

0

623

1

RecvArgs_Completed에서 lock을 안하는 이유

0

517

1

Entity framework 질문드립니다.

0

576

2

json 직렬화

1

290

1

mmo 와 pvp

0

537

2

github로 프로젝트를 push, pull할 때 질문

1

530

1

Iocp 서버 관련 질문드립니다.

0

329

1

서버 관련 질문

0

398

1

DB 처리관련 질문이 있습니다

0

303

1

안녕하세요. 질문드립니다.

1

1511

2

이해한 것이 맞나 궁금합니다.

0

288

1

마이그레이션 파일이 이상합니다.

0

284

1

강의 마지막으로 질문 드립니다.

0

680

2

ItemDbId,구조 설계

0

265

1

MMO 서버 관리 질문 드립니다!

0

324

1

디비 정보 나누기

0

241

1

AccountDb 업데이트

0

309

1

콘솔창이 아니라 브라우저에서 실행

0

283

2

메모리 누수문제.

0

498

1

유니티에서 클라이언트 빌드후 실행하면 맵 로드가 안됩니다.

0

364

1

외부 네트워크에서도 접속해서 게임하기

1

339

1

유니티클라에서 패킷을 계속 보내지 않고 lockstep이나 추측항법으로 동기화를 할 수 있을까요?

0

597

1

서버 메모리와 DB 저장 관련 질문

0

370

1

JsonUtility.FromJson 관해서 질문있습니다.

0

279

1