а что есть ECS ? и насколько легко/ нелегко с многопоточностью и корутинами в CL ?
Entity-Component-System, способ организации архитектуры в играх. С многопоточностью в CL вроде всё ок, есть практически стандартная либа bordeaux-threads. Для асинхронности тоже краем глаза что-то видел, но подробно не интересовался
а можешь поделиться, если где в паблике есть код, чтоб можно было посмотреть бОльшие объемы года и как структурируешь проект, как тесты пишутся и как организовываются и все такое ?
мне интересно на CL/Scheme Data Mining-like ETL/Моделирование начать пилить, хочу заменить питон на CL и вот интересно посмотреть в целом организацию проектов
Entity-Component-System, способ организации архитектуры в играх. С многопоточностью в CL вроде всё ок, есть практически стандартная либа bordeaux-threads. Для асинхронности тоже краем глаза что-то видел, но подробно не интересовался
понял. благодарю, а есть какой-то рекомендованный путь вкатывания в CL к примеру книга/ книги/ блог/ посты, где основные моменты рутины описаны?
Текущий проект на CL пока ещё в стадии зарождения, я там ещё ECS не доделал. Как доделаю - выложу Есть вот такой проект на Scheme (но он страшно глючный, потому что делался на конкурс под дедлайн 😅): https://github.com/lockie/racket-engine
а если racket с CL сравнить, CL все же больше к production ready? ну если не учитывать что в CL - это Lisp. ибо пока субъективно racket показался каким-то игрушечным
Ну Racket не то что игрушечный, он скорее для обучения и для всяких языковых экспериментов (типа "о, а давайте статическую типизацию в Scheme добавим - а давайте!")
С тем самым перформансом. В какой-то момент игровой код начал тормозить. Полез в профилировщик - тишь да гладь. Попробовал дизассемблировать самые горячие функции сторонним пакетом - нифига непонятно, как простое арифметическое выражение компилируется в ассемблерную портянку на три страницы с какими-то левыми call-ами. CL-евский disassemble в этом плане вообще светоч, конечно
С тем самым перформансом. В какой-то момент игровой код начал тормозить. Полез в профилировщик - тишь да гладь. Попробовал дизассемблировать самые горячие функции сторонним пакетом - нифига непонятно, как простое арифметическое выражение компилируется в ассемблерную портянку на три страницы с какими-то левыми call-ами. CL-евский disassemble в этом плане вообще светоч, конечно