프로젝트/RTTRPG
[RPG 개발] 17일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 컴포넌트와 라이브러리 사용에 점점 능숙해지고 있습니다. 문제는 코드가 또 급팽창하여 줄 수가 엄청난다는 것인데요, 이참에 EventData 클래스를 따로 분리하는 게 나을 듯합니다. 각 이벤트마다 EventData를 상속하는 클래스를 생성하여 /walk 명령어에서 특정 메서드를 호출하게끔 만들면 되겠죠. 이러면 • 새로운 이벤트 제작이 편리해집니다. 길가다가 줍는 두 이벤트를 하나로 줄일 수 있듯이요. • 코드가 다시금 깨끗해집니다. 이벤트 관련 함수들이 모두 다 관련 클래스로 들어갈테니 가독성이 더 오르겠죠. • 유지보수가 향상됩니다. 각 이벤트 클래스들이 상속할 EventData 클래스에 중첩되는 속성들을 넣어둬서 값을 수정하거나 문제를..
[RPG 개발] 16일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 요즘 학업이라든지 명절이라든지 여러 가지의 이유로 바빴습니다. 오늘의 개발 시간만 추려봐도 2~3시간인걸 보면 평소의 주말 평균 5시간과 달리 크게 줄어듦을 알 수 있습니다. 이 과정에서 여러 가지 스트레스도 쌓였고, 미해결 된 구조 개선을 기다리기엔 제가 지루해서 카카오톡과의 관계를 어떻게 해결해야 할지 고민하다 그냥 브랜치로 때어놓고 디스코드 봇 개발만을 선택했습니다. 덕분에 코드가 많이 클린해졌습니다. 이참에 Message 타입 구조를 완전히 새로 만들었고, 이 과정에서 메신저봇의 Message 속성은 거의 모두 제거되었습니다. 대신 임베드 Builder와 상호작용 CommandInteraction 객체를 대신 넣었습니다. 임베드의..
[RPG 개발] 15일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. https://www.npmjs.com/package/discord.js-pages 모듈과 디스코드 임베드, 버튼 기능, 코드 블록의 색 기능을 이용하여 밍밍한 텍스트 전투 장면을 향상했습니다. 도파민이 주체를 못 하고 있습니다. 임베드가 지금까지 절 잡아두던 문제들 중 대다수를 쓸어버렸습니다. 이용자들의 제안도 임베드 추가가 주 맥락이였고, 사실 디스코드 봇이라는 특징을 부각하기 위해 임베드는 언젠가 추가할 생각이었습니다. 하지만 누가 누굴 공격하는지 알기 어려운 점, 배경과 글자만 있는 텍스트 게임의 불가피한 밍밍한 스타일, 조잡한 수제 선택지 시스템의 여러 버스 등을 해결했어야 했지만, 너무 지쳐서 그냥 코드 디자인은 나중으로 미루..
[RPG 개발] 14일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 개발을 하면서 생긴 불편 중 하나가 명령어 새로고침 딜레이가 너무 길다는 점이였습니다. REST API로 디스코드에 요청해서 값을 넣고 가져오는 게 기본 원리인데, 84초나 걸립니다. 대체 왜그럴까 코드를 읽어보니 모든 명령어를 삭제하고 모든 명령어를 다시 등록하던 것이었습니다. 이건 변경되지 않은 명령어도 불필요한 삭제•재생성 과정을 거치기 때문에 명령어 추가와 정보 편집 효율에 너무나도 큰 영향을 끼칩니다. 200 요청 제한을 다 사용할 정도였으면 말 다했죠. 그래서 직접 고치려 했으나 구조를 직접 짠 당사자도 아니거니와 정작 이 구조는 미완성이기도 해서 그만뒀습니다. PvE 시스템을 개발 중입니다. 이걸 완성하면 머지않아 PvP..
[RPG 개발] 13일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 슬레쉬 명령어를 통한 함수 사용에 성공했습니다. 이전에 구조를 잘 짜둔게 정말 큰 도움이 되었습니다. 디스코드는 봇이 보낸 메시지를 스스로 수정할 수 있는 .editText 메소드가 있으니 임베드 기능과 함께 도배 방지에 집중..하기 전에 일단 모든 명령어를 포팅해야 합니다. 계정 등록이나 로그인 명령어는 DM에서 해야 하기 때문에 그부분도 만들어야죠. 슬레쉬 명령어의 가장 큰 장점이라면 이걸 뽑을 수 있겠습니다, 바로 옵션 기능이죠. 굳이 원하는 매개변수가 아닐 경우를 생각하지 않아도 됩니다, 옵션에서 다 제시해주니깐요! 필수 인자를 생략하면 슬로우 모드처럼 화면이 흔들립니다.
[RPG 개발] 12일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 언어적으로 Rhino.js -> Node.js + Typescript, 플렛폼적으로 카카오 -> 카카오 + 디스코드 전환을 병행하다 보니 일부가 아니라 정말 모든 명령어에서 문제가 생겼습니다. 고질적인 버그까지 저를 동시에 괴롭혀서 오늘 게임적 버그 대부분을 퇴치했습니다. 위 사진을 보다시피 게임 대부분이 번역되었습니다. 또한 내구도 시스템 역시 정상 궤도에 올랐습니다. 짱돌이 드디어 제대로된 내구도를 가졌네요! 고블린 인벤토리가 고루 분포되었습니다. 물가 역시 올랐고요, 아직 게임 콘텐츠와 구조에 몰두할 때라 밸런스에 소홀히 다룰 생각입니다. 그나저나 고블린 출현율이 정말 드물게 나와서 만족스럽습니다. 유저가 어느정도 아이템이 모였을 ..
[RPG 개발] 11일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 한 스크립트에서 디스코드 봇과 카카오톡 봇을 동시에 돌리는 데 성공했습니다. 게임 모듈을 공유하면서 생긴 가장 큰 문제가 모듈로 전달할 Message 객체는 remote-kakao의 인터페이스인데 이를 디스코드와 어떻게 공유하는가 였습니다. 답은 의외로 간단했습니다. remote-kakao의 인터페이스를 쓰지 않고, 대신 새 타입을 선언하고 카카오와 디스코드 두 서버 콜백함수에서 타입에 맞는 객체를 생성하여 onMessage 함수로 전달하는 것이였죠. 테스트를 해본 결과 외국인도 도배 본능은 똑같나 봅니다.
[RPG 개발] 10일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 요즘 많이 바빠서 글을 올리지 못했습니다. 타입스크립트 포팅 + 구조 개편 + 언어 분리 + 번역 + 이로인해 발생된 버그 수정을 한번에 다 할려니 이리 치이고 저리 치였습니다. 심지어 한번은 깃 문제로 파일이 하나 날라가서 멘탈도 손상을 입었고요. 그래서 하루씩 띄엄띄엄 근황을 전해드리고자 합니다. 대충 번역이 끝나고 기존 기능이 모두 다 정상적으로 작동될 때 다시 일일 글을 올리도록 하죠. 그리고 이참에 깃허브로 새로 만들었습니다. 별총을 쏴주세요! https://github.com/Sharlottes/RTTRPG