26 нояб. 2008 г.

Linker

Свершилось! У нас уже больше часа как есть линкер. Осталось только под макосью потестить. Под виндой всё айс. Ура. )))

25 нояб. 2008 г.

Last mile

Вчера был "кулинарный конкурс"... впрочем, потом об это напишу, когда фото будет :D
Поинрал в Тургор - великолепно :)
Ещё эл. гитарой обзавёлся... Но пост не об этом.

Пост снова о нашей поделке :)
Итак жирные плюсики:
  1. Помимо сообщений теперь есть Request'ы
  2. Абстракция над runtime class inspection
  3. Система объектов переделана, совсем. (об этом немного ниже)
  4. libMPUtility теперь таки отдельная shared library
  5. Написана куча субъектов для работы с консолью, благодаря ей ядро сейчас скорее напоминает какой-то странный(???) shell %)
  6. SimplePhysics дописан и выброшен на помойку %)
  7. Прикручиваем Bullet, IrrLicht, Horde3D
  8. Вот вот будет Linker и залив на Google Code
Теперь об изменениях в подсистеме объектов:
  1. Граф теперь история.
  2. Общность тоже
  3. Теперь есть только фичи
  4. Теперь объект состоит из других объектов.
    Добавление/Удаление очередного "кусочка" происходит одновременно с добавлением/удалением фичи. Можно не привязывать к фиче, тогда "кусок" живет вместе с объектом до самого dealloc'а
  5. Это решает все пробдемы предвдущей реализации.
  6. В текущей пока проблем не обнаружено.
Осталось пройти ещё чуть-чуть...
Тихо подкрадывается сессия... )

8 нояб. 2008 г.

Nekro_logic: No more visitor

Копался в старом. Нашёл:
Nekro_logic: No more visitor
Пост датирован тем моментом, когда он по логике вещей должен был оказаться в блоге, но оного у меня тогда ещё не было ))

7 нояб. 2008 г.

plainEngine must go on!

Итак:
  1. Оно работает под MacOS X. Правда на некотороые вызовы runtime, XCode благим матом орёт, мол legacy и 32 bit only. Обидно. Надо делать слой абстракции.
  2. Оно теперь очень бержёт память, не течёт ею.
  3. Планируются ещё несколько фич (да, я знаю, пора бы уже закончить их добавлять):
    1. Оптимизация отсылки сообщений.
    2. Таки добавлю возможность ответа на сообщение. (небольшие изменения в API :( )
    3. Слой абстракции над runtime функциями для инспектирования классов.
    4. Слежение за изменением признаков. (Для удобства заворачивания компонент изначально не предназначенных для plainEngine).
    5. Некоторые внутренние изменения в подсистеме объектов.
  4. Так же уже написаны
    1. MemorySharing subject (общая область памяти)
    2. MessageAnnouncer subject (отладочный субъект ведущий лог отправлемых сообщений)
    3. Частично SimplePhysics для Thermal Cubes
  5. Планируется выделение части ядра в отдельную libMPUtility
  6. После того как будут выполнены п 3.3 и 5 почти сразу будет Linker ибо MPModule уже написан.
Вот вроде бы и всё. Буду надеяться что не забыл ничего важного. Ах да! Это по прежнему не на Google Code :) ибо лень %)

4 нояб. 2008 г.

Немного о фичах

Фичи ядра вцелом:
  1. Кроссплатформенность
  2. Модульность (субъекты(код) полностью отделены от объектов(данные); субъекты можно менять на ходу, так что никто этого не заметит)
  3. Собственная парадигма в основе (тем кто видел, понравилось; в частности можно в рендере можно попросить все объекты которые можно отрендерить; очень удобно моделировать окружающий мир; на эту тему будет отдельное описание с примерами)
  4. Многопоточность+псевдопоточность (1 субъект = псевдопоток; N псевдопотоков рассовываются по M реальных потоков произвольным образом; внутри одного потока псевдопотоки умеют делать yield и отдавать время соседу(оч.удобно если мы, например, ждём ответа от физики) )
  5. Контроль целостности объектов (есть возможност зафиксировать часть графа т.е. если у самолёта есть закрылок с углом наклона, то он там и будет пока самолёт целиком не удалят)

Основные фичи парадигмы(и немного её реализации):
  1. Отделение (общих)данных от кода обработки
  2. Возможность выборки по признаку
  3. Возможность реализации перехода признаков (мокрое <-> сухое и т.д.)
  4. Возможность классификации/кластеризации (не знаю как это может пригодиться в игре (хотя для ГА и нейро сетей...), для data mining рулит)
  5. Быстрый доступ до общности (т.е. коррдинаты, ориентация и прочее что есть почти у любого объекта), чуть более медленный для признаков (логарифмическая сложность).
  6. Возможность реализации "составных" признаков (огонь=рисуемый(с-ма частиц)+звук(огонь)+...+тепмпература(значение)+...)
  7. Система сообщений (очень. быстрая) через которую всё и живёт.