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

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

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

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

Сообщества

Настроить S2

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



Пишет nancygold ([info]nancygold)
@ 2024-08-23 00:52:00


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

Spell of Mastery Progress

Replacing OOP with ECS for everything was easy.
I had to just replace `type` macro with `cls` macro.
But unlocking full expressiveness of ECS is far harder.
I have to rewrite core parts of the core code.
And most stuff depending on it, like rendering.
But existing rendering code was too clunky anyway,
like it had separate path for drawing terrain and units.

What do I mean by ECS features?

* Unrestricted site map size.
  I tried using actual octree voxels.
  But it was agonizingly slow.
  Compared to the bitmaps I'm using now.
  These don't allow raycasting but hash lookup is so much faster than trees.
  And my goal is supporting a 1024x1024x1024 site.
  since I want to check if I can unify the entire world map into a single
  seamless site.

* Uniformity between units and grid cells.
  Think floating island, which can be seen as both amalgamation of
  cells and a unit.
  Or proper cell animation, including running water and gas diffusion.

* General set theoretic queries.
  Haven't implemented these yet, since they are just too expensive
  for larger worlds.
  But cells as entities allow for efficient sparse grid.
  But I can still have these when the number of objects is a few thousand,
  like for important characters, but not every blade of grass.

In the end I came with architecture, wher each cell amalgamates properties from
both the terrain and the placed inside of it. That way I will have several solid
entities having intersecting cells and optionally sustaining damage or gaining
momentum.

Kinda ovekill for a turnbased XCOM clone, but collapsing platforms are a big
thing in XCOM style games. And I always the goal of having more environmental
puzzles and Shadow of Colossus style boss battles, where characters can climb
on top of a larger moving colossus. Then I already began transitioning to
a new tiling system, allowing for non-square structures. And the rendering code
had numerous issues relating to topologically sorting multicell units.

There was also issue with implementing mounted units and squad formations,
where squad acts as a single unit, but has properties of several units.
And say a squad of 5 could be able to carry a large object above their heads.
That is because I always wanted to have sokoban style puzzles.

More issues is that many cell tiles are non-uniform, so units entering them
should be offset a bit from the grid to look appropraite. The squad of 5 is
too large to fit single 64x32 gird tile, so these units have to be dispered a
bit into neighboring cells. That poses questions like combining the animation
and movement system with dispersing and offseting these units.

Normgroids say it is a stupid idea to turn game viewport/camera into an entity.
But then one may want to have features like camera following specific character,
or moving on specific path. And I also need these features for other entities.
Or you may have several preset cameras and switch between them. Like in a
multiplayer game. So it makes perfect sense for camer to be an entity even in
a 2d game.

All that requires a robust entity representation.

I can go endlessly about how ECS makes things easier, but I personally needed
that uniformity and set theoretic stuff the most. Even if for the most
important entities. The game became just too complex, when I implemented the
world view with separate world_unit type, and then cosmic_unit type, to allow
moving units between world and iterations of the same world. Since I wanted to
implement time travel. Suddenly ECS was that only one way to implement that.

So yeah, cache locality was not the reason I implemented ECS.
Most normies hate ECS becasue it is really confusing to construct ECS entities.
And the normgroid languages don't support them.
But my Symta is a dialect of Lisp, so nothing a good macro cant solve.





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


(Анонимно)
2024-08-23 05:49 (ссылка)
>turnbased XCOM clone

Something that will struggle in today's market, especially without AAA animation and graphics.

>normgroid languages don't support them.

Zig? Rust macros?

>Most normies hate ECS

You are kidding yourself. ECS is as mainstream as it gets now, present in both main engines, Bevy is built on it (one of two big opensource engines), discussed almost every day in gamedev forums/subreddits etc etc.

You aren't doing anything groundbreaking/elite here.

(Ответить) (Ветвь дискуссии)


(Анонимно)
2024-08-23 05:57 (ссылка)
>Zig? Rust macros?

https://github.com/markisus/vapid-soa even C++ can do it, the most "normgroid" language there is.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 11:12 (ссылка)
You can't have macros without exposing the compile time structures, which for C/C++ (and other typed languages) are rather complex. I believe Rust will be even more complex with its anal dildo borrow checker. There is Flecs, which had to came out with its own language to overcome the C/C++'s limitations. But even Flecs doesn't expose ECS object as normal OOP objects, where you can access separate fields outside of global queries.

Accessing/updating a single entry in a columnar database isn't super efficient, but a frequently performed task. I.e. in a grid pathfinding algorithm, when one does `NeighbourCell.is_empty`. And if your ECS doesn't expose these, you will have hard time implementing even the core functionality.


Then again, what they usually call "ECS" is rarely the true ECS, but a variation on the component-based objects, where each entity has a list of used components, while also baking common components like Transform into all entities. Or they don't implement a bitmap, instead keeping an integer list. That precludes single entity access and makes entities super heavy and unsuitable for fine grained use, like terrain cells, even in raw C/C++, not speaking about interpreted languages like Symta. In many cases, ECS is bolten on top of an existing OOP model, giving the second system effect.

