OldMap #2 - онлайн ММО, создаю авторизацию
Всем привет, продолжаю разработку своей онлайн изометрической ММО игры)
Не забывайте читать прошлые части. Через мой профиль)
В прошлой версии я делал форму входа через логин, без проверок и тд. Чтобы можно было комфортно зайти потестировать.
Сейчас уже хочется начать сохранять прогресс игрока, хотя бы локацию и позицию. Для это нужна авторизация.
Для начала сделаю форму логин / пароль, без почт и тд, чтобы люди не подумал что это скам и не тратили время)
Вообще регистрация и авторизация довольно лёгкий процесс.
На этапе регистрации мы создаём в базе нового пользователя, тут же создаём ключ-юзер запись для временного входа.
Для PHP мы отдаём новый код назад пользователя, он записывает в куки и мы теперь всегда (куки будут жить неделю) можем определить по этим куки связку - куки => пользователь.
А авторизация это просто проверка совпадения связки логин/пароль и создание временного ключа для куки, для доступа)
Аутентификация node
У нас разные сервера, для клиента и сервера, по этому куки не помогут.
Вернее куки то будут, мы будем их хранить на клиенте, но этого мало, просто получить их на сервере не выйдет, придётся их как-то передавать.
Есть разные другие варианты, но я их не знаю)
Будем использовать JWT, просто отправляем секретный ключ каждый запрос, в заголовке запроса)
Сохранение положения
Вся авторизация и регистрация была необходима прямо сейчас, чтобы начать процесс сохранения прогресса.
На текущий момент мы уже можем авторизоваться или зарегистрироваться, а потом автоматически входить в игру!
После входа мы получаем данные о нас с сервера (пока у нас система - аккаунт - персонаж) и уже работает система сохранения положения нашего игрока!
Это уже можно назвать онлайн игрой, можем бегать по карте, сохраняя прогресс !)
Интерфейс
Хотелось добавить немного UI, чтобы делать следующие шаги
Теперь у нас есть небольшой интерфейс, с нашим логином и уровнем, данные реальные, из базы.
Интерфейс нужен чтобы можно было делать опыт, начать можно допустим с бонуса за ежедневный вход в игру
Пока UI я не рисовал, даже не думаю о нём, относитесь с нему пока как к бонусу, нежели важной информации.
Дальнейшие планы
Как вы поняли, я работаю на работе, времени проекту уделяю примерно по 5 часов в неделю.
По этому формат блогов будет пока коротким, недельным отчётом.
Далее я планирую базовые вещи:
- Изменить стартовую локацию
- Добавить 2-ую локацию с мобами, которых можно будет убивать (автобой) и получать опыт
Глобальные ближайшие планы понятны, чат, НПС, квесты, бой, интерфейс. Но не будем торопить события!)
Спасибо что почитали до конца!
Буду рад любому фитбеку, может что-то уже пора добавить, в самом начале базовое или у вас есть какие-нибудь идеи, смело делись!
Актуальная версия всегда доступна на сайте chat2you.ru, сервер может падать, пишите! )
Подписывайтесь и хорошего дня !)
/// Хотел сказать что муторновато каждый раз токен слать
Ну это же только на этапе вне игры. Регистрация, авторизация, информация об игроке на старте.
В самой игре всё через socket io, там мне не нужно ничего выдумывать, никаких доп. аутентификаций )
Буду рад любому фитбеку1. Фидбек пишется через д.
2. Главное в ММО это геймплей и геймдизайн (рпг система на бумаге), а прикрутка логина, сохранения и лоада из дб делается в последнюю очередь, т.к. это тривиальная задача.
Ты по неопытности взялся не с того конца.
3. Хватит ставить смайлики.
1) Конечно, это вообще мой первый онлайн проект, по этому я закладываю в каждое действие игрока мультиплеерный код сразу. Чтобы потом все действия не переписывать )
2 )По поводу ММО, возможно в этом есть правда, я хочу сделать интерактивный мир, с простой прокачкой и групповым взаимодействием на мир, это групповые бои, пвп арена, боссы.
И конечно, я никого не обманываю, что сделаю хорошую игру и выпущу её и в неё будут играть люди.
Я просто делаю игру для себя, практикуюсь, учусь, делюсь с вами, не ожидания ничего в ответ )
Ты меня потерял на:
ММО
Ну это я условно, я включаю в это слово прокачку, совместные сражения и рейды.
Конечно есть гринд, надо поддерживать желания игроков быть первыми, лучшими, сильнейшими в игре )