000156. Вступление в скриптинг GTA 3
Вступление в скриптинг GTA 3||wmysterio|wmysterio|[email protected]|/||Всем привет! С сегодняшнего дня начинается курс уроков по скриптингу GTA 3. Это решение я принял в связи с огромным к-вом вопросов по этой игре. И я, решив освоить скриптинг игры, начинаю исследовать основные возможности движка и делится своими наблюдениями с вами.
И так, начнём с того, что уже известно - лимиты. Как и в каждой игры, существует некий список, в котором определены основные ограничения на игру. Вот перечисление тех, что известно мне из справки:
Характеристики
| GTA III |
Размер майна | 131072 |
Размер одной миссии | 32768 |
Кол-во миссий | 120 |
Mission Cleanup List | 50 |
Кол-во моделей (2-й сегмент) | 200 |
Кол-во работающих потоков | 128 |
Локальные переменные | 16 + 2 timers |
Кол-во вложенных gosub | 4 |
Text_Draw | 2 |
Парковки машин (014B:) | 160 |
Кол-во маркеров | 32 |
Кол-во пикапов | 336 |
Максимальный опкод | 0481 |
Число сфер на экране | 16 |
Типы гаражей, сохраняющих машины
| 16..18 |
Сразу падает в гла за, что движок не поддерживает внешние скрипты, что существенно будет влиять на производительность скрипта, теперь потоки будет играть роль этих скриптов. Мимо это отсутствуют таблицы переходов, что сильно влияет на длину кода. Теперь придётся по старинке - использовать условия :)
Когда я впервые открыл мейн, который находится в папке Data, то меня удивило огромное количество глобальных переменных. В принципе, при мизерном количестве локальных (16+2 штук) переменных, такой шаг вполне оправдан. Минимальный код, при котором работала игра составил всего 9 строк:КодDEFINE OBJECTS 1
DEFINE OBJECT SANNY_BUILDER 3.1.3
DEFINE MISSIONS 0
thread 'MAIN'
0053: $PLAYER_CHAR = create_player #NULL at 811.875 -939.9375 35.75
01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
$ONMISSION = 0 // integer values
fade 1 1000
end_threadМимо этого, при смерти/аресте игрока, точка его появления была очень близко к месту смерти. Напомню, что в Сан Андреасе, если не указать точки рестарта, игра работала неправильно и в конечном счёте нужно было делать перезапуск.
Так же удивил геймплей с таким мейном - по улицам езлило просто огромное количество полицейских машин и такси. Людей можно было на пальцах пересчитать. Сравнив гта3 и Сан Андреас можно аплодировать разработчикам, что они настолько усовершенствовали движок GTA 3, что сделали на нём культовую San Andreas.
Разница в движках и возможностях игр, естественно повлияют на разработку скриптов. В GTA 3 есть целая куча опкодов, которых нет в СА и это будет самым интересным моментом в исследовании игры с Клодом - главным героем первой трехмерной игры о GTA.
Это был вступительный урок по скриптингу GTA , с вами был wmysterio, до встречи
|1318|1|0||vstuplenie_v_skripting_gta_3|1392523118

Last modified 1yr ago