Ну шо, ребята, Мир Мейкера? (Опять? Oh no!
)
Да, эта древняя телега заводится вновь! Благо, 21-й век на дворе, MMORPG любой может сделать за пару вечеров.
В общем, выпало мне немного свободного времени на выходных, и я решил попрактиковаться в сетевом кодинге. В результате этого мини-хакатона и родилось данное нечто: World of RPG Maker PreAlpha v0.0.0.1a.
Что это?
Заготовка под MMORPG в стилистике проекта на RPG Maker. На текущий момент - просто примитивный чат. Можно подключиться под любым никнеймом, побегать (стрелочками) по карте и написать что-нибудь в общий канал (ввод открывается на Enter). Если повезёт, то даже встретите ещё кого-нибудь!
На чём это?
Сервер - node.js / socket.io
Клиент - Construct3
Первый прототип клиента я сделал на GodotEngine и на обычном websocket в качестве протокола, но в итоге гемора было столько, что я решил отказаться от этой затеи и перейти на что-нибудь более простое и легковесное (на socket.io, ага). Тем более, хотелось, чтобы клиент открывался прямо в браузере и так же быстро, как обычный сайт. Поэтому на выбор остались чистый рендер на pixi.js (я ещё не настолько отчаялся), другие JS-игровые движки (мало опыта, нет времени изучать) и MMORPG-плагин для Мейкера (то же, что и пункт 2, плюс сверху - я не люблю ограничения конкретных API в своих творческих порывах). Удивительно, Констракт мне подошёл и зашёл идеально, тем более - код я пишу всё равно полностью на JS, а рантайм движка использую только для визуализации (за редкими исключениями).
Про сервер писать не буду, node.js для такого небольшого и простого проекта - идеальная среда.
Чем это будет?
Изначально я планировал просто попробовать сделать небольшой кейс с мультиплеером и забить, но в процессе мне так понравилось заниматься всем этим, что я решил продолжить развивать эту концепцию. Пока держу в голове такую роадмапу:
1. Сделать БД и персистетные хранилища (сюда же авторизацию по логину/паролю, редактор персонажа, сохранение позиции и игровых параметров между сессиями)
–V–
2. Румы и переход между локациями.
–V–
3. Интеракции с игровым миром (диалоги с NPC, квесты, ещё что-нибудь)
–V–
4. Real-time редактор локаций.
На самом деле, скорее всего типичную MMORPG я делать не буду. Скорее, виртуальное пространство для общения и интеракций (как вообще Мир Мейкера затевался изначально, если я правильно могу судить по старым постам в местных темах). Возможно, функционал редактирования сценариев (аналогично такому в RPG Maker’е), чтобы можно было прямо внутри игры сделать небольшое приключение и дать пройти его другим людям (ну или просто построить себе дом с дворецким Себастьяном и сидеть в нём).
Тему создал новую, так как это отдельный от всех прошлых обсуждений проект, и общаться тут будем по нему. Принимается критика, комментарии, советы, пожелания. Возможны баги (моя основная профессия -
поваааар клиентский Unity-разработчик, написание серверов - просто хобби).
Ну и ссылочка на сам клиент (проверял на Windows, за работоспособность на других платформах не ручаюсь):
(если после нажатия на OK ничего не происходит - значит сервер упал, как приду - подниму. Но надеюсь не упадёт)