Проекты
GameDev.ru / Проекты / Форум / Создание Браузерной MMORPG

Создание Браузерной MMORPG

Страницы: 1 2 3 4 Следующая »
ApkkoПользовательwww18 дек. 201721:30#0
Добрый день, я не работаю программистом, но в один прекрастный день появилось непреодолимое желание создать свою игру, в браузере. В течение последнего полугода, в свободное от работы время (коего очень не много) начал изучать html, java script, php, работать с mysql. Пока что игра планируется следоющим образом: клиентская часть рисуется в canvas, а серверная на node.js, инфа между ниими передается с помощью библиотеки socket.io.

Сама по себе игра (если она вообще когда нибудь напишется) будет своего рода смесь жанров стратегии и рпг.

Собственно, занимаюсь этим делом для своего удовольствия и возможно какого-то опыта, и обращаю ваше внимание что исключительно в свободное от работы время. Сооответственно, если есть кто-то, готовый потратить свое свободное время на участие в создании этого "проекта", и испытывающий необъятную любовь к ролевым играм пишите =)

Ссылка на Диз-док который я начал писать https://cloud.mail.ru/public/4HJ2/u92uiGRJC

пара видео
https://cloud.mail.ru/public/MVWY/625vXxEJx
https://cloud.mail.ru/public/9AF4/kFMsMxaTs


Создал группу в вк, выкладываю туда инфу по разработке проекта,  если кому интерестно заходите.
http://vk.com/abertoril

Правка: 14 фев. 2018 22:45

ТатаринПостоялецwww18 дек. 201721:47#1
Хохо и тебе привет, ну давай если не сложно, нужен художник будем делать ММОРПГ.
у меня есть вот такая мморпг http://www.gamedev.ru/projects/forum/?id=228502 считай сервер можно оттуда взять.
я пишу клиент на threejs, ее немного переписал под 2д, чтобы было удобно спрайты лепить.
на БД пока забьем, они будут только мешать. PHP в топку. socket.io заменяем на uws https://github.com/uNetworking/uWebSockets
времени у тебя мало это плохо.
Ну вот пока что есть, есть идеи что делать?

Правка: 18 дек. 2017 21:48

ApkkoПользовательwww18 дек. 201721:53#2
у меня есть что-то похожее на диз-док, я его на днях делать начал) могу скинуть посмотришь примерно о чем речь хоть) твой проект я видел, да правда очень интересно, скачал пытался запустить)
ТатаринПостоялецwww18 дек. 201721:58#3
Скидывай сюда диздок все вместе почитаем, может накидают толковых идей а может и толкового геймдиза найдем.
>скачал пытался запустить
отлично, уже что то.
ApkkoПользовательwww18 дек. 201722:00#4
в описании топика добавил ссылку на док, да мне нужно как можно больше критики)

Правка: 18 дек. 2017 22:03

RikkПостоялецwww18 дек. 201723:18#5
MMORPG

Диздок.цитата : В противном случае возвращается falase и код ошибки, у пользователя отображается ошибка.

ТатаринПостоялецwww19 дек. 20178:30#6
один шаг длинной в минуту это очень долго.
технические детали я не в давался да и по опыту знаю что еще сто раз все будет переделано, поэтому из диздока я бы вынес это в отдельный документ, вот какие вопросы меня интересуют:
1. размер карты, шаг сетки, можно ли посещать другие карты, например зашел в дом подгрузилась карта дома или попал в подземелья, какой стиль рисования - вид сверху, изометрия или как в японских рпг вид сверху-сбоку.
2. Я так понял что там будет D&D магия, бутылочки - классика, значит нужна кастомизация персонажа - как это планируется.
3. Пошаговая система боев, за последнее время вышло столько игр с разными пошаговыми боями, надо бы уточнить вопрос какую боевую систему брать за основу.
4. Квесты и диалоги, врятли программисты такое осиливают а это проблема, если в игре будут только квесты то их надо придумывать сразу, или будет еще что то например фермерством заниматься?
glasm отчасти прав новичку будет проще с canvas и php, но я конечно против потому что потом с ними будет сложно, легкий старт и тяжелый финишь, советую тогда отделить игровую логику от рендеров как на сервере так и на клиенте.
ApkkoПользовательwww19 дек. 201710:43#7
glasm
node.js - для начала сложно, такую игру проще начать на "порционном" PHP, а когда всё наладится, то можно добавить swoole

