대충 이런거 만들고있음.


사실 원래 게임을 만들 생각은 없었고, 그냥 심심해서 게임메이커용 노드 에디터 툴을 하나 만들었음.


3eadc219e9dd3fa920afd8b236ef203e5fbe24a9c19112


맷노드라는 툴이고, 기존의 에디터가 노드를 수천개 정도 만들면 렉이 걸린다거나, 익스포트 규격이 너무 자체적이어서 가공하기 어렵다거나 하는 문제들을 해결한 툴임.



a16711aa372a76b660b8f68b12d21a1dd081d835c2


이건 위 영상에서 쓰인 노드 구조임. 선택지, 스크립트 실행, if문, if else문, goto 등 여러 역할을 하는 노드 타입을 만들어놨음.


다만 특징이 있다면 다른 몇몇 노드 에디터랑 다르게 내가(개발자가) 만들어놓은 노드 타입만 쓸 수 있는게 아님.

기본적으로는 아무 노드 타입도 없고, 전부 직접 정의해서 사용하는 구조임.



a16711aa372a6ae87eb1d19528d527034d7b3d39bd761c

(익스포트 파일과 노드 타입을 정의해놓은 화면)


익스포트 파일을 원하는 만큼 만들고(대사 저장하는 파일, 스크립트 저장하는 파일, 그 외에 원하는 아무 파일 등)

각 노드 타입이 각 익스포트 파일에 어떤 정보를 포함하도록 할지 정할 수 있음.


예를 들어 Text타입은 Text.txt(구조체)에 자신의 모든 정보(타입, 텍스트, 이어진 노드들)를 담고, TextTable.csv(다국어 지원용)에는 텍스트 정보만 담을 수 있음.

또 Script.txt 파일에는 아무런 정보도 담지 않도록 만들고, Script 타입의 노드들은 Script.txt에 자신의 텍스트를 저장하도록 할 수 있음. 물론 어떤 노드와 이어져있는지도 알아야하니 그런 정보들은 Text.txt에 기록하도록 만들고.


익스포트 파일은 csv,구조체,스크립트 등 총 6개 형식을 지원함.


아무튼 요점은 엄청나게 유연하게 쓸 수 있다는거임.

코딩은 게임엔진에서 하고, 글은 csv파일에 쓰는 짓 안 해도 된다는거.

범용성에 초점을 맞춰놨기 때문에 일반적인 채터박스(다이얼로그)에 없는 모든 기능을 노드 타입 추가로 구현할 수 있음.

물론 범용성을 보고 만든 툴이니만큼 미연시같은 겜 말고 노드 구조가 필요한 모든 게임에 쓸 수 있음.


최적화는 테스트 결과 노드를 100만개 정도 만들어도 아무런 버벅임 없었음. 1000만개가 되든 1억개가 되든 크게 달리지진 않을거임.


https://github.com/MatthewStone218/MattNode

GitHub - MatthewStone218/MattNode

Contribute to MatthewStone218/MattNode development by creating an account on GitHub.

github.com


깃에 다운로드 링크, 영어/한국어 튜토리얼 모두 올려놨음.


오랜만에 인디갤에 글 써봤네.


그럼 다들 재밌는 게임 만드세요~