Громогласно
Это маленький закуток, в котором я буду демонстрировать уже реализованную механику различных идей / фишечек / плюшек (называйте как хотите). Все работы будут иметь, как скомпилированный exe-файл, так и исходники, дабы любой желающий мог их изучить, расширить, придумать что-то своё, ну или же кинуть в меня тухлым помидором (ничего нельзя исключать).
Цель этих... примеров (уроками сложно назвать) заключается в том, чтобы продемонстрировать местным обитателям, что при помощи Scirra Construct можно быстрее и лучше сделать всё то, что вы делаете в Rpg Maker.
Мотивация предельно проста - привлечь людей к большему трудолюбию в работе над своими проектами, расширить жанровую составляющую этих проектов, отказ от поиска чужих RGSS скриптов (которые, бывает, конфликтуют), и, наконец, сделать Валере щелчок по носу, дабы начал признавать другие движки, кроме Rpg Maker.
Пример 01: Погодные условия
Чует сердце, что мейкеристы тут же заявят, что погодные условия реализованы в стандарте Rpg Maker, да и различных скриптов уйма. Но! Многие ли из вас хорошо разбираются в RGSS? Уверен, что нет.
Что дают нам самописные погодные условия? Возможность к постоянным улучшениям спец-эффектов, более широкие возможности в настройках, а так же всё, что душа пожелает.
Пример погодных условий
В данном примере используются 3 глобальные переменные:
Effect - Номер эффекта (1-3 - Дождь, 4-5 - снег)
Force - Сила ветра
Random - Время до вспышки (молнии) во время "Грозы". Генерируется случайно.
Так же используется 1 частная переменная, которая определяет время жизни каждой капли или снежинки - Y.
В примере вы можете изменять настройки при помощи интерфейса.
Пример 02: Туман войны
Ну какая современная стратегия или кошерная RPG от Bioware обойдётся без тумана войны? Вопрос риторический - отвечать не обязательно.
На самом деле, реализованная механика далеко не идеальна, и гораздо проще реализовать её через canvas, но, если уж говорить о классическом решении, то прошу любить и жаловаться:
Пример Тумана войны
Объяснять эту механику гораздо сложнее, поэтому я ограничусь описанием самого принципа, а не реализации:
Персонаж имеет определённую дистанцию - обзор. Сам туман войны делится на 2 элемента: туман (неразведанная территория) и тень (разведанная, но вне поля зрения персонажа).
Самым простым вариантом будет определять через дистанцию те элементы тумана, которые в поле зрения и убирать их с экрана. Но! Если мы хотим чтобы туман представлял собой не набор квадратов, а сегменты разной формы нужно проверять соседние "туманинки".
Для этой самой проверки следует использовать массивы, которые будут хранить информацию о состоянии тумана в каждый момент времени.
В своём примере, я реализовал проверку по 4 соседям (сверху, снизу, слева, справа). Для более красивой отрисовки можно проверять ещё проверять соседей по диагонали, но это вы и сами сможете уже реализовать.
Управление:
ЛКМ - двигать персонажа
Стрелки - двигать экран
Пример 03: Псевдо 3Д
А это то, что никто не решается использовать в своих мега проектах. А зря. Такой штукой можно очень сильно разнообразить различные элементы боя, геймплея и т.д.
Пример Pseudo 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 - загрузить карту
Игра автоматически загрузит созданную вами карту.
Так же в движке присутствует миникарта, которая поможет вам ориентироваться в лабиринте. Ну и исходные ресурсы так же лежат в архиве и вы можете с ними ознакомиться.
Open your eyes
А это, планомерная реализация геймплея игры Baldur's Gate. Этот проект будет с закрытым исходным кодом. То бишь только exe-файл.
Создаётся сие творение из ностальгии по рухнувшему проекту Archerian Nox.
С каждым обновлением я буду обновлять лог в этом посте, указывая что было добавлено, и как это посмотреть.
Baldur's Gate 2 Engine
-- 04.02.2013 --
Реализованы базовые функции Лог-окна (диалогового окна):
- Увеличение / уменьшение размеров при помощи GUI.
- Скроллинг сообщений при помощи ползунка и кнопок GUI.
- Для теста используются 4 сообщения (их количество определяется внутреигровым контентом и, в принципе, не ограничено).
Управление:
Сообщения отображаются при нажатии клавиш на NumPad'е 1, 2, 3, 4.
Post scriptum
Присылайте свои вопросы и идеи для реализации. Наиболее интересные идеи я буду реализовывать и выкладывать на всеобщее обозрение.
Социальные закладки