изначально я писал игру на чистом php, а взаимодействие между игроком и сервером было посредством html форм, это выглядело как веб интерфейс для работы с бд... потом решил добавить динамики, и начал рассматривать js, но на тот момент я работал с бд напрямую через php, а мне нужен был сервер который бы мог работать и совершать операции с бд независимо от пользователя. По началу это был просто скрипт php который висел в браузере...очень некрасиво, неправильно и т.д... Затем я написал на си програмку которая периодически лезет в бд и и делает некие изменения...Но потом я узнал о node =) и меня приятно порадовала возможность использовать один язык на клиенте и сервере...плюсом является то что при передаче данных на выходе и на входе не надо их отдельно поготавливать...

Татарин
насчет шага в минуту, я согласен, это жесть, как вариант изменить на 10 сек...но все равно если у когото есть идеи как сохранить в игре пошаговость, но при этом разместить всех игроков в "одном" месте, очень жду предложений...
1. На данный момент идея карты такая : Карта статична, ее размеры .. хз большие 1000 на 1000 ...но игоку отображается лишь часть этой карты...персонаж игрока находится в центре этого куска карты (постоянно) а при перемещении подгружается лишь этот кусок карты (а также все что находится на этиом куске (персонажи, объекты)), который находится в приделах видимости персонажа...к примеру 100 на 100 клеток вокуруг персонажа...помимо статичной карты должны  быть карты помещений, подземелий и тп..., куда персонаж может попасть с основной карты (на основной карте стоит дом, вы подходите к двери, открываете, заходите внутрь и перемещаетесь на карту этого дома...так же получаете чать или всю карты этого дома(области)). Стиль рисования: мне кажется вид сверху (вертикально, примерно видим только голову) былобы довольно интерестно...как вариант изобразить фигрку персонажа на постаменте (возможно не анимированная)...
пример: картинки не мои, взяты для примера с сайта roll20 
http://www.gamedev.ru/files/images/?id=129704

2. Кастомизация: как вариант теже самые фигурки персонажей могут выглядеть по разному...опять же должно быть окно персонажа, в котором будет изображение персонажа (возможно просто его лицо)... на этим я признаться не размышлял еще...если есть предложения слушаю)

3. Боевая система: конечно создать все что есть в d&d не реально, но хотелось бы придерживаться правилам которые там описаны. Суть в том что я бы хотел реализовать в игре не только пошаговую систему боев, но и весь игровой процесс... игроку предоставляется полная свобода действий, но он постоянно ограничен в количестве действий за ход...на мой взгляд именно это должно придавать игре смысл: выбор что сделать в данный ход атаковвать, бежать, материть и т.п. Конечно же все что есть в механике d20 реализовать невозможно, но мне хотелось бы создать боевую систему как можно более похожую на настольные игры...прикрепляю ссылку на Open Game Licence  https://cloud.mail.ru/public/4xB5/GtButaNEd  там можно найти много интерестных тонкостей.

4: Квесты и диалоги: В я хотел бы видеть свободу действий, но и наличие квестовых цепочек мне кажется обязательным, так как это в первую очередь игра про "приключения", а какие приключения без заданий. Вот только в реализации сие я пока что мало представляю, возможно нужен какойто отдельный инструмент для создания/изменения квестов... подумаю и над этим =)

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

в первом посте добавил видео где приблезительно показано как работает карта..

и вопрос в чем соль uWebSockets? почему он?

Правка: 19 дек. 2017 10:54

ApkkoПользовательwww19 дек. 201711:11#8
Sasha-16
Выходит что так =)
там передвижение перса, изменение карты -  пара секунд =) да первые 4 минуты про закладки)
ТатаринПостоялецwww19 дек. 201711:49#9
Apkko
шаг в 10 секунд и автозавершение хода если все игроки сделали ход.
ты хочешь всю игру сделать пошаговой, чтобы даже просто перемещение по локациям было пошаговым?
вид сверху мне не нравиться, много непонятного создает, что там дерево или камень, не удобно, вид с боку все таки получше
+ Показать

