이전까지는 진짜 갤럼들 말대로 객체 지향으로 짜도 충분한 성능을 냈고 아무 문제도 없었음. 물론 지금까지는.

게임 개발을 잠시 중단하고 토이 플젝(이것도 사실 게임)을 시작했는데 원본이 된 게임의 입자 수가 최대 23만개를 넘어설 수 있고 적게 잡아도 보통 몇만개라 ECS 도입이 절실했음.

일단 LÖVE의 Data로부터 파생되는 온갖 기능이랑 LuaJIT의 FFI를 이용해서 직접 메모리에 접근하는 방식으로 메모리 접근 오버헤드를 최대한 줄이고, 멀티스레드를 시도하는 등 온갖 최적화를 다 적용한 결과 성능은 나쁘지 않게 출발한 듯.

사실 FFI로 메모리 직접 접근을 해도 Lua 테이블이랑 성능은 비슷한데 왜 굳이 이렇게 했냐하면 LÖVE에서 스레드 경계를 넘어갈 수 있는 타입중에 LÖVE의 내장 객체로만 참조값을 전달할 수 있기 때문이고(다른건 복사값이 전달됨), 멀티스레딩은 아직까진 성능 향상보다는 고부하 상황에서 UI 반응성 향상이 더 체감이 큼...

3줄 요약
1. 토이 플젝 시작했다.

2. ECS 사용했다.
3. 근데 전부 LuaJIT으로 짰다.

여담으로 시뮬레이션이 메인 스레드랑 동기화가 안되어있어서 이걸 해결하는게 다음 목표다.