Я роблю гру MMO, і я просто дістався до моменту, коли мені потрібно реалізувати досягнення ... Як це зробити? Найбільш прямим, що потрібно зробити, було б запускати це раз на 100 мс:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Але це викликає ще більше ускладнень. Наприклад, як я можу перевірити, чи досягнуто насправді завершення? Чи мають гравці власні властивості лише для конкретного досягнення? Я робив подібну справу з квестами, оскільки вони в основному "збирають 100 деревини", тому активні квести на гравці це перевіряють. Крім того, повинен бути кращий час, щоб перевірити це, це періодично сповільнить мій сервер, я думаю.