Top.Mail.Ru
Ответы

C# Как лучше сохранять и брать с базы данных mysql в игре

Есть игра на c# и mysql. Там можно получать кристаллы... А также их можно купить на сайте. Допустим на данный момент он имеет 109 кристаллов. Если он купит кристаллы и выйдет из мира (там много миров, можно переключаться на них), то переменные игрока запишутся в базу данных mysql, что обновить то, что он получил в игре, что значит, что та купленная 1000 поменяется на 109. Как можно сделать, чтобы и в игре если получит и если кто-то поменяет в базе данных его количество кристаллов, они бы не пропали не в игре, не в mysql.

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

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

Аватар пользователя
Мастер
5лет

у тебя игра прям напрямую к SQL подклчается или у тебя есть какой то промежуточный сервер где запущен бэкэнд и ты тыкаешься в него чтобы получить значения из базы данных?

Аватар пользователя
Мастер
5лет

Не совсем понятно что значит "Как можно сделать, чтобы и в игре если получит и если кто-то поменяет в базе данных его количество кристаллов, они бы не пропали не в игре, не в mysql".
Грубо говоря можно изменить количество кристаллов двумя способами. 1) Действием в игре. 2) Любым другим. Можно рассмотреть идею аля MVC. Клиент отправляет запрос на сервер, там контроллер проверяет, возможно ли такое изменение. Если да - изменяет. Второе - запрос например с донат-сервера. Контроллер должен определять тип запроса.
Конкретно работа с БД - могу предложить Entity Framework.