지난주 ReplicateDelete() 메서드를 구현하면서 서버에서 소멸자 호출되어야 할 gameObject의 소멸자가 호출되지 않던 문제가 있었다. 추가된 변경점에서 잘못된 코드를 파악해 수정하여 정상 기능하도록 만들면서, 현재 객체의 포함 상태를 한눈에 볼 수 있는 class diagram이 문제를 이해하는 데에 도움이 되었다.

1000023371.jpg

그래서 이참에 전체 게임의 흐름에 대한 큰 그림의 class diagram을 그려보고자 한다.

개선사항 정리

  1. 별개의 thread로 돌아야하는 것들은 main에서 분기해주도록 만드는 게 좋겠다. join 모아두기 위함.
  2. isRunning 변수가 Engine에 있는 게 아니라 Main에서 관리하고, 모든 thread에서 참조하여 사용토록 개선해야겠다. Engine에 존재하기 어색한 변수.

한 판의 게임이 하나의 scene이다. 지금까지 만든 것들은 scene으로 관리되어야 한다. scene이 곧 Level이다. Client 기준으로, Login Scene, Match Making Scene, Level Scene.

actor 추가, simulate, lock/unlock 모두 pxScene 단위로 동작한다. 아래 code로 scene을 만들어내니까, scene은 하나의 게임 단위로 여러 개 만들어서 관리해야 한다. → scene은 map or vector로 만들어야 한다!

pxScene = pxPhysics->createScene(sceneDesc);