Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет nancygold ([info]nancygold)
@ 2024-04-04 02:10:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: contemplative

C99 based ECS framework
They implemented a nice a declarative scene-description language:
https://www.flecs.dev/explorer/?local=true&wasm=https://www.flecs.dev/explorer/playground.js

Apparently they integrated it with Unreal engine, which still uses a rigid mess of classes.

Still pretty much a standard ECS implementation.

My personal ECS implementation serves as a drop in replacement for the class-based OOP I had before it grew out of hand. So my ECS allows getting away without creating a components hell while allowing working with entities as nice black-boxed objects. To design entities I either map on top of a classic class inheritance hierarchy or section a single class into parts. And systems are just the triggers invoked every second/turn/step/action-type based of the component presence.

That is because I designed my ECS as a way to build objects bottom up. I.e. I describe what object is, and then system tries to fill in the gaps, allowing me to get in where it fails. I.e. a write "Cyclops is a heavy large strong humanoid", and the system tries to match a set of sounds and behaviors adequate for a humanoid, which is heavy, large and strong. Same way a heavy entity is expected to break fragile objects, like say thin ice. That is kinda important for a tactics game, based of original XCOM.

But yeah, the idea is always the same: one codes components, models the world using these components and then just presses the `run` button to start the game. But I dislike the declarative ways, so it makes sense to expose entities as actual objects, which I can manipulate directly in impure ways outside of your haskell-style monadic systems



(Читать комментарии)

Добавить комментарий:

Как:
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Имя пользователя:
Пароль:
Тема:
HTML нельзя использовать в теме сообщения
Сообщение:



Обратите внимание! Этот пользователь включил опцию сохранения IP-адресов пишущих комментарии к его дневнику.