Реализация
В самом начале разработки у меня была идея создать продолжение игры "Arkanoid" - мы даже сделали "интро", для которого я долго сочинял наполненный пафосом и безграмотностью "сценарий":
В качестве исторической ретроспективы можно скачать эту "предысторию":
"Arkanoid 3" Intro Скачиваний: 250
- "Вступление" для "Arkanoid 3".
"'Arkanoid 3' Intro" в сборнике всех наших игр:
"SBIgame" Bundle Скачиваний: 1477
- Игры запускаются на современных версиях Windows без каких-либо дополнительных действий.
В итоге от этой идеи отказались - EDV хотел что-то оригинальное, без какой-либо привязки к другим играм. Также сразу было принято решение делать игру для 2-х игроков и расположить "ракетки" по бокам игрового поля (мы посчитали, что так для совместной игры будет нагляднее). Прототип игры создавался для разрешения экрана 320x200 точек:
Игровые элементы прототипа:
!["ракетка"](/images/sbi3x2_board.png)
!["кирпичик"](/images/sbi3x2_brick.png)
![шарик](/images/sbi3x2_ball.png)
![враг "Микки Маус"](/images/sbi3x2_alien.png)
Эту версию игры также можно скачать:
The Smash Balls: Invasion (Prototype) Скачиваний: 240
- Первый прототип игры.
"The Smash Balls: Invasion (Prototype)" в сборнике всех наших игр:
"SBIgame" Bundle Скачиваний: 1477
- Игры запускаются на современных версиях Windows без каких-либо дополнительных действий.
К разработке мы подходили как в "больших" играх - например, расписывали алгоритмы:
И даже pисовали эскизы (многое в игру не вошло):
Сама игра была написана на языке Assembler. Для создания сервисных программ использовались разные языки: например, редактор уровней я написал на Delphi, а компилятор ресурсов в общий файл - на Pascal. Графические спрайты я моделировал в Rhino 3D, а потом обрабатывал в Adobe Photoshop. Перед сборкой в файл ресурсов игры спрайты преобразовывались в формат PCX, а затем приводились к "единой палитре цветов" - для этого EDV придумал целую "теорию палитр", а сам "преобразователь" написал наш друг SaNTa на C++. Для сетевого режима игры использовался протокол IPX - как наиболее простой и универсальный на то время.
Несколько дополнительных фактов о реализации:
- Модель графического пространства - псевдо-3D (многослойная);
- Тип анимации - запоминание фона во временный буфер;
- Для устранения "flicker-эффекта" графический вывод буферизируется;
- Палитра - 256 цветов (30 цветов по 8 уровней яркости в каждом, 16 уровней яркости по белому);
- Для быстрой перерисовки элементов изображения применяется так называемый "метод грязных квадратов";
- В программе используется вертикальная синхронизация (V-Sync);
- Игра работает в "защищенном" режиме процессора, и использует только основную память;
- В игре используется специальный алгоритм сглаживания экранного шрифта (системный шрифт MS DOS, размер 8x8 точек);
- Взрыв "ракетки" - это спрайт взрыва гранаты из "Half-Life";
- Для визуализации "теории палитр" SaNTa написал программу их просмотра в трехмерном виде;
- Алгоритм синхронизации в сетевой игре был темой дипломного проекта EDV.
Все сохранившиеся материалы разработки игры:
"SBIgame" Extras Скачиваний: 14
- Исходные тексты программ (игра, прототип, дополнительные инструменты), диплом EDV, письмо на конкурс "Наша игра 2000", графические спрайты, 3D-модели некоторых игровых объектов.