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

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
Entry tags:gamedev

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



(Читать комментарии) - (Добавить комментарий)


[info]nancygold
2024-04-04 11:17 (ссылка)
I'm really sorry for my bad writing style.

I will work on improving it further.

(Ответить) (Уровень выше)


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