Как создать систему заданий в игре?

Вопрос мой довольно развёрнутый

Создаю игру, в которой нужно реализовать получение заданий из БД
не могу решить вопрос с тем в каком формате их получать и обрабатывать

к примеру:
чел получает задание купить 2 стула в магазине -> он их покупает -> ему дают награду
далее он получает задание купить диван и стол -> успешно -> награда
и он получает задание третье - разместить эти 2 стула, стол и диван в доме


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

мне интересно как это работает с точки зрения алгоритма более развёрнуто,
я имею в виду примерный функционал классов, которые мне нужно написать
(где есть способ сохранения текущего прогресса (я думаю использовать PlayerPrefs)),

нежели "ну там у тебя в БД таблица с заданиями, ну ты создаёшь класс для заданий и всё"
(обычно я находил только подобные ответы, но ведь это очевидно | наверное, я не умею гуглить)

Программирую я не долго, но меня вымораживает тот факт, что даже в играх в ВК есть такая механика, а я не могу придумать как это реализовать.
  • Вопрос задан
  • 599 просмотров
Решения вопроса 1
yegorw
@yegorw
Analyst, Web-developer, Python, C#, Ruby
Создай таблицу с столбцами как было сказано выше, к ней напиши класс с методами:
1. Определение типа задания (купить, продать, поставить и.т.д), в зависимости от возвращенного значения напиши логику игрока для выполнения)
2. Тип предмета для действия (тут все просто, будут хранится предметы: стулья, столы, и.т.д. и их количество для выполнения)
3. Награда за выполнение задания.
4. Количество предметов у игрока (все то же самое что и в столбце 3)
5. Процесс выполнения (по желанию) в нём будут высчитываться сколько у игрока нужных предметов и в зависимости от их количества ставится % выполнения.

Может ещё какие есть, не продумывал детально. Все эти столбцы обернуть методами взаимодействия между собой, для проверки выполнения, и так далее. Пиши, если будут вопросы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
lexxpavlov
@lexxpavlov
Программист, преподаватель
Хороший ответ Yegor, добавлю ещё другую таблицу: условия появления заданий - какая задача появляется после какой. Туда же можно добавить другие условия: время, уровень, наличие предметов или наоборот отсутствие (исчез важный предмет - добавить необязательное задание для получения этого предмета заново).
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Разработка игр
software engineer
В чем проблема добавить столбец "тип задания", где будет "купить", "продать", "разместить", "найти" и др.
Делал такое в игре еще 20 лет назад.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы