Реализация
В самом начале разработки у меня была идея создать продолжение игры "Arkanoid" - мы даже сделали "интро", для которого я долго сочинял наполненный пафосом и безграмотностью "сценарий":
"Интро" для "Arkanoid 3"
В качестве исторической ретроспективы можно скачать эту "предысторию":
"'Arkanoid 3' Intro" в сборнике всех наших игр:
Скачиваний: 1491
- Игры запускаются на современных версиях Windows без каких-либо дополнительных действий.
В итоге от этой идеи отказались - EDV хотел что-то оригинальное, без какой-либо привязки к другим играм. Также сразу было принято решение делать игру для 2-х игроков и расположить "ракетки" по бокам игрового поля (мы посчитали, что так для совместной игры будет нагляднее). Прототип игры создавался для разрешения экрана 320x200 точек:
Первая версия "The Smash Balls: Invasion"
Игровые элементы прототипа:
Эту версию игры также можно скачать:
"The Smash Balls: Invasion (Prototype)" в сборнике всех наших игр:
Скачиваний: 1491
- Игры запускаются на современных версиях 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.
Все сохранившиеся материалы разработки игры: