вторник, 20 декабря 2011 г.

Новый конкурс - BomberMan!

На сайте GLScene.ru в начале декабря стартовал очередной конкурс!
На этот раз нужно сделать ремейк игры "BomberMan", которая, стоит отметить, мне весьма нравится - игра детства как-никак)

Увы, в ближайшие месяцы времени на фан я себе много отвести не могу, но равнодушным к такой теме остаться тоже не мог)

Поэтому голословным быть не собираюсь - кое чего уже написал)

Ну а что именно - читаем дальше)


Сразу начну с того, что я уже накидал не хитрый макет, в котором реализовал пока что такие элементы как локации, перемещение главного героя, установка бомб и их взрывы, всё это можно видеть на рисунке:
Текстурки я натянул чтобы не скучно было тестить)
А ещё, если смотреть на картинку и проматывать страницу вниз, то будет казаться, что картинка расширяется и приблежается))

В реализации тестовых макетов, при возможности, я придерживаюсь одной, упрощающей дальнейшую разработку, детали - я сразу проектирую каркасы классов объектов и их взаимодействие.

Теперь о боле-менее ключевых моментах реализации:
  • Цифровой скелет поля представляет из себя двумерную матрицу с динамическим обновлением значений в клетках.
  • Радиус взрывов бомб реализован как параметр объекта бомбы и при создании бомбы берётся из свойства объекта главного героя.
  • Карта генерируется автоматически только с указанием важных параметров, которые будут зависеть от уровня. Поэтому файлы карт будут содержать в себе например такие данные: размеры поля, вид бонуса, кол-во противников и т.п.
  • Бомбер обходит препятствия, если дать ему ход мордой лица в бетон).

Вроде пока всё, теперь о том, что ещё не сделано и что я наметил сделать далее:
  • Бомбы не взрываются друг от друга, а так же взрыв не упирается в стенки и стенки не рушатся. Тут я ещё не решил какую динамику прикольнее будет сделать, а следовательно от этого будет зависеть система определения столкновений.
  • Далее, карта пока что не наполняется разновидностями крипов(creep), а т.е. монстриков) Которым так же надо будет определить поведение, а т.е. разработать алгоритмы ИИ.
  • Ввести такой объект как двери - точка перехода на следующий уровень.
  • Разработать бонусы, а для этого в свою очередь надо придумать ряд параметров класса главного героя, чтобы потом менеджер перемещения героя это всё учитывал с интерпретацией поведения на карту.

Так же я в раздумьях насчёт того, чтобы реализовать динамические объекты в спрайтовом виде... Но эт пока токо раздумья)

В общем вот такое положение дел у мня)

Как я заметил, в конкурсе собралось уже не мало участников, что не может не радовать, поэтому всем желаю увлечённой и продуктивной разработки)

4 комментария:

  1. Скриншот красивый. У меня примерно на том же этапе остановилось всё пару недель назад. Времени нету пока чтобы кодить.

    Желаю удачи и довести до конца. А то участников в конкурсе обычно много а работ мало.

    ОтветитьУдалить
  2. Очень понравился подход к работе. Молодец! Будем ждать новых отчетов и твоей работы с нетерпением!

    ОтветитьУдалить
  3. Расскажи как делал освещение ? У меня получется сильно засвеченные объекты - непридумал еще как это победить. Может идейку подкинешь ;)

    ОтветитьУдалить
  4. Илья, gltrinix
    Спасибо за отзывы)

    LOLO
    Освещение вроде как обычное, и у тебя, я посмотрел, текстуры вроде норм светятся просто яркие сами по себе,
    но на всякий случай вот мои параметры:

    источника света:
    object GLLightSource1: TGLLightSource
    ConstAttenuation = 1.00
    SpotCutOff = 180.00
    end

    параметры текстуры для .jpg:
    with Material do
    begin
    MaterialOptions := [moIgnoreFog, moNoLighting];
    with FrontProperties do
    begin
    Ambient.SetColor(1,1,1,1);
    Diffuse.SetColor(1,1,1,1);
    Emission.SetColor(1,1,1,1);
    Specular.SetColor(1,1,1,1);
    end;
    ...

    ОтветитьУдалить