컨셉 > 아이디어 수집 > 시스템 설계 > 데이터 설계 > 플레이 테스트 > 게임에 적용
시스템 설계의 전후 과정에 대해 다룰 예정.
레벨에 대한 시스템에 대한 개념을 적는 작업을 진행.
어떠한 의도로 어떠한 컨텐츠를 만들었을 때, 다른 것들과 어울리는지 체크 해 봐야 함.
컨셉
느낌적인 느낌을 정리하는 것. 아주 구체적이지는 않다. 하지만, 너무 막연해서도 안된다.
확실한 지향점이 있어야 함. 앞으로 추가될 게임의 내용이나 시스템 설계, 데이터, 데이터의 기준 또한 마찬가지이다.
이 모든 것의 가이드를 만들어 주는 것이 컨셉.
구체적이지 않을 수는 있지만, 이를 토대로 아이디어를 만들 수 있어야 한다.
"이것을 지향해서, 이 목적지에 도달하기 위해서, 어떤 것을 만들 거야." 구체적인 타겟이 명확해야 한다.
아이디어 수집
일단 분량이 중요함. 팀 멤버가 50명이 있다면 50명에게 모두 받는 것이 좋다.
10개 내라고 해도 10개를 만들어내기 어렵기 때문. 중복이 있을 수 밖에 없음.
10개, 20개 가지고는 시스템의 큰 틀을 만들기가 어렵다. 너무 유니크하거나, 너무 범용적이라서 개성이 없거나.
컨셉이 없이 수집된 아이디어는 정말 쓸모없는 아이디어들이 절반 넘게 나오게 된다.
아이디어 수집의 가장 큰 미덕은 수량. 그래야 쓸모 없는 것들을 쳐낼 수 있다. 모아뒀다가 재활용 할 수도 있다.
지형 오브젝트
지형에 배치가 되고 플레이어와 상호작용이 가능한 것은 몬스터도 마찬가지이다.
몬스터와 지형 오브젝트의 차이는 무엇인가.
생명을 기준으로 하기에는 부수는 문이나 파괴하는 벽도 HP가 있을 수 있다.
PC, NPC, Monster, Citizen(비전투 NPC)
Monster가 아니면 전부 지형오브젝트라고 부른다.
Monster는 전투의 대상, 지형 오브젝트는 조작의 대상이라는 차이가 있다.
오브젝트
굉장히 광범위한 개념이다.
- 캐릭터와 대화를 할 수도 있고
- 전투를 할 수도 있다.
- 책상을 들어 던질 수 있다.
- 바닥에 보도블럭이 깔려있고, 위에서 걸어 다닌다. 던전이면 오브젝트, 터레인이면 오브젝트라고 하지 않는다.
객체이기 때문에 오브젝트라고 할 수 있다.
속성을 가지고 상호작용이 가능한 것을 주로 오브젝트라고 부르지만,
지형 오브젝트 시스템이라는 것은 보통 없다.
프로그래머가 말하는 오브젝트와
아티스트가 말하는 오브젝트와
게임 디자이너가 말하는 오브젝트가 다 다르다.
엔진에 있는 기본 용어들은 되도록 사용하지 않아야 한다.
몬스터는 게임마다 정의가 조금씩 다르다.
AI가 들어간 것, 보상 드랍을 하는 것을 전부 몬스터라고 하기도 한다.
우리가 정의한 몬스터 시스템에서 공통적으로 들어가는 특성들을 가지고 있다면 몬스터에 해당한다.
움직이고, 공격하는 속성은 몬스터가 맞지만,
움직이지 않는 석상들은 오브젝트가 아니라 그냥 배경이다.
우리와 반응하지 않으면 오브젝트가 아닌, 배경지물이다. 데이터가 없는 장식.
공격을 하면 작동한다거나 무언가의 데이터를 가지고 있으면 오브젝트이다.
공격했을 때 파괴되면 오브젝트.
다가갔을 때, 소리가 나는 것은 다른 문제이다. 소리가 나는 형태 없는 NPC를 배치하면 그만이기 때문.
플레이어가 공격했을 때, 소리가 나면서 가라앉으면 오브젝트이다.
비슷하게 생긴 석상의 데이터가 몬스터에 있다면, 몬스터이다. 외형과 분리해서 생각해야 한다.
오브젝트 시스템이라는 것은 없다.
포탈
좌표를 이동하는 대표적인 매체.
- 단방향
- 양방향
모든 데이터는 일방향으로 흘러야한다.
양방향 포탈 또한 지정된 각 좌표로 보내는 것.
서로 맵핑이 되는 것은 만들지 않는다. 그럴 필요도 없을 뿐만 아니라, 휴먼 에러가 생길 가능성이 높다.
3D 게임의 경우 좌표와 관련된 문제가 많이 발생한다. 이러한 문제 때문에 탈출에 대한 기능을 제공하는 경우가 많다.
랜덤한 위치로 보내게 될 경우, 좌표를 여러개 찍고 그 중에 하나로 보낸다.
래버로 포털의 목적지를 조작할 수 있는 경우
1. 레버 조작 (사지선다)
2. 레버에서 설정한 목적지에 따라 포털 모습 변경
3. 포털에 다가가서 상호작용 (조작)
4. 레버로 설정된 목적지로 이동 (좌표이동)
5. 다시 되돌아 올 수 있음
레버와 포털은 별개의 시스템을 가진다.
존 로딩은 하드웨어의 사양을 탄다.
이동하게 되거나, 새로 로그인을 하게 되면 한동안은 공격을 받지 않게끔 범용 기능으로 제작한다.
포탈마다 다 다른 안전 범위를 가지고 있게 되면 좋은 경험이 아니다. 피로해지는 문제가 있어 보통 일괄적으로 적용한다.
박스
보상 지급을 위한 매체. 대미지를 받으면 파괴가 된다. 꽝이거나, 보상이 있거나.
파괴를 해서 열 수 있는 상자와 열쇠로 열 수 있는 상자.
상자가 열리면 보상을 지급하지만, 상자가 파괴되면 보상을 지급하지 않게 하려면 어떻게 해야 하는가?
HP : Type에 따라 지정.
보물상자와 열쇠의 데이터는 어떻게 관리되는가.
데이터는 단방향이여야 한다. 누가 데이터를 포함하는가.
열쇠는 아이템이다. 아이템은 아이템 공통의 시스템을 거친다.
보물 상자는 열쇠를 가지고 있을 가능성이 크지만, 열쇠는 그렇지 않을 수 있다.
열쇠의 데이터를 상자가 가지는 것이 좋다.
문
통로를 막는 매체.
트랩을 밟으면 문이 열린다고 했을 때, 트랩과 문은 별개의 시스템이다.
퍼즐 조각을 맞춰야 하거나, 문항을 맞춰야 하는 등 트리거가 복잡하게 연결되어 있는 경우가 많다.
과제
문을 만들어 오는 것. 76개의 문 중에서 진짜 문을 추려내 올 것. Door Data Table을 엑셀로 제작 할 것.
40개의 문만 추려졌다면, 40개의 데이터를 만들어 올 것.
id(숫자열), name(code명, 영문), name_ui(생략 가능), _desc(동작에 대한 설명), 그 외의 필요한 것.
아이템 데이터가 나온다면, 아이템 테이블도 만들 것.
화요일 23시 59분까지.
기말고사
6월 15일이 14주차, 6월 22일이 마지막 수업.
6월 15일에 시험 진행.
10문항 예상됨, 논리문제 존재. 이제까지 수업 시간에 진행한 모든 것에 대한 시험 진행.
엑셀 데이터 손으로 세도 됨(가능하다면.) 함수 구글링 가능.
스샷 찍지 말 것.
문 수량 적기.
지형오브젝트
- Portal
- Box
- Door
- Trigger
- Spawn
'대학생활 > 수업' 카테고리의 다른 글
게임네트워크프로그래밍 12주차 - 게임프로그래밍 포트폴리오 (0) | 2023.06.05 |
---|---|
게임음악작곡법 11주차 - 투 코드 톤, 패싱 노트, 아르페지오 (0) | 2023.06.01 |
게임데이터설계 12주차 - 가챠 시스템의 활용 (0) | 2023.05.31 |
게임알고리즘 11주차 - Balanced Tree, AVL Tree (0) | 2023.05.31 |
게임프로그래밍고급 13주차 - 군집 시뮬레이션 (0) | 2023.05.30 |