본문 바로가기

Game/MSW

(7)
메이플스토리 월드로 게임 만들기 - 7 보유하고 있지 않던 스킬을 획득하면 SkillMom 엔티티가 생성되고, 엔티티에서 스킬 사용을 관리하도록 만들었다. 잘 작동한다.
메이플스토리 월드로 게임 만들기 - 6 SkillManager에서 스킬 사용을 관리하기 위해 skillInfo 테이블에 쿨타임과 데미지 정보를 넣었다. 5레벨을 달성한 스킬은 레벨업 UI에서 제외하기 위해 skillInfo[idx]에 max 변수가 추가된다. UILevelUp 컴포넌트의 GetRandomSkills 함수를 살짝 수정했다. 이제 5레벨을 달성한 스킬은 랜덤테이블에서 제외되고, 남은 스킬이 3개 미만일 경우 에러 스킬(인덱스 -1)이 UI이 표시된다. 레벨도 반영되어 표시되도록 수정하였다. 스킬을 계속 찍다보면 에러 스킬이 나오는 것을 확인할 수 있다.
메이플스토리 월드로 게임 만들기 - 5 HTML 삽입 미리보기할 수 없는 소스 몬스터 스폰을 오브젝트 풀링 방식으로 구현하였다. 잘 작동한다.
메이플스토리 월드로 게임 만들기 - 4 먼저 UI 프리셋 중 대화창 UI를 개조하여 레벨업 UI를 만들었다. HTML 삽입 미리보기할 수 없는 소스 그리고 스킬의 정보를 저장하기 위해 SkillManager 엔티티와 컴포넌트를 만들었다. HTML 삽입 미리보기할 수 없는 소스 UILevelUp 컴포넌트도 만들었다. LevelUp() 함수가 호출될 때 SkillManager에서 스킬 정보를 불러와 그 중 3개의 스킬을 UI에 표시한다. 각 스킬 이미지에 ButtonComponent를 추가하면 잘 작동하는 것을 확인할 수 있다.
메이플스토리 월드로 게임 만들기 - 3 Lobby 맵에 아무것도 없으면 조금 허전할 것 같아서 튜토리얼 NPC를 추가하기로 했다. 빈 엔티티를 하나 만들고, SpriteRendererComponent와 TransformComponent를 추가했다. UI 프리셋 중 대화창 프리셋을 가져와 작업을 시작했다. HTML 삽입 미리보기할 수 없는 소스 코드는 꽤 길지만 내용은 어렵지 않다. ConnectEvent로 버튼을 누르면 함수가 실행되도록 연결하고, dialogData 테이블에서 대화 정보를 가져와 출력한다. DataSet이 아니라 테이블로 대화 정보를 관리하는 이유는 가시성과 확장성이 좋기 때문이다. 잘 작동한다. NPCTuto를 터치해야 튜토리얼 UI가 나오도록 하기 위해 DialogTuto의 기본 Visible을 false로 설정하고, N..
메이플스토리 월드로 게임 만들기 - 2 UI 프리셋에서 상태창을 가져와 조금 수정했다. 단, 이대로 놔두면 이름과 체력 외의 수치는 작동하지 않는다. 레벨, 체력, 경험치 등의 정보를 관리하기 위해 DefaultPlayer에 PlayerStat 컴포넌트를 만들었다. PlayerComponent에도 Hp, MaxHp가 있긴 하지만 하나의 컴포넌트에서 처리하고 싶어 새로 만들었다. HTML 삽입 미리보기할 수 없는 소스 상태창 프리셋을 가져올 때 자동으로 생성된 UIMyInfo 컴포넌트를 수정하여 UIStatus 컴포넌트를 만들었다. UIStatus가 정상적으로 작동하는 것을 확인할 수 있다.
메이플스토리 월드로 게임 만들기 - 1 평소 메이플스토리에 관심이 많아서 작년에 메이플스토리의 리소스를 자유롭게 사용해서 게임을 만들 수 있는 프로젝트 MOD가 공개되었을 때 기대가 되었다. 그래서 베타테스트 신청을 하였지만 아쉽게도 당첨되지 않았다. 하지만 올해 9월 1일 메이플스토리 월드(MSW)라는 새로운 이름으로 정식 시범 서비스가 시작되어 누구나 사용할 수 있게 되어 MSW로 게임 프로젝트를 진행하기로 했다. 게임은 매직 서바이벌을 모티브로 하여 '메이플 서바이벌'이라는 게임을 제작하기로 했다. 사방에서 몰려오는 몬스터들을 처치하고 레벨업하는 방식의 게임이다. Lobby - InGame(인스턴스맵) 구조로 만들기 위해 기본 맵 세팅 중 인스턴스맵을 사용한다. 횡스크롤맵으로 생성이 되었는데 매직 서바이벌류 게임을 위해서는 탑다운뷰가 필..