OldMap #2 - онлайн ММО, создаю авторизацию

Всем привет, продолжаю разработку своей онлайн изометрической ММО игры)

Не забывайте читать прошлые части. Через мой профиль)

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

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

Для начала сделаю форму логин / пароль, без почт и тд, чтобы люди не подумал что это скам и не тратили время)

Временная внешне, но рабочая внутри - форма регистрации
Временная внешне, но рабочая внутри - форма регистрации

Вообще регистрация и авторизация довольно лёгкий процесс.

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

Для PHP мы отдаём новый код назад пользователя, он записывает в куки и мы теперь всегда (куки будут жить неделю) можем определить по этим куки связку - куки => пользователь.

А авторизация это просто проверка совпадения связки логин/пароль и создание временного ключа для куки, для доступа)

Аутентификация node

У нас разные сервера, для клиента и сервера, по этому куки не помогут.

Вернее куки то будут, мы будем их хранить на клиенте, но этого мало, просто получить их на сервере не выйдет, придётся их как-то передавать.

Есть разные другие варианты, но я их не знаю)

Будем использовать JWT, просто отправляем секретный ключ каждый запрос, в заголовке запроса)

Сохранение положения

Сохранение положения

Вся авторизация и регистрация была необходима прямо сейчас, чтобы начать процесс сохранения прогресса.

На текущий момент мы уже можем авторизоваться или зарегистрироваться, а потом автоматически входить в игру!

После входа мы получаем данные о нас с сервера (пока у нас система - аккаунт - персонаж) и уже работает система сохранения положения нашего игрока!

Это уже можно назвать онлайн игрой, можем бегать по карте, сохраняя прогресс !)

Интерфейс

Хотелось добавить немного UI, чтобы делать следующие шаги

OldMap #2 - онлайн ММО, создаю авторизацию

Теперь у нас есть небольшой интерфейс, с нашим логином и уровнем, данные реальные, из базы.

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

Пока UI я не рисовал, даже не думаю о нём, относитесь с нему пока как к бонусу, нежели важной информации.

Дальнейшие планы

Как вы поняли, я работаю на работе, времени проекту уделяю примерно по 5 часов в неделю.

По этому формат блогов будет пока коротким, недельным отчётом.

Далее я планирую базовые вещи:
- Изменить стартовую локацию
- Добавить 2-ую локацию с мобами, которых можно будет убивать (автобой) и получать опыт

Глобальные ближайшие планы понятны, чат, НПС, квесты, бой, интерфейс. Но не будем торопить события!)

Спасибо что почитали до конца!

Буду рад любому фитбеку, может что-то уже пора добавить, в самом начале базовое или у вас есть какие-нибудь идеи, смело делись!

Актуальная версия всегда доступна на сайте chat2you.ru, сервер может падать, пишите! )

Подписывайтесь и хорошего дня !)

77
6 комментариев

/// Хотел сказать что муторновато каждый раз токен слать

1

Ну это же только на этапе вне игры. Регистрация, авторизация, информация об игроке на старте.
В самой игре всё через socket io, там мне не нужно ничего выдумывать, никаких доп. аутентификаций )

1

Буду рад любому фитбеку1. Фидбек пишется через д.
2. Главное в ММО это геймплей и геймдизайн (рпг система на бумаге), а прикрутка логина, сохранения и лоада из дб делается в последнюю очередь, т.к. это тривиальная задача.
Ты по неопытности взялся не с того конца.
3. Хватит ставить смайлики.

1

1) Конечно, это вообще мой первый онлайн проект, по этому я закладываю в каждое действие игрока мультиплеерный код сразу. Чтобы потом все действия не переписывать )
2 )По поводу ММО, возможно в этом есть правда, я хочу сделать интерактивный мир, с простой прокачкой и групповым взаимодействием на мир, это групповые бои, пвп арена, боссы.
И конечно, я никого не обманываю, что сделаю хорошую игру и выпущу её и в неё будут играть люди.
Я просто делаю игру для себя, практикуюсь, учусь, делюсь с вами, не ожидания ничего в ответ )

Ты меня потерял на:

ММО

1

Ну это я условно, я включаю в это слово прокачку, совместные сражения и рейды.
Конечно есть гринд, надо поддерживать желания игроков быть первыми, лучшими, сильнейшими в игре )