Четверг, 14 Ноября 2024, 19:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
How to create... или базовая реализация идей в Scirra Const
BirkoffДата: Четверг, 14 Февраля 2013, 13:27 | Сообщение # 1
был не раз
Сейчас нет на сайте
Громогласно

Это маленький закуток, в котором я буду демонстрировать уже реализованную механику различных идей / фишечек / плюшек (называйте как хотите). Все работы будут иметь, как скомпилированный exe-файл, так и исходники, дабы любой желающий мог их изучить, расширить, придумать что-то своё, ну или же кинуть в меня тухлым помидором (ничего нельзя исключать).

Цель этих... примеров (уроками сложно назвать) заключается в том, чтобы продемонстрировать новичкам (и тем, кто уже кое-что умеет), что при помощи Scirra Construct можно достаточно быстро и качественно создавать игры приличного уровня.

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

Пример 01: Погодные условия

Чует сердце, что фанаты Rpg Maker тут же заявят, что погодные условия реализованы в стандарте Rpg Maker, да и различных скриптов уйма. Но! Многие ли из вас хорошо разбираются в RGSS? Уверен, что нет.

Что дают нам самописные погодные условия? Возможность к постоянным улучшениям спец-эффектов, более широкие возможности в настройках, а так же всё, что душа пожелает.

Пример Погодных условий

В данном примере используются 3 глобальные переменные:
Effect - Номер эффекта (1-3 - Дождь, 4-5 - снег)
Force - Сила ветра
Random - Время до вспышки (молнии) во время "Грозы". Генерируется случайно.

Так же используется 1 частная переменная, которая определяет время жизни каждой капли или снежинки - Y.

В примере вы можете изменять настройки при помощи интерфейса.

Пример 02: Туман войны

Ну какая современная стратегия или кошерная RPG от Bioware обойдётся без тумана войны? Вопрос риторический - отвечать не обязательно.
На самом деле, реализованная механика далеко не идеальна, и гораздо проще реализовать её через canvas, но, если уж говорить о классическом решении, то прошу любить и жаловаться:

Пример Тумана войны

Объяснять эту механику гораздо сложнее, поэтому я ограничусь описанием самого принципа, а не реализации:
Персонаж имеет определённую дистанцию - обзор. Сам туман войны делится на 2 элемента: туман (неразведанная территория) и тень (разведанная, но вне поля зрения персонажа).

Самым простым вариантом будет определять через дистанцию те элементы тумана, которые в поле зрения и убирать их с экрана. Но! Если мы хотим чтобы туман представлял собой не набор квадратов, а сегменты разной формы нужно проверять соседние "туманинки".
Для этой самой проверки следует использовать массивы, которые будут хранить информацию о состоянии тумана в каждый момент времени.

В своём примере, я реализовал проверку по 4 соседям (сверху, снизу, слева, справа). Для более красивой отрисовки можно проверять ещё проверять соседей по диагонали, но это вы и сами сможете уже реализовать.

Управление:
ЛКМ - двигать персонажа
Стрелки - двигать экран

Пример 03: Псевдо 3Д

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

Пример Псевдо 3D

Оптимизация данного примера хромает на обе ноги. Так как я для этого использую 100 кадров анимации для фона и для ящика. На самом деле можно сэкономить и размеры спрайта (ящик) и размерами фона (ну или количеством кадров). Для этого вам потребуются полностью симметричные текстуры.

Да и ящик можно сделать, как маленькие спрайты самого ящика (а не на весь экран). и уже математически рассчитывать его координаты.
Ну да ладно. Исходный код открыт и объяснять там нечего. Узрите!

Управление:
Стрелки влево/вправо - Вращать экран

Пример 04: Змейка

Реализация классического механизма игры "Змейка" Используя глобальную переменную Speed - вы можете увеличить скорость игры. Переменная Length - отвечает за длину змеи.

Пример Змейки

Управление:
Стрелки - поворачивать змейку.

Пример 05: Арканойд

Реализация змейки вдохновила меня на работу над другой классической игрой - Арканойдом. Можете откровенно смеяться, когда вы откроете исходник. Но код игры до безбожия короткий.

Пример Арканойда

Управление:
Мышь - Двигать "ракетку"
ЛКМ - Запустить шарик

Пример 06: 3D или First Person Rpg Map Movement

А это уже вполне работоспособный движок, который можно использовать для создания рпг вроде первых Might and Magic, Pool of Radiance, Wizardry или же Bard's Tale.

Пример 3D

Управление в движке:
Стрелки вверх / вниз - Двигаться вперёд / назад
Стрелки влево / вправо - поворот влево / вправо

Так же архив содержит простейший редактор карт, который вы можете использовать для создания собственных уровней.

Управление в редакторе:
ЛКМ - Поставить / убрать стену
S - сохранить карту
L - загрузить карту

Игра автоматически загрузит созданную вами карту.

Так же в движке присутствует миникарта, которая поможет вам ориентироваться в лабиринте. Ну и исходные ресурсы так же лежат в архиве и вы можете с ними ознакомиться.

Post scriptum

Присылайте свои вопросы и идеи для реализации. Наиболее интересные идеи я буду реализовывать и выкладывать на всеобщее обозрение.
DomenikДата: Вторник, 17 Сентября 2013, 04:43 | Сообщение # 2
Программист Construct Classic
Сейчас нет на сайте
Не Scirra Construct, а Construct Classic

_ToBe_Дата: Вторник, 17 Сентября 2013, 09:16 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Очень полезная тема, особенно понравились погодные эффекты
А можно как-то закрепить/перенести/продублировать эту тему в самом разделе Construct Classic?

П.С. А про рэйкастинг у вас есть что-то интересное? happy
diarkmДата: Суббота, 14 Декабря 2013, 12:50 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата Birkoff ()
Пример 02: Туман войны

Очень полезный исходник, спасибо! smile


- The Tales of War and Peace - Защищай, развивай, воюй.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг