전체 글
[RPG 개발] 디스코드 봇 개발(2)
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 개선 이전 이후 사실 코드를 짜고 테스트를 할 때마다, 이 약간의 컴파일 딜레이가 굉장히 거슬렸습니다. 어느 부분에서 얼마나 걸리는지 확인을 했고, 스크립트 초기화 과정만 약 5초가 걸린단 사실을 알아냈습니다. 먼저 불필요한 명령어 초기화를 걷어냈습니다. 이들은 애당초 디코 봇 개발 초기, 게임 기획 이전부터 약간의 연습과 슬래시 커맨드 등록 자동화를 위해 만들었던 일종의 샘플들이었기에 굳이 지금 사용할 필요가 전혀 없기 때문입니다. 두 번째로 명령어 초기화도 최적화를 했습니다. 이 초기화 과정은 게임을 재시작할 때마다 실행되는 초기화 과정과 달리, 디스코드 API 요청을 통해 소스코드에 저장된 명령어들을 디스코드에 업로드하는 과정입니다..
[RPG 개발] RPG 개발중
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 구조적 개선. 이를테면.. • 한 아이템 스택에서 모든 아이템이 하나의 내구도를 공유 • 유저와 엔티티가 자체적인 공격 쿨타임을 지녀 공격 책임이 분산 • 자신의 인스턴 스을 인자로 받는 정적 메서드 게임 개선 • 기존에 존재하던 불규칙적인 런타임 DiscordAPI 에러 • 제대로 적용되지 않는 번들 시스템 • 불필요한 계정 생성 단계(다중 계정) • 매우 불필요한 전투/교환 이벤트 책임 분산 게임 시스템에서 유저에 대한 의존성을 크게 낮췄습니다. 다중 계정을 깔끔히 포기하고 대신 번들 시스템을 부활시켰습니다. 각 이벤트들을 Manager 클래스로 묶었습니다. 각 Manager 클래스에서 그 이벤트와 관련된 모든 것들이 처리..
[RPG 개발] 신나는 로컬라이징
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 인터렉션의 언어 속성 지원이 짐을 많이 덜어준 것 같습니다. 반쯤 내려놓던 기능이었는데 다중 계정을 깔끔히 덜어내니 바로 눈에 보이네요. 다중 계정과의 의존은 없었지만 그걸 계기로 새롭게 달성한 것이니 아이러니하죠.
[RPG 개발] 26일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 선택지 임베드 개선: 전/후 선택지 결과 메시지를 임베드에 포함시켰습니다. 전투 임베드 개선: 전/후 체력 바와 부분별 제목을 추가했습니다.
[RPG 개발] 25일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 유저 상태창을 크게 개선했습니다. canvas 모듈을 통해 임베드 썸네일 자리에 경험치 바를 넣었으며, 유니코드 바를 통해 일부 스탯을 표현했습니다. 이후에도 표시할 정보가 늘어날 때마다 개선을 거듭할 생각입니다. 전투 시스템을 완벽히 고쳤습니다. 업데이트 동기화 문제와 전투 결과가 씹히는 문제를 해결했습니다. 교환 시스템을 완벽히 고쳤습니다. 이제 아이템이 0인 항목 버튼은 자동으로 사라지며 정상적으로 저장됩니다. 저 첫 번째 발견 알람 역시 저장 오류로 인한 문제였으며, 오늘 고쳤습니다. 이제 콘텐츠 구조를 크게 개선할 차례이지만, 학생의 신분으로 인해 불안정한 개발 시간에서 구조 설계를 온전히 해내는건 힘들거라 봅니다. 때문..
[RPG 개발] 24일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. https://github.com/Sharlottes/nodejsbot/commit/ca04caef374b5efbee73a4e12950249d9fba0e2a update · Sharlottes/RealTimeRPG@ca04cae Show file tree Showing 20 changed files with 5,667 additions and 6,887 deletions. github.com 이동한 새 개발환경의 변경점을 모두 푸시했습니다. 다음에도 일지마다 커밋 기록을 올릴 생각입니다. 게임 진입점 격인 rpg_. ts에서 굳이 처리할 필요가 없는 코드들을 모두 다 정리했습니다. 대표적으로 전투, 교환, 명령어, 유저 관련 함수 및 변수들..
[RPG 개발] 23일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 큰일이 났습니다. 이 프로젝트에서 4번째 주가 막 지났는데 주된 성과물이 하나도 없습니다. 이게 대체 무슨 일일까요? 원인은 위 버그로부터 비롯됩니다. setDescription을 통해 새 메시지를 추가했지만 editReply를 통한 컴포넌트 제거는 이루어지지 않았습니다. 동기로 처리했기 때문이라고 생각해서 await async를 사용해봤지만 컴포넌트가 제거되고 다시 생성되는 기이한 버그가 대신 절 반깁니다. 이건... discord.js-pages 모듈을 사용한 문제라고 봅니다. 사실 이 모듈은 인터렉션과 임베드, 컴포넌트를 접한 계기로 작용했지만 정작 이걸 사용할 타당한 이유는 명시되지 않았습니다. 이참에 이걸 왜 사용해야 하는지 알..
[RPG 개발] 22일차
참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 이전에 말씀드린 라즈베리파이 서버를 통해 봇을 24/7로 돌릴 수 있게 되었습니다.