- Сообщений: 574
- Спасибо получено: 897
RPG Maker GE (Godot Engine)
- Doctor_Bug
-
Автор темы
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
Здравствуйте сообщество RPG Maker’а это мысли вслух или возможно будущие начала большого проекта. Я не уверен, что смогу создать подобный проект в одиночку, хотя в интернете существуют достаточно материала чтобы изучить игровой движок «Godot engine», вдоль и поперек. Но я постараюсь, или мы постараемся (если захотите присоединиться к проекту).
К чему посвящена это статья? Я всегда хотел создать свой проект похожий в стиле jRPG, но с некоторыми оговорками. К примеру, чтобы персонаж не ходил строго по клеточкам (отчасти это удобно в создание сюжетных сцен), а мог свободно перемещаться в любом к направлении, или чтобы боевая система не была пошаговой. Конечно все это можно прописать с помощью скриптов, плагинов, изменяя встроенный функционал нагромождая проект еще большими задержками в загрузки проекта. Возможно я не прав.
Было бы замечательно создать свою собственною RPG-игру к примеру в другом движке. Мой выбор пал на игровой движок «Godot engine», так как он бесплатен и в нем есть достаточно инструментов. Но что требуется для создание такого проекта? Много чего, слишком много. Не говоря о знание программирование на python’e(в годоте используется язык похожий на пайтон GDScript), грамотном размещение множество механик и создание собственно этих механик. Ведь создатели RPG Maker всё в аккурат создали за нас эту работу.
Будем придерживаться минимального продукта, далее будем по нарастающие дополнять механики. Предупрежу, создать сразу же игру навряд ли получиться. Разобьём проект на три гигантские части: первое «Бродилка», второе «Боевая система», третье «База данных».
• Бродилка – возможность двигать персонажа в любом направлении, перемещение среди разных локаций, системы диалогов и прочее.
• Боевая система – То как персонаж будет сражаться? Будь то пошаговая система или активная. Я буду придерживаться активной системе.
• База данных – основные данные игры будут расположены здесь. Характеристики, навыки, предметы, классы, все что мы так любим в базе данных.
Каков будет наш минимальный проект?
Бродилка:
o Создадим первого персонажа
o Научим ходить персонажа в разные стороны.
o Пропишем Z-уровень, это когда персонажи могут заходить за высокие объекты или за спины других объектов создавая иллюзию перспективы.
o Создадим первые тайлы (травка, дорога, декоративные объекты), здесь же пропишем коллизию (столкновение)
o Привяжем камеру к персонажу
Боевая система:
o Научим махать первым оружием, мечом в разные стороны.
База данных:
o Здесь мы пропишем UI, создадим прогресс бар связанный с жизнью игрока.
Что же это пока минимальный продукт. Господа и дамы если есть у вас какие-либо предложение, можете смело задавать их в эту тему.
Вам придется пройти уроки по Годоту, то что я выкладывал ранее, чтобы приблизительно понимать концепции движка.
Да еще кое-что, Godot поддерживает такую механику как Networking, так что при должном усилии можно создать и онлайновскую игру.
p.s. А пока будете обдумывать проект, сыграйте созданной мною маленькую игру для школьного мероприятия. Я там создал целый комплекс, связка загадок-сайтов, с мини играми и коптерами. Но здесь лишь мини игра про бешенного зайца (игру делал пару часиков). Да я тот еще чудик хе-хе %)
Бешенный заяц: Mad Hare
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
Автор темы
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Для начало скачаем Godot Engine. На текущий момент версия 4.1.1. Ссылка на скачивание игрового движка.
godotengine.org/
Создадим проект, назовите как хотите, я же назову этот проект «RPG Maker GE». Так как это будет не совсем игра, а лишь инструмент, заготовка для будущих игр.
Немного поразмыслив пришел к выводу что буду создавать корневую директорию (папку) с специально назначенными директориями (папками).
- Assets – предназначен для хранения игровых наборов, будь то аудио, графика или даже шрифты.
- DB – (database) – база данных. Здесь будут храниться вся база данных игрового проекта.
- Entity – сущности. Здесь будут храниться сцены с персонажами, NPC (не игровыми персонажами) и врагами. Все что шевелиться и подает признаки жизни