по боевой системе нужно собрать арену, прототип где тестировать все подходы, такую отдельную мини игру.
>и вопрос в чем соль uWebSockets? почему он?
причин несколько, во первых socket.io в ядре использует его, и на самом деле с ним проще выстраивать свою архитектуру, во вторых он меньше потребляет памяти что поможет потом сэкономить на аренде серверов, и он работает быстрее всех, короче быстрее-выше-сильнее.
исходники хотя бы на старте планируешь вести открыто на github?
на видео особо ничего не понятно, хорошо бы чтоб ты голосом пояснял что там происходит.
ApkkoПользовательwww19 дек. 201712:08#10
Татарин
да именно в этом то и соль должна быть отличающая от других, пошаговость во всем...возможно это дико звучит... а в таком случае ход заканчивается лишь в определенное время, не зависимо от того сделал игрок ход или нет
Насчет вида: конечно вид с боку тоже подходит, но мне казалось именно с видом сверху реализовать на много проще..
+ Показать
(рисунок правда больше героев напоминает) ...пример игра есть 12 better than 6 вид сверху...
насчет исходников, я конечно могу выложить, но там счаз почти ничего кроме взаимодействия клиента - сервера.
это видео я давно делал, сейчас ввиду координальных изменений показывать совсем нечего, как только появится что нибудь визуально понятное постараюсь выложить.

Правка: 19 дек. 2017 12:31

ТатаринПостоялецwww19 дек. 201712:38#11
Apkko
Если есть свое видение это хорошо, твой проект тебе виднее, пока я не знаю чем тебе помочь, как то влиться в проект я не смогу но реализовать что то без проблем, главное четко поставь задачу)
ApkkoПользовательwww19 дек. 201712:58#12
Татарин
Я пока что пожалуй продолжу с документацией, постораюсь продумать как можно больше... Если честно мне интерестно было бы послушать как у тебя работает сервер с клиентом хотябы в двух словах.
ТатаринПостоялецwww19 дек. 201713:21#13
Apkko
постараюсь в двух словах:
Игрок кидает соедиение по websocket на сервер, присылает логин пароль, сервер добавляет его в список, список ограничен, например 100 человек макимум, если список полный то сервер ему присылает ошибку.
данные кидаются в JSON и бинарном формате, все что экспериментальное в JSOM все что уже устаканилось перевел на бинарный.
Сервер крутиться в цикле, каждые 100мс всем рассылаются кадры, кадр это такой бинарный буффер в нем храняться координаты игроков и их состояния, на кадр игрок подписывается, тоесть например игрок видит вокруг себя 9 клеток вот на них он подписан, когда он двигается он подписывается на другие кадры, тем самым сервер присылает ему только то что он видит вокруг.
Между рассылкой кадров сервер принимает сообщения от игроков, некоторые он обрабатывает но большинство ставиться в список, если например игрок 1000 раз пришлет команду на стрельбу то обработаеться она только один раз за 100 мс, тоесть стрелять чаще у него не получиться, да и так как кадры рассылаются каждые 100мс никто все равно бы и не увидел что он 1000 раз выстрелил, так же и с запроса на получание кусков карты он получит новый кусок только с новым кадром.
Клиент получает кадры, распарсивает их и обновляет положения всех игроков, там много разных ньюансов, очень много за 2 года пока я сервера пишу я столько разных мелочей нашел и исправил которые влияют на игровой процесс, и думаю найду еще.
Под каждым описанием кроеться свои оптимизации и архитектура, например отложенные команды игроков обрабатываются не все а только 100 за раз, и если сервер не успевает то они откладываются на потом все сделано для того чтобы кадры разсылались точно в 100мс без задержек.
Лучше конечно конкретные вопросы задавай потому что там много всего.
ApkkoПользовательwww19 дек. 201713:39#14
Почему не использовать json? Что из себя представляет бинарный формат (пример)? Вот смотрю сейчас ws_server.js и с бинарными данными совсем не понятно)
Страницы: 1 2 3 4 Следующая »

/ Форум / Проекты / Собираю команду

2001—2018 © GameDev.ru — Разработка игр