Gamemaker는 좋은 RAD를 허용하는 깔끔한 도구입니다. 그러나 그것은 몇 가지 단점이 있습니다. 그 중 하나는 훌륭한 표준 라이브러리가 없다는 것입니다.
사실 "ds_ *"유형 멤버가 있지만 그 멤버는 매우 부족합니다. 예를 들어 우선 순위 큐는 읽기 전용 유형 (프로세스에서 소멸)입니다. 목록에 대한 정렬 기능은 끔찍한 느린 방법을 사용합니다. (공식적으로는 언급하지는 않았지만, 거품 정렬을 사용한다고 생각합니다.) 그리고 링크 된 목록을위한 메소드에는 빌드가 없습니다. 그 단순한 회원 액세스의 꼭대기에해야 할 것보다 느립니다.gamemaker가 C++ 표준 라이브러리를 처리하도록 래퍼 DLL 만들기
이제 실제로 이러한 것들을 모국어로 만들 수 있습니다. 그러나 그것은 매우 느립니다 (통역사가 느려짐). 나는. quicksort/heapsort를 작성하는 것은 많은 경우 내장 된 정렬보다 느립니다. 내 자신의 "연결 목록"(각 노드에 대한 특수 개체 사용)을 작성하는 것은 너무 많은 오버 헤드가있었습니다. (gamemaker의 각 객체는 각 단계마다 많은 일을합니다.)
이제 표준 라이브러리의 C++ 레이어를 작성하려고합니다. 더 나은 알고리즘을 허용 할뿐만 아니라 몇 가지 추가 기능 (해시 테이블 & 연결된 목록이 주요 대상 임)을 추가하기를 바랍니다. 대부분의 문제들에 대해서는 이미 큰 문제를 제외하고 어떻게 대처해야하는지에 대한 아이디어가 있습니다.
모든 C++ 라이브러리는 항목을 식별하기 위해 "반복자"를 사용합니다. Gamemaker는 doule (또는 c-style 문자 배열)을 dll과주고받을 수 있습니다.
어떻게이 문제를 피할 수 있습니까? 항목의 인덱스를 반환하지 않는 것은 매우 어리 석다. 따라서이 반복자를 double에 매핑하는 방법을 찾아야한다.
이 용도로 좋은 아이디어가 있습니까? 필자는 모든 데이터 구조를 간단히 다시 작성하는 것이 가장 좋기 때문에 이터레이터는 1 대 1 맵을 두 배로 확보 할 수 있습니다 (실제로는 두 배 + 데이터 구조 인덱스). 아니면 더 좋은 방법이 있습니까?
p.s. 게임 메이커가 왜 아직 태그하지 않았습니까?