프로젝트

    [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로 돌릴 수 있게 되었습니다.

    [RPG 개발] 21일차

    참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 학업 이슈와 건강 이슈로 인해 개발할 시간이 줄어들고 영 집중하지 못하다 오늘에서야 일정이 안정기에 돌입했습니다. 오늘은 간단한 코드 클리닝만 했지만, 내일부턴 제대로 개발할 수 있을 듯합니다. ​ 주된 클린업은 이렇게 함수 하나로 대체하는 작업이었습니다. 이참에 컴포넌트 선택지를 열 단위로도 추가할 수 있도록 선택지를 이차 배열로 만들었습니다. ​ 코드가 여전히 더럽긴 하지만 이로써 거대한 결점 하나가 사라졌으니 여러 번 반복하다 보면 코드가 깨끗해지리라 믿습니다. 다음엔 이벤트 종료 함수를 만들어 일관된 처리(컴포넌트 삭제, 유저 데이터 일부 초기화)를 시켜서 버튼 버그를 해결해야 하고, 새 아이템을 추가하고, 아이템 버프와 방어력 시스..

    [RPG 개발] RTTRPG

    참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. RTTRPG real-time-text rpg | 실시간 텍스트 rpg 이 게임은 타입 스크립트로 구성되어 디스코드 봇으로 작동하는 "실제 시간"을 따른 텍스트 RPG입니다. 공격과 이동, 회복 등 모든 시스템은 턴이 아닌 시간에 의존하여 작동됩니다. 텍스트와 실시간, 이 기이한 조합은 유저가 보이지 않는 타이밍과의 싸움을 가능케 하고, 긴장감을 늦추지 않도록 만들어 줍니다. 상대가 오만가지 수를 생각하는 동안 수십 초를 그냥 기다려야 하는 상황은 이 게임에서 일어나기 드물 것입니다. 초침이 겨우 한 칸을 지나가는 동안 어떤 무기를 장착할지, 어떤 아이템을 쓰거나 포션을 빨아야 할지, 어떤 마법을 사용할지 계산해야 하는 난이도는 그 정보를 ..

    [RPG 개발] 20일차

    참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 원래 새 콘텐츠를 만들려고 했습니다. 비록 어제 3개의 아이템을 더 추가했지만 겨우 포션과 잡탬이였기 때문이죠. 가장 중요한 방어구와 액세서리 추가와 관련 시스템을 만들려 했지만 그전에 코드를 어떻게든 개선했어야 했습니다. 사방에 any와 as가 널려있어 익셉션 터지는걸 조잡하게 막아놓고 어떤 건 심지어 unknown으로 형 변환해서 원하는 인터페이스로 다시 형 변환을 했습니다. 여기서 콘텐츠를 늘리면 언젠가 큰 뇌진탕이 올 것을 직감했고, 이전에 들었던 eslint를 알아봤습니다. eslint의 규모는 생각보다 너무나도 컸습니다. 설정 파일을 통해 확장 패키지를 설정할 수도 있었고, 규칙을 커스터마이징할 수도 있었습니다. 이걸 알아보다가 ..

    [RPG 개발] 19일차

    참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다. 이번에 자잘한 버그들을 많이 고쳐냈습니다. 또한 일부 개선도 이루어졌고요. 이후에도 가끔씩 이런 버그 및 개선 패치를 할 생각입니다. • 가장 최근의 전투 기록이 잘려서 나오는 버그를 고쳤습니다. • 무기를 장착할 때 내구도를 할당받지 못한 버그를 고쳤습니다. • 유저 상태창에서 치명타 확률과 배수가 뒤바뀐 버그를 고쳤습니다. • 이벤트 및 아이템 확률과 가치를 약간 조정했습니다. 이제 이전 전투 이벤트가 옛날보다 더 자주 나옵니다. • 전투 보상 아이템이 더욱 풍성해졌습니다. ​ 그나저나 알루미늄 검 치명타 대미지가 3.15나 되더라고요. 너무 사기라서 패치를 해야 할 것 같습니다. ​ 도감을 리메이크했습니다. 이제 발견되지 않은 콘텐츠는..