Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2009-09-01 18:59:49 ЛС | профиль | цитата
http://hiasm.1gb.ru/forum_serv.php?q=56&id=480 (750к)
в архиве бинарные версии демок и исходники к ним. В обоих схемах использован движок GE, в рамках которого демонстрируется динамическое изменение решетки игрового поля.
карма: 27
3
Голосовали:Assasin, filyaxxxcom, kamakama
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-09-01 19:10:35 ЛС | профиль | цитата
Dilma, а новый пак GE-компонентов можно
------------ Дoбавленo в 19.11:
Извиняюсь, после "добавлено в..." не показывается обновление сообщений, следовательно кружочек темы не загорается галочкой
------------ Дoбавленo в 19.20:
Кстати, при компилляции:
#pas
E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(25) Error: Undeclared identifier: 'OnSpriteDead'

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(25) Error: Missing operator or semicolon

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(25) Error: Not enough actual parameters

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(34) Error: Undeclared identifier: 'GE_Object'

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(34) Error: Operator not applicable to this operand type

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(45) Error: Undeclared identifier: 'OnSpriteDead'

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(45) Error: Missing operator or semicolon

E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(45) Error: Types of actual and formal var parameters must be identical

E:\HiAsm\Elements\delphi\code.\hiMainForm_11AC89C.pas(17) Fatal: Could not compile used unit 'hiGE_SpriteArray.pas'
карма: 10
0
Ответов: 4641
Рейтинг: 334
#3: 2009-09-01 20:08:02 ЛС | профиль | цитата
Life весь комп почти повесил. Не думал что игра life может так нагружать
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2009-09-01 20:20:11 ЛС | профиль | цитата
цикл на 45*50*8 итераций выполненный в классике не каждой машине по зубам окажется... тут уж ничего не поделаешь. Собственно это основная причина, по которой стандартный пакет не подходит для игр совершенно.
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#5: 2009-09-01 20:22:20 ЛС | профиль | цитата
И, попробую догадаться, исправлением этой "причины" вы и занимаетесь, Dilma, так
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2009-09-01 20:24:46 ЛС | профиль | цитата
Dilma писал(а):
тут уж ничего не поделаешь

карма: 27
0
Ответов: 875
Рейтинг: 322
#7: 2009-09-01 21:22:21 ЛС | профиль | цитата
Установил все элементы, схемы открываются, но ни одна не запустилась. В Balls - ошибки такие же как у Assasin. Куда копать?, интересно же ведь!
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-09-01 22:59:07 ЛС | профиль | цитата
все элементы даны в теме Game engine
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2009-09-02 15:55:21 ЛС | профиль | цитата
Так оттуда элементы и взяты
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2009-09-02 18:00:57 ЛС | профиль | цитата
по какой ссылке?
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#11: 2009-09-03 15:11:13 ЛС | профиль | цитата
Dilma писал(а):
http://hiasm.1gb.ru/down/gameengine.rar (1.2 Mb)

(версия только для ознакомления)

карма: 10
0
Ответов: 9906
Рейтинг: 351
#12: 2009-09-03 15:25:50 ЛС | профиль | цитата
Dilma писал(а):
цикл на 45*50*8 итераций выполненный в классике не каждой машине по зубам окажется... тут уж ничего не поделаешь

Здесь рассказан иной, более шустрый, алгоритм
In this article, I evolve the simplest Life implementation into this algorithm, explain how it works, and run some universes for trillions of generations as they grow to billions of cells

Делают...
Собственно, меня больше интересовало кеширование с помощью QuadTree...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2009-09-03 15:56:47 ЛС | профиль | цитата
Assasin писал(а):
E:\HiAsm\Elements\delphi\code.\hiGE_SpriteArray.pas(25) Error: Undeclared identifier: 'OnSpriteDead'


25 стока hiGE_SpriteArray.pas

   FScene.OnSpriteDead.Remove(_OnSpriteDead);

78 строка hiGE_Scene.pas, где лежит описание объекта FScene

    OnSpriteDead:TEvents;

=> содержимое архива по ссылке выше не соовтетствует содержимому каталога code. Выводы делаем самостоятельно.

Galkov писал(а):
Здесь рассказан иной, более шустрый, алгоритм

лет этак 7-8 назад реализовывал алгоритм с отслеживанием областей популяций живых клеток, что позволяло моделироть жизнь на (в теории конечно) бесконечной матрице, т.к. производительность полностью зависела только от реального количества клеток, задействованных в симуляции, а не от размеров поля. Но в hiasm любая реализация на нативных элементах будет тормозить все равно.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#14: 2009-09-03 16:25:41 ЛС | профиль | цитата
Будет.
Но алгоритмическая сила - все равно остается.
Деревья-то создавать, не получится сегодня - нужна модификация поинтер-элемента, хранящая переменный объект заданного класса ((это типа - каждый за свое))

А вот когда-то давно, проверял на рекурсивной сортировке (наверное и схему на форуме найти можно)
Обыкновенная пузырьковая (простая как топор) - тормоза по порядку O(N^2)
Рекурсивная (сложная, зато быстрая) - O(N*log(N)).
Вот вам и сила алгоритма, вполне заметная при N>1000. И я ее еще как и замечал. В классике
Правда, экспериментально получилось что-то типа O(N*log(N)^2)... Думаю, что затраты на динамическую аллокацию добавили еще один множитель log(N)
Но сравнивать с пузырьковой - небо и земля.

Не, я не искал это дело как Life implementation
Повторюсь: меня интересовал двухкоординатный кэш в виде дерева, для быстрого доступа к объектам. Например, чтобы без проблем определять, проходит ли линия связи под точкой. Два адекватных механизма пока вижу: этот самый Quad-Tree, и еще R-Tree.
карма: 9

0
Ответов: 9906
Рейтинг: 351
#15: 2009-09-11 15:55:58 ЛС | профиль | цитата
Таки меня заинтересовала технология в HashLife.
До сих пор в толк не возьму, как можно получить логарифмическую зависимость времени от числа генераций.
В смысле - логически-то все правильно, а душа все равно не принимает.

Разобрался в деталях, и даже перевел. Если кому интересно - посмотрите (word-2003)
Переводчик я никакой, за абсолютную точность и акценты - не поручусь. Как сам понял - так и "перевел"
карма: 9

0
файлы: 1hashlife.rar [47.3KB] [414]
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)