История изменений
Исправление LightDiver, (текущая версия) :
Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.
Игроки объединяются в гильдии по интересам.
Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.
Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.
Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.
Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.
Вообще раньше все это было на клиентах игроков. Вся логика была там. Система была распределенной и не требовала сервера. Но они начали читерить. Ибо язык интерпретируемый. Все что находится у игрока - он может менять. Они и начали менять. Пришлось перенести логику на сервер.
Когда у каждого игрока было свое поле, можнобыло просто хэш-таблицами все делать. Там никаких пробелм с этим не было. Мало данных было. А теперь на сервере все данные ВСЕХ игроков. И появились проблемы.
Исправление LightDiver, :
Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.
Игроки объединяются в гильдии по интересам.
Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.
Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.
Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.
Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.
Вообще раньше все это было на клиентах игроков. Вся логика была там. Система была распределенной и не требовала сервера. Но они начали читерить. Ибо язык интерпретируемый. Все что находится у игрока - он может менять. Они и начали менять. Пришлось перенести логику на сервер.
Исправление LightDiver, :
Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.
Игроки объединяются в гильдии по интересам.
Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.
Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.
Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.
Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.
Исправление LightDiver, :
Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.
Игроки объединяются в гильдии по интересам.
Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.
Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.
Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.
Исходная версия LightDiver, :
Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.
Игроки объединяются в гильдии по интересам.
Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.
Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.