За последние 24 часа нас посетили 18902 программиста и 1634 робота. Сейчас ищут 883 программиста ...

Реализация системы игр. достижений, какова логика процесса?

Тема в разделе "PHP и базы данных", создана пользователем Nierra, 7 окт 2015.

  1. Nierra

    Nierra Новичок

    С нами с:
    7 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Доброго времени суток уважаемые пользователи! Меня зовут Артем и я активно увлекаюсь WEB-Программированием (да, я знаю, что более корректный термин будет WEB-разработка, но не обижайтесь за это) и у меня есть вполне себе амбициозная цель - написать не особо сложную браузерную игрушку, сугубо для узкого круга друзей и в целях самообучения.
    Это достаточно сложная для меня задача и у меня есть к вам необычный вопрос. В игре планируется система достижений (как в World of Warcraft и.т.д) и вопрос заключается в следующем, как реализовать проверку выполнения условий для получения того или иного достижения.
    То есть предположим у нас есть 2 независимые таблицы. В одной статистика игроков со столбцом "победы", во второй само достижение "Одержать N побед". Я вижу логику так, при добавлении данных о результате матча, проводить проверку и при соблюдении всех условий, делать в БД запись о получении определенным игроком достижения. Собственно подскажите пожалуйста...
    1. Как в столбце одной таблицы указать, что нужно сделать какие-то определенные действия, если значение в другой таблице в определенном столбце стало равно, например, 10. (т.е указать требование, при котором это достижение может быть получено для каждого игрока индивидуально)
    2. Как лучше это реализовывать, силами PHP или процедурами в MySQL (не особо силен в процедурах, поэтому не знаю пока что их истинные возможности)

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

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Реализация системы игр. достижений, какова логика процес

    он не более корректный. Он более пальцастый. Более пафосный только web-development =)

    выбрать, посчитать, если набралось - дать достижение. Я б на пхп делал.
     
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Re: Реализация системы игр. достижений, какова логика процес

    В проекте вашего типа не ставьте вопрос о том как и в какую структуру писать данные. Увидьте для начала где и как ваши данные будут применяться (например выводится в приложении и участвовать в вычислениях конкретных сущностей). И уже исходя из этого принимайте обоснованное решение о типе структур и способах добавления данных.
    Не забивайте себя в тупик поиском ответов на задачи в которых пока больше неизвестных чем известных значений.
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Re: Реализация системы игр. достижений, какова логика процес

    У меня кстати такое часто происходит. И потом затык на неделю обеспечен((
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Реализация системы игр. достижений, какова логика процес

    это с опытом приходит как делать просто. Сложно делать - легко. А просто делать - сложно.
     
  6. Nierra

    Nierra Новичок

    С нами с:
    7 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Re: Реализация системы игр. достижений, какова логика процес

    Вы абсолютно правы) Мне кажется что в целом эту задачу я в состоянии решить, но хочется сделать изящно и наиболее компактно. Если абстрагироваться от конкретной задачи, реально ли на SQL сделав зависимости таблиц множество-множество или от одной к множеству, чтобы в определенной ячейке выполнялась проверка значений в другой таблице. В процедуре или с использованием функций, или будет-ли в этой ячейке храниться "формула" (или просто значение, которое прогонять через Swith), по которой все таки прийдется на PHP выполнять проверку.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Реализация системы игр. достижений, какова логика процес

    можно конечно и в мускуле =)
    ты делай, не понравится - переделаешь, максимум два-три дня потеряешь.
     
  8. Nierra

    Nierra Новичок

    С нами с:
    7 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Re: Реализация системы игр. достижений, какова логика процес

    Подскажите пожалуйста еще такой момент... Где лучше хранить все SQL запросы(бибилиотека), в файле .sql или в файле .php? Т.е храня их в php я просто подключаю эту библиотеку в нужном файле и спокойно к ним обращаюсь. Хранить в sql наверное будет логичнее, но как тогда вытаскивать их для использования в php файле? Или вообще зранить каждый запрос в отдельных .sql файлах. Но на огромных проектах будут сотни файлов лежать
     
  9. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Re: Реализация системы игр. достижений, какова логика процес

    Когда у вас будет огромный проект, дойдете до MVC. Пока же стройте запросы хоть в контроллерах если хотите завершить проект.
    Либо, если задор не пропадёт и хочется сделать всё по уму, берите тот же Yii, изучайте документацию, и пишите проект на его основе. В этом случае вопросов в духе "где хранить запросы" уже не будет.
     
  10. Nierra

    Nierra Новичок

    С нами с:
    7 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Re: Реализация системы игр. достижений, какова логика процес

    Спасибо