IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Тарас Бульба и пещеры Хулиона, 3Д, олдскул софтрендер, лабиринты
TarasBer
сообщение 25.02.2014 21:05
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Игра писалась для конкурса 64кб-игр, там было важно уложиться в определённый размер. Самый простой способ уложиться - это выбрать Delphi 7, он умеет компилировать довольно компактно (за счёт абсолютного неумения в инлайн гы-гы). Сколько я на этом потерял в производительности - вопрос отдельный и... я измерил, на сколько именно.

Итак, картинки:
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прохождение игры: http://www.youtube.com/watch?v=NAn1t39eG9A

Сама игра: Прикрепленный файл  lab3d.rar ( 54.92 килобайт ) Кол-во скачиваний: 635


Исходники игры для Дельфи-7: Прикрепленный файл  lab3dsource.rar ( 34.28 килобайт ) Кол-во скачиваний: 602


А теперь - самый главный вопрос: насколько это дело тормозное по сравнению со старыми движками, написанными великими людьми? Я для сравнения брал Quake и Unreal на типичных для этих игр сценах (для Unreal сцена получилась не самая простая, да) в разных разрешениях, запускал всё это на своём динозавре в процессором Селерон-600.
Код

             Q   U    TB(D7)  TB(FPC)  TB(C++03)  TB(ICC)  TB(GCC (SSE))
1024х768    22  11     9       9       10          9       11 (12)
800х600    28  15    14      12       14         12       16 (18)
640х480    36  20    20      17       20         18       24 (25)
640х400    42  22    23      20       24         21       29 (30)
512х384    47  24    26      25       29         25       35 (47)
400х300    53  30    33      30       41         35       44 (58)
320х240    56  35    47      42       58         47       66 (66)
320х200    58  35    51      48       65         56       66 (66)

Да-да, я портировал игру на С++, проверив её в Студии (которая слишком многое прощает и из-за этого много ошибок коварно затаилось), и выдав исходники другим людям, пересобравшим её на Intel C++ Compiler и GCC 4.8.1. Да, в процессе работы с GCC я на своей шкурой узнал, что strict aliasing - это больно (но я таки с ним справился! +50 к крестокунфу "стиль параноика"), что одно и то же вещественное выражение может приниматься разные значения внутри цикла и после цикла (когда все промежуточные переменные любовно распиханы оптимизатором по 10-байтовым регистрам сопроцессора, и что проиходит, когда эти числа сохраняются в 4-байтные ячейки памяти). Насколько выросла производительность благодаря всем мыслимым наворотам разных компиляторов, совместимых с моим железом, видно в таблице.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.03.2024 11:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"