참고: 이 일지는 네이버 카페로부터 옮겨진 레거시 게시물입니다.
최근 메시지 접근 구조를 완전히 바꿨습니다. 이제 데이터의 키는 상호작용의 id입니다. 최근 메시지에 대한 의존성을 제거하면서 유닛과의 의존성 역시 많이 제거했습니다.
불필요한 파일들을 대거 정리했습니다. 대개 게임 개발 이전에 테스트 용도로 만들어뒀던 파일들입니다. 이참에 gitignore도 업데이트하고 config.json에서 불필요한 값들을 모조리 제거했습니다. Content.ts의 수많은 클래스들은 content/ 딕셔너리 안에서 모두 모듈이 되었습니다. 게임과 관련된 모듈은 모두 game/ 딕셔너리 안으로 이동되었습니다.
![](https://blog.kakaocdn.net/dn/kBc4a/btrSLJSHtu8/FKDFw5ix13PmK7AxwaWBE0/img.png)
번들 적용 범위를 디스코드 locale에 맞춰 확장했습니다. 해당 프로퍼티 파일이 없을 경우 기본값인 en-US를 대신 사용합니다.
Discord Developer Portal — API Docs for Bots and Developers
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
discord.com
![](https://blog.kakaocdn.net/dn/IkQmq/btrSQUZ46cm/SHmOduEuqJiv3l7pJdBpU1/img.png)
유닛 엔티티와 유저 클래스의 공통된 속성들을 모두 EntityI로 묶었습니다. 이 인터페이스는 이제 유저나 유닛 엔티티가 모두 사용하거나 사용되는 함수들에 사용되어 추상화를 향상시킬 것입니다.
![](https://blog.kakaocdn.net/dn/EtW1T/btrSMHAjEDT/CDDHSe9u4Hp0YqlKsVk2U1/img.png)
sneaky-weight-4ab.notion.site
TODO 노션에서 개발 예정인 것과 개발 중인 것, 개발 완료된 것들을 볼 수 있습니다. 이 TODO 노션의 핵심 목적은 최소한 머릿속의 "아 할 거 없다"가 안 나오게 만들기 위함입니다.
![](https://blog.kakaocdn.net/dn/bYDxdX/btrSKuOZETL/nXJmx74yJCwu5sZTRdZCh1/img.gif)
상태 이상을 추가했습니다. 상태 이상은 엔티티에게 특정 효과를 부여하는 "콘텐츠"입니다.
임베드 렌더링 구조를 바꿨습니다. 이전 임베드 렌더링은 사실 무기 쿨타임으로 인해 1초~ 정도로 송-수신 딜레이를 감수할 정도의 간격이 있었지만, 새로운 렌더링은 쿨타임을 무시하고 무조건 0.1초마다 렌더링 요청을 보내기 때문에 기존에 가려졌던 송-수신 딜레이 문제가 드러났습니다.
아래와 같이 렌더링 순서가 꼬이는 것을 막기 위해 queue로 렌더링을 선입 후출 시키고 interval에서만 렌더링을 하도록 변경한 결과 비동기화가 많이 개선되었습니다.
하지만 그럼에도 불구하고 0.1초마다 http요청을 보내는 시스템은 매우 좋지 못하므로 근본적인 게임 시스템을 바꿀 필요가 있습니다.
![](https://blog.kakaocdn.net/dn/bxta34/btrSRQJ18I7/lUC9jJ9w0HXPQD96Drd9kk/img.jpg)
'프로젝트 > RTTRPG' 카테고리의 다른 글
[RPG 개발] 43일차 (0) | 2022.12.05 |
---|---|
[RPG 개발] 근황 (0) | 2022.12.05 |
[RPG 개발] 디스코드 봇 개발(2) (0) | 2022.12.05 |
[RPG 개발] RPG 개발중 (0) | 2022.12.05 |
[RPG 개발] 신나는 로컬라이징 (0) | 2022.12.05 |