Eli의 여백

바쁜 나날들 사이에서 생각났던 이런저런 것들을 적어봅니다.

프로그래밍

BMS구동기 v0.2

Eli♪ 2016. 1. 24. 13:00

결과물 모습

 

 

현재까지 완료된 것

  • BPM 읽기
  • regular expression을 이용한 종류별(소리, 노트, BGA별) crop
  • 메인 클래스와 BMS읽는 클래스를 개별 파일로 분리
 

차후 해결과제

  • 라인별로 읽으면서 데이터 정리

 

나중에 BMS 에디터도 개발하긴 하겠지만 (BMSE로 만들었을 때 uBMplay를 돌리면 윈10에서는 안돌아간다), 어차피 지금은 사람들이 BMSE로 제작하기 때문에 각 항목이 나오는 순서가 정해져 있다. 하지만 개발자인 야네 우라오씨는 (야네가 성이고 우라오가 이름이다) 포맷에 관해 별도의 순서를 지정하고 있지 않기 때문에(링크), 기존 BMS와의 호환성을 확인하는 차원에서 그냥 순차적으로 읽으면서 속도를 증가시키는 방향으로 다시 짤 것 같다.

 

일단 BMS파일 자체에는 용량이 그렇게 많이 먹지 않고, 실제로 용량을 차지하는 부분은 음원파일이나 BGA기 때문에 regular expression으로 파일을 분류해도 속도상 별 문제가 없었다. 그래도 나중에 곡 수가 매우 많아질 때 읽을 것을 대비해서 곡 읽는거랑 나중에 실제 플레이할 때 로딩타임은 최선의 최적화를 할 예정이다.

실제로 예전에 지인들이 LR을 쓸 때 보면 켤때 BMS 읽는게 거의 무슨 몇만개를 읽기때문에 속도면에서 매우 느렸다. 그리고 곡을 플레이하기 위해 엔터를 친 이후에도 용량 큰 곡같은 경우에는 거의 30초정도 기다려야 하는 불편함이 있었다. 이걸 개선하기 위해 두 부분에 대해서는 최적화를 고려하며 짤 것이다.

 

그리고 사실 이걸 개발하게 된 계기가 LR2에서 자원을 free를 안하고 개발해서 오랫동안 하면 계속 램점유가 올라가다 램부족으로 펑 터져버리는 현상이 발생했기 때문이다. 그래서 이번에 개발하는 구동기에는 이미 다 쓴 자원의 free를 매우 신경써서 할 것이다.

'프로그래밍' 카테고리의 다른 글

BMS구동기 v0.4  (4) 2016.02.13
BMS구동기 v0.3  (1) 2016.01.24
BMS구동기 v0.1  (0) 2016.01.24
02. Git 다운로드 및 GitLab과 연동  (0) 2015.09.02
01. GitLab 가입 및 프로젝트 생성  (0) 2015.08.31