- Mechanics – Механики. Все игровые механики будут заложены в сценах, которые и будут тут храниться. Скрипты механик будут расположены в другом месте. К примеру, здесь могут храниться: Спецэффекты, диалоговые окна, инвентарь и прочее.
- Scene – папка предназначенная для хранение уровней и конкретных сцен: главное меню, меню загрузок и сохранения, сцены магазинов и прочее.
- Scripts – сюда поместим все скрипты какие у нас только будут.
Это будут директории высшего уровня. В папках высшего уровня будут находиться еще поддиректории среднего уровня. Давайте распишем и их, немного возьмем опыта с серии RPG Maker.
Директория игрового набора «Assets»:
- Fonts – в этой директории будут храниться шрифты. Не советую использовать слишком много разных шрифтов. Рекомендую не более трёх.
- Audio – директория для хранения звуковых сопровождений.
- Graphics – все спрайты, листы спрайты (spritesheet), и другие графические элементы будут храниться здесь.
Директория «DB» пока что будет пуста, будем смотреть по заполнению проекта.
Директория «Entity»:
- Players – сюда будут помещаться герои, под управление игрока
- NPC – Неигрово́й персона́ж, или неигра́бельный персонаж, сокр. NPC — персонаж в играх, который не находится под контролем игрока. В компьютерных играх поведение таких персонажей определяется программно.
- Enemies – в этой директории будут храниться вражеские персонажи, будь то монстры или люди какой либо фракции.
Директория «Mechanics» пока сложно сказать какие именно будут директории среднего уровня, но они будут. Дело в том, что здесь нужно будет разделение на директории, так как будут затрагиваться большие механики, виде боевой системы или инвентарей. Пока что, она пустая. А возможно она и останется без средних директорий.
Директория «Scene»:
- Locations – в этой директории будут помещаться локации, будь то лес, равнины, города или даже внутренние помещение.
- Special – особые сцены, такие как: титульная сцена, сцена загрузки или сохранения, сцена проигрыша.
Директория «Scripts» так же как директория механики, пока под вопросом. Она пуста.
Теперь нижний уровень директории, будет присуще только некоторым директориям. Начнем с директории Audio:
- BGM – директория хранящая фоновую музыку
- BGS – директория хранящая фоновые звуки (пламя, грозы, ливень дождя)
- ME – директория хранящая различные фанфары
- SE – директория хранящая звуки (удары, стуки, магические залпы и прочее).
Как видите структуру взяли с RPG Maker, с графикой будет почти тоже самое.
Состав директории «Graphics»:
- Animations – директория для листов спрайтов анимации
- Background – директория фоновой картинки, сюда же будем помещать и спрайты параллакса.
- Bust – директория для бюстов, аватарок и лиц.
- Characters – директория персонажей, нпс и врагов.
- System – директория системных спрайтов, интерфейсов.
- Tilesets – директория для спрайтов тайлсетов.
Тайлсеты! Забыл, нужна директория тайлсетов «Tilesets»! Это директория будет на высоком уровне. Сюда будут складываться не спрайты тайлсетов, а именно созданные на их основе файлы тайлсетов. Давайте добавим все эти папки.
Вроде все готово. Теперь обсудим такую деталь как размеры тайлов и спрайтов. Из серии игровых движков RPG Maker наблюдались размеры тайлов 16, 24, 32, и 48 пикселей. В Godot сетку карты так же можно настроить на любые размеры. Но мы будем придерживаться 16х16 пикселей. Вы же можете выбрать другой удобный размер сетки.
В рабочем окне вы можете настроить сетку, выбрав нужную опцию:
Кстати настройте шаг сетки на 16х16 пикселей
Следующее использование ассета, я воспользуюсь бесплатным ассетом (игровым набором).
Создайте милую ферму в пастельных тонах с растениями, домашними животными, друзьями, блэкджеком и … короче вот он набор:
cupnooble.itch.io/sprout-lands-asset-pack
Художник (Или художница): Cup Nooble.
Учтите, для коммерции вам понадобиться связаться с автором, а не для коммерции можете использовать, не забудьте указать художника.
Так заглянем что внутри архива набора «Sprout Lands - Sprites - Basic pack»
С папки «Characters» набора закидываем в проект в ту же папку что и у нас.
А вот с папки «Objects» и «Tilesets» закидываем в проект в папку «Tilesets»
Закидываем в проект
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
У меня когда-то были (ну и даже сейчас есть) мысли сделать свой собственный open-source RPG Maker GE со всеми фишками, которые комьюнити хочет/ждёт от официальных Мейкеров (вроде ивентов-префабов, редактора игровых UI-окон и т.д.). Можно было бы даже совместить это с каким-нибудь лаунчером/соц.сетью, чтобы делиться и играть в игры других разработчиков в пару кликов, без возни со скачиванием, установкой, распаковкой и т.д.
Правда, пока эта идея лежит в ящике и ждёт своего часа, сейчас много других проектов и забот. Но может я когда-нибудь соберусь.
Тут, как я понял, идея попроще - сделать просто проект-болванку под RPG. Посмотреть на результат будет занимательно, но ЦА такого решения пока непонятна - работа в движках слишком комплексна для неподготовленного человека, который пришёл пожмакать ивенты и посмотреть результат, а хороший разработчик и без темплейтов придумает, как реализовать свои механики.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
Автор темы
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Эти деления на категории условны, так как отношения между игроком и персонажем могут меняться в процессе игры.Doctor_Bug пишет: Директория «Entity»:
- Players – сюда будут помещаться герои, под управление игрока
- NPC – Неигрово́й персона́ж, или неигра́бельный персонаж, сокр. NPC — персонаж в играх, который не находится под контролем игрока. В компьютерных играх поведение таких персонажей определяется программно.
- Enemies – в этой директории будут храниться вражеские персонажи, будь то монстры или люди какой либо фракции.
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Наверное прошла игру, играла минут 5, дошла до пня и было написано Упорство там
В общем, забавный платформер, сама механика ощущается вполне комфортно, но не понятно, зачем зайцу бананы
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. Создайте игровой объект в Godot, который будет представлять игрока в мультиплеере. Включите в этот объект необходимые компоненты для взаимодействия с другими игроками, такие как KinematicBody или RigidBody для обработки физики, а также Networking для установки соединений.
2. Реализуйте код, который создаст и управляет соединением P2P между игроками. Для этого вы можете использовать модуль NetworkedMultiplayerENet или другие альтернативы, которые поддерживают P2P соединения. Установите параметры соединения, такие как IP-адрес и порт.
Пример кода для настройки P2P соединения:
```gd
var peer := NetworkedMultiplayerENet.new()
peer.create_server(4444)
```
3. Определите функции для передачи данных между игроками через P2P соединение. Например, вы можете создать функцию send_data(), которая отправляет данные в формате байтов через P2P соединение.
Пример кода для отправки данных:
```gd
func send_data(data : PoolByteArray):
var packet := PacketPeerBuffer.new()
packet.put_data(data)
peer.put_packet(packet)
```
4. Реализуйте функции для обработки полученных данных от других игроков. Например, вы можете создать функцию process_data(), которая принимает данные от других игроков, распаковывает их и выполняет необходимые действия на основе этих данных.
Пример кода для обработки полученных данных:
```gd
func process_data(data : PoolByteArray):
var packet := PacketPeerBuffer.new()
packet.put_data(data)
var unpacked_data := packet.get_data()
# Распаковка данных и выполнение действий на основе полученных данных
```
5. Запустите мультиплеерную игру, и позвольте игрокам подключаться друг к другу через P2P соединение. Вам может потребоваться код, который отслеживает доступных игроков, чтобы игроки могли выбирать с кем соединиться.
Пример кода для соединения с другими игроками:
```gd
peer.connect_to_host("127.0.0.1", 4444)
```
Пример кода для получения доступных игроков:
```gd
var player_list := peer.get_peer_list()
```
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
Автор темы
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
- Сообщений: 574
- Спасибо получено: 897
Обдумав все я закрываю данный проект. К сожалению, я не смогу в одиночку создать столь большой проект, нужно быть реалистом и вовремя остановиться. Но скажу честно, за это время я смог многое понять в движке Godot Engine. Я вполне смог бы сделать примерно 20% от всей механики серии RPG Maker. Причем используя инструменты такие как «@tool», который позволяет на лету редактировать данные и не только их (в годо много инструментов которые помогли бы воссоздать подобие движка RPG Maker).
Здесь встает вопрос, главный вопрос. А в чем будет преимущества данного проекта. Чем он будет отличаться от других серий RPG Maker, компания "Enterbrain" которая занимается созданием серий движков и разных ресурсов для них. На одном энтузиазме вряд ли получиться соперничать с ними.
Переделать Godot Engine в RPG Maker GE, не вижу смысла. Серия движков RPG Maker заточен для создание игр жанра jRPG, если вы хотите создать игру другого жанра (особенно если в 2D), то проще использовать движок, заточенный для создание таких игр. Godot Engine не единственный движок для созданий игр разных жанров.
Плюс — это трата времени, много времени и сил. Создать, протестить и отловить моих собратьев «багов». Какой будет выхлоп? Можно конечно и на патреон выложить тему (если он доступен для нас), но будет ли спрос?
Какое преимущество будет иметь RPG Maker GE над другими авторскими движками? С учетом что новые движки RPG Maker имеют новые фишки.
p.s. Кстати в Godot’е действительно удобно делать разные софты. Можно замутить к примеру генератор существ или портретов, в этом плане действительно удобно.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
