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

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

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

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

Сообщества

Настроить S2

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



Пишет nancygold ([info]nancygold)
@ 2024-08-28 01:55:00

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

Spell of Mastery Progress

XCOM games have flying units, maintaining continuous altitude as a major feature.
Yet it was never obvious how to implement that in an easy to use way.
In fact, the entire idea of fully 3d isometric view if complicated.
XCOM solved it by just allowing the players to change cursor Z-level.
That cut everything above the current Z, everything look especially horrible.

Other games, like Magic & Mayhem limited the Z to just two levels.
4 levels if we consider flying units.
Recent games, like Cataclismo, use some crazy hacks and don't support flyers.
These also allow free camera movement, so player can move it inside the buildings.
Yet most games at best usually just keep the flyers at a separate layer.
These games also don't allow switching between layers. I.e. no flight spell.

Anyway, I have kinda solved it using my own set of hacks.
But I keep redesigning the flying units mechanics.
Since I want it to be simple enough and yet deep enough.
And it has to integrate seamlessly with other mechanics.

For example a heavy units like dragon should be able to squash weaker units.
By landing on them. Same way, heavy terrain blocks should squash them.
I also want for different units to have different altitude limit.
Flying units also have shadow blobs, which should be on the ground.
In addition there are squads mixing flying and non flying units.
Then there are flying units which carry non-flying units terrain on top.
And don't forget the multicell heightmapped units which can have holes.

Initially that resulted into absolutely mess of a code.
I had to chain several unit actions to just change the altitude,
while keeping in mind that is shouldn't mess up the topological sort.
It was unmaintainable, forcing me to I transition to ECS.
Now I'm rewriting every feature into a standalone component,
which keeps abstraction leaking to the minimum.

At least now I kinda understand how it all can be put together.




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

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

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



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