나중에 개발 시스템에서 성과 시스템을 구현할 수 있습니까?


12

당시 게임에서이 기능을 구현할지 여부는 미정입니다. 나는 프로젝트가 통제에서 벗어나기를 원하지 않기 때문에 핵심 역학에 먼저 중점을두고 있습니다.

데이터를 모두 저장하고 모든 것을 저장한다고 가정하면 나중에 구현하기 쉬운 기능입니까?


3
몇 년 전에 잘 알려진 특정 DOS 게임을 창으로 이식했습니다. 게임 플레이를 변경하려고했을 때 추가하고 싶었던 것 중 하나는 업적이었습니다. 따라서 10 년이 넘은 게임에 업적을 추가 할 수 없다면 분명히 아무 데나 추가 할 수 있다고 말할 수 있습니다.
도대체이

답변:


19

구현 기술 또는 디자인의 결과에 대한 관점에서 질문하고 있습니까? 어느 쪽이든, 귀하의 질문에 대한 대답은 "예"입니다.

기술 측면에서 일반적으로 말하면 코드에서 성과 이벤트에 응답하고 통계 추적 코드를 넣는 후크를 찾는 것입니다. 게임에서 이미 벌어지는 개별 이벤트가 아닌 것을 추적하는 경우 새로운 것을 추가해야 할 수도 있습니다 (예 : X 재생 시간).

사물의 디자인 측면에서, 성과는 외적 동기 부 여자이며 그것을 추가하는 것이 실제로 그것을 추구하려는 사람들을 제외하고 핵심 게임 플레이 루프에 너무 많이 참여하지는 않습니다. 그래서 그들은 상관없이 꽤 안전합니다.


예, 지금하고 있습니다. shotsFired++새로운 총알이 인스턴스화 shotsHit++되는 부분 과 총알이 다른 플레이어에게 영향을 미치는 부분 에 연결하는 것은 매우 쉽습니다 . 총알을 쏜 사람을 추적하는 데 도움이되었습니다 (정보를 사용하여 누가 죽일 수 있는지 추적하기 때문에)
bobobobo

5

게임 엔진이 잘 설계되고 어떤 종류의 관찰 가능한 이벤트 시스템 (관심있는 당사자가 이벤트를 생성하고 청취하는 경우)을 사용하는 경우 나중에 업적 시스템을 "플러그인"하는 것이 훨씬 쉬워야합니다. 적절한 청취자). 이런 종류의 디자인은 매우 유연합니다.


2

이미 기존 사람들이 좋은 답변을 추가 했으므로 발견되지 않은 상황에 답변하겠습니다.

게임 코딩을 완료하고 이제 코드 업적을 코딩하기 시작한 위치에 있고 너무 많은 변수와 카운트를 유지하고 특정 이벤트 및 그와 같은 상황에서이를 지우는 것이 매우 복잡한 것을 발견했습니다.

모든 이벤트를 수신하기 위해 항상 하나의 클래스 (바람직하게는 싱글 톤)를 작성할 수 있습니다. 이제 모든 업적을 나열하십시오. 그런 다음 추적해야하는 모든 게임 이벤트를 나열하십시오. 예를 들어 내 현재 목록은 다음과 같습니다

KILL ENEMY-걷기, 총알 PLAYER DEATH-떨어지기, 건강 ENTER_ROOM, EXIT_ROOM 등

걷기, 총알과 같은 추가 세부 사항은 매개 변수가 될 수 있습니다. 이제 해당 성과 추적 클래스에 fireEvent라는 함수가 있습니다. 이벤트를 발생시켜야하는 코드의 모든 위치를 검색하고 해당 함수를 호출하십시오. 이제 Achievements 수업에서 나머지 더러운 작업을 수행하십시오. 이는 기존 코드 및 코드 성과를 방해하지 않는 가장 안전한 방법입니다. 그것은 나를 위해 아주 빨리 해결되었습니다.


그것은 사후 개발 구현에 정말 좋은 솔루션입니다. 구현할 것인지 확실하지 않기 때문에 이것을 명심하십시오. 프로젝트의 범위를 통제하기를 원하지 않기 때문에 나중에 수행 할 수도 있습니다.
Bryan Harrington
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.