게임 개발

  • 적용 예제 앞의 대포 예제를 기반으로 해시 그리드 광범위 충돌 검사를 구현해 보자. 이번에는 이 절에서 지금까지 다룬 내용을 모두 포함하도록 예제를 전체적으로 재작성할 것이다. 아울러 대포와 포탄뿐 아니라 맞출 목표물도 추가할 것이다. 여기서는 예제를 간단히 하기 위해 0.5×0.5 […]
  • 광범위 충돌 감지와 미세 충돌 감지 아직까지 객체와 경계 도형 사이의 충돌 검사를 어떻게 하는지 배우지 않았다. 이런 충돌 감지 범위로는 두 가지가 있다. – 광범위 충돌 감지: 이때는 어떤 객체들이 잠재적으로 충돌할지 판단한다. 예를 들어 서로 충돌할 수 […]
  • 세계에서 움직이는 객체들이 있다면 이들 객체가 서로 상호작용하는 게 좋다. 이런 상호작용 모델 중 하나가 바로 단순 충돌 감지다. 두 객체가 어떤 식으로든 중첩되면 두 객체는 충돌한 것이다. Mr. Nom 게임에서 Mr. Nom이 자신을 물었는지 잉크 얼룩을 먹었는지 판단할 때도 […]
  • 이 절에서는 아주 간단하고 제한적인 물리 이론을 적용해볼 것이다. 사실 게임에서는 모든 걸 가짜로 구현한다. 게임에서는 가능하다면 무거운 연산을 제거하는 속임수를 사용한다. 게임에서 객체의 행동은 물리적으로 100퍼센트 정확하지는 않다. 다만 실제처럼 믿을 수 있는 수준을 유지할 뿐이다. 또 때로는 물리적으로 […]
  • 여기서는 2D 벡터를 쉽게 사용할 수 있는 클래스를 생성하려고 한다. 이 클래스는 Vector2라고 부르겠다. 이 클래스에는 벡터의 x, y 요소를 포함하기 위한 두 개의 멤버가 있어야 한다. 추가로 다음과 같은 기능을 하는 메서드도 제공해야 한다. – 벡터의 덧셈과 뺄셈 – […]
  • 앞 장에서는 벡터를 위치와 혼동해서는 안 된다고 언급한 바 있다. 이 말은 꼭 맞는 말은 아니다. 어떤 공간에서는 벡터를 통해 위치를 표현할 수 있기 때문이다. 실제로 벡터는 다양하게 해석할 수 있다. – 위치: 위치는 이전 장들에서 좌표계의 원점을 기준으로 엔티티의 […]
  • 게임의 시야와 함께 플레이어가 알아야 하는 다른 정보와 수행해야 하는 동작을 고려할 필요가 있다. 이러한 사항에는 게임 내의 지점이나 진행 상황, 다른 유닛의 상태, 다른 플레이어와의 의사소통, 항상 제공되는 선택 사항 또는 동작을 수행할 수 있는 특별한 기회가 있다. 이 […]