LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.

Игроки объединяются в гильдии по интересам.

Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.

Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.

Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.

Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.

Вообще раньше все это было на клиентах игроков. Вся логика была там. Система была распределенной и не требовала сервера. Но они начали читерить. Ибо язык интерпретируемый. Все что находится у игрока - он может менять. Они и начали менять. Пришлось перенести логику на сервер.

Когда у каждого игрока было свое поле, можнобыло просто хэш-таблицами все делать. Там никаких пробелм с этим не было. Мало данных было. А теперь на сервере все данные ВСЕХ игроков. И появились проблемы.

Исправление LightDiver, :

Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.

Игроки объединяются в гильдии по интересам.

Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.

Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.

Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.

Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.

Вообще раньше все это было на клиентах игроков. Вся логика была там. Система была распределенной и не требовала сервера. Но они начали читерить. Ибо язык интерпретируемый. Все что находится у игрока - он может менять. Они и начали менять. Пришлось перенести логику на сервер.

Исправление LightDiver, :

Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.

Игроки объединяются в гильдии по интересам.

Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.

Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.

Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.

Количество запросов в секунду и их размер очень серьезно ограничены… Считать конечный результат тоже не получится из за неравномерного онлайна игроков. Один может зайти на 5 минут, второй на полчаса итд.

Исправление LightDiver, :

Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.

Игроки объединяются в гильдии по интересам.

Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.

Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.

Про таймеры все сложнее. Траваи деревья должны расти только пока игрок в игре. Онлайн. Поэтому нельзя просто так итерировать на сервере. Я придумал, что игрок раз в 100 секунд отправляет серверу запрос. Получил запрос - проитерировал объекты.

Исходная версия LightDiver, :

Есть онлайновая РПГ игра. Где бегают орки, эльфы и прочие гоблины. Это игроки.

Игроки объединяются в гильдии по интересам.

Вот я в рамках такой гильдии даю игрокам задания, они их выполняют, я даю за это награды. Поле - интерфейс работы с этими заданиями.

Тыкнет игрок на хижину, а ему оттуда: «Найди похищенную принцессу, ее похитители утащили в глубины Темнолесья, откуда уже четвертый час доносятся неприличные звуки, о герой!». И идет он ее искать и спасать. Спас, получил опыт и сумку на 20 ячееек условно.