So it is not about the `Bevy has ECS too!!111` soy hype, but about how and for what purpose Bevy has ECS. I personally use entities as a way to implement set theoretic constructs and do ORM. So I have no idea why normgroids attack me for not doing everything the _normal_ way. Like we have 10 billion niggers wasting resources doing it the `normal` way. Not enough? Do you need more mario/sonic platformers soyslop or sports/shooters negroslop?

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-23 12:06 (ссылка)
>My ECS is ECSiest of all ECSes, normgroids are difficult and inferior

Ok. Whatever.

>mario/sonic platformers soyslop or sports/shooters negroslop

How is your X-COM derived unoriginal POS any better?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 14:02 (ссылка)
Not just XCOM style but the 90ies XCOM.
The genre neurotypicals hate the most.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-23 15:26 (ссылка)
Nah. Neurotypical != dumb. In the 90ies normies liked X-COM. It just didn't age too well. Battles with lots of actors are too clunky and slow, while large maps exacerbate it.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 15:46 (ссылка)
Whatever keeps the flies away...

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


[info]nancygold
2024-08-23 10:39 (ссылка)
>will struggle in today's market

Had I wanted to serve normies, I would have applied for a McDonalds job.

I'm making the game for myself.

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


(Анонимно)
2024-08-23 05:52 (ссылка)
Btw, can't even write a technical post without attacking some group for being inferior.

(Ответить) (Ветвь дискуссии)

Niggers are monkeys anyway
[info]necax
2024-08-23 07:41 (ссылка)
А Садков нас пытается удивить... макроснёй.

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


[info]necax
2024-08-23 07:59 (ссылка)
> ХСОМ
ХУИТА.
Бывает X-COM: UFO Defence.
А XCOM: Enemy Unknown — дрисня индусского происхождения на базе Юнифинити, где впенюрили совершенно убогие элементы РПГ типа классов и отрядов, состоящих из полковников.





Кто-нибудь может объяснить, зачем в XXI веке нужно Bink Video?

(Ответить) (Ветвь дискуссии)


(Анонимно)
2024-08-23 09:42 (ссылка)
>зачем в XXI веке нужно Bink Video?

Как минимум лет 10 в XXI веке (т.е. после 2000ых) у Bink video не было альтернативы в плане lossless сжатия и вычислительной стоимости. К 2010ым созрели h264 visually lossless энкодеры / компы стали мощнее.

>А XCOM: Enemy Unknown
>Bink Video

Садков-то тут причем? Человек вообще срет на всё с чем в детстве не сталкивался, ну или не мог столкнуться теоретически. Ну AI любит разве что.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 14:05 (ссылка)
>Ну AI любит разве что.

cuz AI makes the artoids mad

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-23 16:07 (ссылка)
What have "artoids" ever done to you? Why is this deep desire to make people mad? You are celebrating techno-capitalists fucking over the little guys, and using their own art work to fuck them at that.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 16:28 (ссылка)
In my definition art is a form of self expression.
But these normies do it for money, serving capitalists as automations.
So no wonder they can be replaced by more efficient machines.
Their art is soulless fanservice at best.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-23 17:28 (ссылка)
>I hate normies for no actual reason

This is what amounts to. Because there is a need for commercial art, for advertisements, for websites, for products, for movies, TV, video games. Even the great art works of the past, where artists definitely expressed themselves were made for some wealthy patrons.

I see no reason to celebrate dehumanization of the economy. And you aren't of the owner class. They'll replace crazy Russian tranny game programmers too, if there is enough demand.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 20:36 (ссылка)
Real artists all died poor.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-23 21:00 (ссылка)
Это было до интернета.

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


(Анонимно)
2024-08-24 06:42 (ссылка)
"When Leonardo da Vinci died, he had bank assets in Florence of 400 gold ducats (1.4kg of gold). In addition, there were properties in Milan and Florence that yielded annual rental income. The Duke of Milan had also given him rights to draw water from the St. Christopher canal, which also brought in regular income."

"Thanks to his prestigious clients (Hieronymus) Bosch was comfortably well off, but never rich."

Иди нахуй, а?

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


(Анонимно)
2024-08-23 18:39 (ссылка)
Also this answer is very typical. Conversations with you always felt like what would later be called "a conversation with an LLM" -- like you generate a plausible answer for "Describe why you hate graphical artists using this blog as the context". And it feels like there is no actual model behind it, no actual opinion, no person who holds these beliefs, just a character you paint with these generated answers, (which aren't even consistent with each other in the time span of a week), with just limited underlying foundational INSTRUCTION(like for these INSTRUCT models), "posts and comments must project strong negative feelings', "must select enemies, dehumanize them", "just devalue what other humans hold precious" or something , not sure how to formulate this INSTRUCTION exactly.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nancygold
2024-08-23 20:37 (ссылка)
I have borderline personality disorder.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2024-08-24 09:09 (ссылка)
I don't see "Frantic efforts to avoid real or imagined emotional abandonment.", I see some suppressed(i.e. not outright violent) adult form of the Oppositional Defiant Disorder. Ideation of revolutions and mass murder indicate as such.

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


[info]nancygold
2024-08-23 10:33 (ссылка)
>Кто-нибудь может объяснить, зачем в XXI веке нужно Bink Video?

I think it allowed compositing and common texture formats.
These are important when you use it for UI or animated textures.

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


(Анонимно)
2024-08-23 10:47 (ссылка)
Кто-нибудь может объяснить, зачем в XXI веке нужен пейсах?

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