좋은 구조란? 뭔가를 고쳐야 할때 그럴줄 알았다는 듯이 코드가 준비되어있는걸 의미한다. 프로그래밍에서 가장 오래 걸리는 부분은 기존 코드를 이해하는 부분이다. 그렇기 때문에 작업에 들어가기 전에 알아야 할 지식의 양을 줄이는 것이 소프트웨어 구조의 핵심 목표이다. 커플링이 적은 코드일 수록 변경하였을때 나머지 게임코드에 미치는 영향이 적다. 소프트웨어 구조와 추상화가 게임의 성능을 저하시킨다는 비판도 있다. 코드르르 유연하게 만드는 많은 패턴이 가상함수, 인터페이스, 포인터, 메시지 같은 메커니즘에 의존하는데 다들 어느정도 런타임 비용을 요구한다. 성능은 가정에 기반하고 최적화기번ㄴ은 구체적인 제한을 선호한다. 적이 256개 이하일거라고 확신하면 ID를 1바이트로 압축할 수 있다. 한 자료형의 한 메서드..