TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #458 · 24.07

Есть такая игра TrackMania, я вам уже про неё когда-то давно писал. Это очень аркадная гонка. Настолько аркадная, что автомобили на трассе никак друг с другом не взаимодействуют (вы не можете столкнуться с соперником, просто проедете сквозь него), и задача игрока состоит в том, чтобы сражаться со сложностью трассы. А трассы обычно включают в себя прыжки, мёртвые петли, движение по стенам и так далее. Разумеется, нужно пройти трассу быстрее, чем остальные. "Пройти трассу" с точки зрения движка игры означает следующее: корпус автомобиля в любом порядке пересекает чекпоинты, а затем попадает в область финиша. Ещё физический движок у игры идемпотентный: одинаковый набор управляющих воздействий всегда в точности приводит к тому же положению автомобиля и тем же векторам линейной и угловой скорости. Это создаёт ситуацию, при которой повтор прохождения игроком какой-либо трассы можно записать просто как цепочку нажатий на клавиши управления в заданные моменты времени. Так что игроки могут этими повторами обмениваться и соревноваться асинхронно: один проходит трассу за 2 минуты и 19 секунд, загружает свой результат в сеть, а другой через неделю соревнуется и с ним и побеждает, проходя трассу за 2 минуты 18 секунд. Вокруг этой игры создалось очень большое и активное сообщество людей, которые друг с другом соревнуются и ставят рекорды. Эти игроки проводят в TrackMania десятки часов в неделю, и зачастую сами себе создают челленджи. Например, пройти все трассы в игре, никогда не поворачивая вправо. Или пройти задним ходом. Или даже с закрытыми глазами, ориентируясь по звукам и таймеру. Ещё в игре есть редактор трасс, и поэтому сообщество создаёт очень сложные многоуровневые треки для всех желающих. Так вот, интересный момент. Как я уже говорил, движок засчитывает прохождение по довольно формальным признакам. Поэтому технически совсем не обязательно проехать на машине по дороге. Если вы каким-то образом заставите машину взлететь и проскакать с более быстрой скоростью — это валидный рекорд. И сообщество тоже такое принимает и даже всячески восхищается игроками, которые смогли обмануть игровой движок и найти, что называется, shortcut. Профессиональные игроки владеют набором специальных багов. Например, если определённым образом поставить машину боком под правильным углом с правильной скоростью, трение торможения уменьшится, и можно будет пройти какой-то кривой участок быстрее. Ещё можно под нужным углом удариться о поверхность и отскочить от неё куда требуется. И таких обманов движка пара десятков. Нередко игрокам приходится их комбинировать, поэтому они сидят десятки и сотни часов, проходя одну и ту же трассу, чтобы получить идеальное стечение обстоятельств ради улучшения времени на одну сотую секунды. Не преувеличиваю. При этом, однако же, читерство и "внешние" обманы в игре очень сильно критикуются. Если тебя заподозрят в использовании программы, которая за тебя нажимает клавиши, или в какой-нибудь подделке памяти — это смерть для твоей репутации в сообществе. Вот какое дело получается: разработчики заложили формальные правила игры (ехать на машине по дороге), и нарушение этих правил поощряется. Но нарушение правил игрового движка уже жёстко критикуется. Чисто практически разница между этими правилами очень условная: и то, и другое это отступление от игры в том виде, в котором игра задумана. Но людям нужно было где-то поставить границу, после которой издевательство над игрой уже не обладает зрелищностью и спортивной составляющей, так и получилось. На видео ниже норвежский про-игрок с ником Wirtual рассказывает об одном из таких случаев, по-моему, очень интересно и напряжённо вышло :) #games https://www.youtube.com/watch?v=_b67SC7Y4qA

Hashtags

Резултати

Намерени 1 подобни публикации

Търсене: #sockets

当前筛选 #sockets清除筛选
djangoproject

@djangoproject · Post #261 · 16.02.2017 г., 06:56

http://www.giantflyingsaucer.com/blog/?p=5557 In spring 2014 Python 3.4 shipped a provisional package (#asyncio) which according to the docs “provides infrastructure for writing single-threaded #concurrent code using #coroutines, #multiplexing I/O access over #sockets and other resources, running network clients and servers, and other related primitives“. I can’t possibly cover everything in this article but I can introduce some of the things you can do with it. As per my New’s Years resolution I’ll be building these #examples using Python 3.4.2 (Asyncio has been ported back to Python 3.3 now as well).