Всем привет! Сделал безопасную браузерную игру для школьников младших классов для обучения таблице умножения в Яндекс.Играх. Мой ребёнок мне помог в озвучке, тематике и стилистике. Ну и помогал в генерации графики (ИИ 🚉 использовал, ибо сам я так рисовать не умею, и бюджета на найм дизайнеров у меня нет).
Очень сильно заморочился (по мере своих сил), чтобы процесс был максимально эффективным в плане обучения. И вот какие нюансы я учёл:
⏳ в игре нет никаких таймеров, можно повспоминать не дёргаясь;
никаких внутриигровых покупок покупок за реальные деньги;
есть бонусные мышки-рыбки 🐀 для разнообразных игровых скинов;
сложность примеров растёт постепенно (т.е. вначале всякие 3*5, а 5*9 уже в конце);
симметричные примеры 3*5 и 5*3 точно не попадутся один за другим;
периодически выдаётся статистика правильности ответов и показываются неправильные (исправленные) примеры, чтобы и визуально быстрее запоминалось;
за одну сессию выдаются все комбинации из таблицы умножения (по одному разу);
не выдаются малополезные примеры с числами 1 и 10, т.к. результат в них итак очевиден и дополнительно их учить не требуется, в отличие от каких нибудь 7*7 и 6*8.
Получилась, конечно, не совсем прям игра, а скорее игровой тренажер 🧠. Но в этом проекте я именно этого и хотел. Проект принёс рублей 30 чистейшего дохода, и от подобной этой рекламы принесёт уж точно не больше. Но зато если у игры не будет 0 игроков, то её не удалят из площадки. Потому я с ней и пиарюсь )
Прошу попробовать и заценить👀. Адекватная и даже неадекватная критика и отзывы приветствуются.
Стал играть в "Побег из города призрака" и в одном месте застрял. Головоломки там не сказать чтобы зубодробительные, но с этой вот я застрял. Ответ я посмотрел, конечно, но, даже зная ответ никак не пойму как его найти из трех уравнений (см. картинку). То, что бета равна нулю следует из последнего уравнения, но как получаются остальные неизвестные?! Может кто подскажет ход решения.
Представьте, что вам понравилась компьютерная игра. И вы играли в неё несколько дней без перерыва. А потом пригласил в игру двоих друзей. Им игра тоже понравилась, но... возникла проблема!
Нет-нет, не такая. Мирная проблема. Вы-то уже достигли пятого уровня, а у друзей персонажи только первого уровня, слабенькие! Как им вас догнать, чтобы играть втроём?
Вы, конечно, можете удалить своего старого игрового персонажа, и начать игру заново. Или можете перестать играть и подождать, пока друзья доберутся до вашего уровня. Всё верно. Но... ску-у-учно! Однако есть и третий вариант – математический.
(В конце концов, любая компьютерная игра – это чистая математика. И если хотите научиться создавать видеоигры сами, то советуем с математикой подружиться заранее.)
Итак, чтобы перейти на следующий уровень, игроку в игре нужно набирать очки, то есть опыт, на тайном (непонятном родителям) игровом языке – «экспу». Скажем, за выполнение задания игрок получает сто очков опыта. А для прохода на второй уровень нужно набрать тысячу очков. На третий уровень – ещё тысячу, и так далее.
Такой рост уровня игрока в математике называется «линейным». Простая система, удобная и понятная – но! С ней товарища не догонишь, хоть ты тресни!
А теперь представим себе такой режим прохождения игры: для получения второго уровня игроку нужно набрать тысячу очков. А вот для получения второго – уже две тысячи! Для третьего – четыре тысячи. Для четвёртого – восемь и так далее.
Значит, чтобы перейти с пятого уровня на шестой, вам нужно набрать тридцать две тысячи очков. А друзьям, чтобы «докачаться» с первого уровня до пятого, понадобится 1+2+4+8+16 = тридцать одна тысяча очков! И они очень даже быстро (буквально за день) вас догонят, и дальше вы будете играть вместе на одном уровне!
Такой рост уровня игрока в математике называется (нетрудно догадаться) «нелинейным». Или – «логарифмическим».
Школьная линейка с её сантиметрами и миллиметрами – это линейная шкала:
1 сантиметр – 10 миллиметров. 2 сантиметра – 20 миллиметров. 3 сантиметра – 30 миллиметров. И так далее. А теперь представьте себе, что у нас вот какая причудливая шкала:
1 сантиметр – 20 миллиметров, 2 сантиметра – 40 миллиметров, 3 сантиметра – 80!.. Вот это и будет шкала «нелинейная», «логарифмическая».
Вы не представляете, насколько в науке и технике распространены такие вот «нелинейные линейки».
Скажем, «шкала Рихтера», по которой измеряют силу землетрясений – логарифмическая.
Шкала громкости звука в децибелах – логарифмическая.
Яркость звёзд в астрономии – тоже.
Время выдержки в фотоаппарате – тоже! И так далее, и так далее!
Название «логарифмическая» происходит от слова «логарифм». А что это за зверь? Сейчас расскажем!
Составим таблицу с двумя рядами чисел. В верхней строчке – просто числа от нуля до девяти. А вот во второй – числа «хитрые».
Что же в них хитрого? А то, что мы можем умножать их, не умножая !
Скажем, сколько будет восемь умножить на тридцать два, сможете быстро посчитать в уме? А теперь смотрите: в нашей таблице число 8 во второй строке стоит под цифрой 3 в первой строке, а число 32 во второй строке – под цифрой 5 в первой строке, так? Сложим 3 и 5 – сколько получается? Восемь! А теперь – какое число в нашей таблице во второй строке стоит под цифрой 8 в первой строке? Число 256! Всё, вот вам и ответ!
Может, это случайное совпадение? Нет, не совпадение. Повторим опыт – умножим по нашей таблице 16 на 64.
Число 16 – под цифрой 4, число 64 – под цифрой 6. Складываем 4+6, получаем 10. А какое число у нас во второй строке под цифрой 10? Число 1024. Проверяем на калькуляторе – и правда 1024!
Так что это совсем не совпадение, а наоборот – самый настоящий математический закон. Открыли его, кстати, давным давно. И догадались, что с помощью такой вот таблицы (только более подробной, конечно) можно вместо умножения чисел использовать сложение.
«А можно вместо деления по такой волшебной таблице использовать вычитание?» – спросят самые догадливые.
А вы попробуйте. Скажем, разделить 2048 на 128 – сколько будет? 2048 стоит под цифрой 11, а 128 – под цифрой 7.
Сколько будет из одиннадцати вычесть семь? Четыре. Находим число 4 в первой строке, а под ним видим число 16. И это на самом деле правильный ответ!
Понятно, что складывать и вычитать намного проще, чем умножать и делить. Особенно если числа большие и длинные! Причём не только людям – но и компьютерам! (Да-да, бывают такие задачи в математике, физике, технике и вообще в науке, которые даже для решения на самом супербыстром компьютере желательно «упрощать».) А уж как страдали учёные в те времена, когда вообще никаких компьютеров не было! Некоторые вычисления приходилось делать недели и месяцы! Горы исписанной бумаги, вёдра чернил!
Так что же такое «логарифм»? А это как раз число из первой строчки нашей чудо-таблицы!
Мы с вами как говорили? «Число 128 в таблице стоит под номером 7». А математик скажет так: «Число 7 – это логарифм числа 128 по основанию 2».
Английский математик Джон Непер первым в мире составил такие «волшебные таблицы» в 1614 году, в книге, которая так и называлась: «Описание удивительной таблицы логарифмов», по-латыни «Мирифици логаритморум канонис дескрипцио».
В тогдашнем научном мире эта книга произвела настоящий фурор, стала бестселлером! С её помощью считали мореплаватели и строители, военные и купцы, финансисты и инженеры. Вот как об изобретении логарифмов писал знаменитый французский астроном Пьер-Симон Лаплас:
«...это удивительное искусство, которое, позволяя за несколько дней сделать работу нескольких месяцев, вдвое продлевает жизнь астроному, избавляя его от ошибок, неизбежных при долгих вычислениях...»
Само название «логарифм» происходит от греческих слов «λόγος» (логос, «разум») и «ἀριθμός» (арифмос, «число») – то есть, в переводе с греческого, «логарифмы» – это «умные числа». А ведь и правда неглупые, а?
Кстати, именно на логарифмах основана работа «деревянного калькулятора», дедушкиной (и прадедушкиной) логарифмической линейки.
Никакого экрана, никакой клавиатуры, никаких кнопок, никаких программ и даже никакого электричества – просто две линейки, подвижная и неподвижная. И прозрачный «бегунок». А считать на такой линейке, между прочим, можно не хуже, чем на калькуляторе! Если хотите познакомиться с этим старинным (и незаслуженно забытым) искусством – напишите нам!
Привет, уважаемый читатель! Это маленький сиквел к моему тексту про цитадель, который я публиковал тут несколько месяцев назад. На удивление, многим он вкатил, так что я решил, что если жизнь даёт тебе лимоны, то нужно давить лимонад. Далее нас ждёт немного аналитической работы и погружение под капот некоторых локаций Portal 2. Данный блог — это текстовая адаптация видео, которое будет прикреплено ниже (или просто текст сценария, по которому я читал текст для видео). Если вашему глазу милее текст, то вы его можете увидеть чуть ниже видео, но я рекомендую именно видеоформат.
После работы над прошлым видео у меня осталось небольшое количество материалов, о которых бы хотелось рассказать. Касаться они будут уже не Half-Life 2, а другой игры из той же вселенной, созданной на движке Source, а именно — Portal 2. Вообще, в играх существует не так уж и много вещей, которые можно измерить и представить их в реальности. В Half-Life 2 было только несколько элементов дизайна игры, которые хотелось проверить в реальности. Скажем, что это может быть «Цитадель и её высота», и разве что прототип реального места действия игры.
На этом вопросы по игре лично у меня заканчиваются. Другого такого бреда в моей голове больше не появляется. Высота цитадели — единственная вещь, которую хотелось бы проверить в реальности. Мир Half-Life выполнен с размахом, и раз уж он объединяет в себе и другие игры, то в них должно быть что-то такое же монструозное. И если для Half-Life 2 этой вещью является Цитадель, то для Portal 2 — это сам комплекс Aperture Science, в стенах которого разворачивается сюжет обеих игр серии.
На протяжении всей игры мы буквально как пушечное ядро летаем в огромных тестовых камерах, размер которых порой напоминают огромный стадион. Им нет конца и края. Это огромный, бесконечный город, который объединён в одно огромное здание. И тут парадоксально то, что несмотря на размах этих тестовых камер, в течении всей игры на нас почти незаметно давит это ужасающее чувство клаустрофобии. За очередной комнатой будет ещё одна комната. После каждой лифт будет опускать нас всё ниже и ниже. И при взгляде на окна, которые встречаются в этих комнатах можно заметить, что горит в них не свет солнца, а люминесцентной лампы. В течении всей первой части Portal нам не дают понять где мы находимся. Это абсолютно пустые помещения какой-то лаборатории, где единственное разумное создание, показывающее наличие интеллекта — это бесчувственный, лишённый любой человеческой эмпатии робот GLaDOS. Давно покинутое людьми, управляемое безумной машиной, испытательное поле для одного тебя. И я отчётливо помню тот самый момент, в самом конце игры, когда после уничтожения GLaDOS что-то нас подхватывает, поднимает в воздух и выбрасывает на улицу. Мы видим снаружи простую парковку, по которой разбросаны обломки, но нет ни одного здания на горизонте. Простая парковка посреди леса. Эта сцена сильно напоминает мне момент из Матрицы, когда Нео и Тринити на своём корабле на секунду воспаряют над облаками, и после момента радости солнечному свету падают обратно в тёмную бездну.
Также и в игре Portal после минутки просветления мы обратно возвращаемся к сдавливающим нас стенам, пролетаем между километрами коммуникаций комплекса куда-то в самую его глубь, чтобы узнать, что на самом деле «Cake isn’t a lie».
В этот момент игрок понимает, что всё это время мы находились глубоко под землёй. И мозг пытается просто навскидку представить и понять, как эти комнаты размерами со стадион поместились там под землёй? И насколько глубоко под землю простирается комплекс Aperture Science?
Тут не будет каких-то громких откровений как в прошлом, потому что этот вопрос поднимался на форумах не так часто, и на Reddit я его находил только в достаточно скромных тредах на десяток комментов максимум. Однако на вики по игре, как и в случае с Half-Life, написана чёткая цифра. Вот что о размерах пишут на одном из таких вики.
Центр обогащения чрезвычайно велик, даже по стандартам, установленным такими объектами, как Исследовательский комплекс Черная Меза, который по сравнению с ним ничтожен. Соляная шахта состоит из девяти вертикальных стволов глубиной не менее 4000 метров каждая и шириной в сотни метров. Внутри кавернозных шахт находится большое количество пространства, которое не используется Aperture, и установки часто подвешены над огромными обрывами, которые уходят глубоко в шахты. Между Центром обогащения и испытательными шахтами находится большой люк, который в открытом состоянии позволяет лифту соединять первоначальный объект с современным. Через этот соединительный люк протекает также система труб Mobility Gel. Современный объект поддерживается множеством больших пружин, вероятно, сетью сейсмических изоляторов, чтобы предотвратить воздействие нестабильности шахтных стволов на чувствительное исследовательское оборудование.
В реальном мире шахты и пещеры бывают разные. Это всегда прорытый искусственно или естественным путём тоннель под землёй, который в ширину обычно бывает не больше нескольких десятков метров. Каверна же — это большая полость под землёй. Они бывают разные, одни могут быть образованы соляными отложениями, другие подземными водоёмами. Если говорить о реальных подземных полостях, то известны и поистине огромные. В России, например, печально известен город Березняки, который год за годом продолжает проваливаться под землю. Там с советских времён разрабатывалось соленое месторождение, и по мере выработки полости освобождались. В некоторых местах эти полости могут иметь высоту до сотни метров. Только представьте, что на земле стоит девятиэтажка, а под ней пустое пространство глубиной в 27 таких же этажей. Вполне себе подходит как кандидат на место строительства лаборатории исследования природы порталов и человеческой стойкости. Ещё один пример — антарктическое подземное озеро «Восток», самое большое подводное озеро, которое на протяжении 15 миллионов лет было спрятано от окружающего мира трёх-киллометровым слоем льда. Глубина этого озера может доходить уже до 800 метров, что примерно сопоставимо с высотой самых высоких небоскрёбов. Также может быть, что каверна находится под ещё одним естественным углублением в земле, как например подземное озеро острова Оуи в Ирландии, которое находится на 50 метров ниже другого озера. В общем, кандидатов на застройку в нашей реальности достаточно много, но они так и не дотягивают до умопомрачительных 4000 метров.
Город Березняки
Но даже будь у нас в распоряжении здание на глубине 4 километров, там было бы просто невозможно находится. Всё дело в крайне высокой температуре под землёй. Cчитается, что температура в ядре и мантии земли составляет в среднем 6000 и 4000 градусов по Цельсию соответственно. Эти температуры просто трудно представить, но и достигаются они в сотнях и тысячах километрах под землёй. Но даже не смотря на это, относительно не глубоко температура тоже очень высока. Например, максимальная температура была измерена и зафиксирована на глубине около 6000 метров и составила 274 градуса по Цельсию. Это примерно на 100 градусов выше той температуры, при которой вы запекаете мясо в духовке. Содержать здание на такой глубине скорее всего не очень реально, потому что физику не обманешь. Тепло — это энергия, которая не может просто так испарится.
К счастью, если конкретно измерить глубину залегания лаборатории Aperture Scienceв игре Portal 2, то можно в итоге узнать, могла бы она существовать в реальности или нет? Для этого как и в прошлый раз нам нужно декомпилировать архив с игровым контентом на нужной нам карте, открыть всё в Hammer Tools или Blender, и замерить всё линейкой. Ничего сложного.
Первый и самый очевидный способ: зная скорость и время падения мы можем высчитать пройденное расстояние. Объектом нашего исследования станет карта sp_a3_00. Сперва перейдём на требуемую локацию, и сразу же откроем консоль. Теперь введём команду, которая добавит нам к экрану информацию с нашими координатами, и также будет нам показывать информацию о скорости перемещения. Теперь нам нужно лишь засечь время, снять игру с паузы и дождаться падения. Проведя все требуемые расчёты мы получим требуемую цифру.
Вот незадача. Магическим образом счётчик скорости застыл на нуле. Нужно разобраться, почему счётчик показывает 0.
Вводим следующие команды в консоль:
r_drawclipbrushes — эта команда отображает на экране элемент, который называется Clip Brushes, или также его можно назвать «невидимой стеной». Это элемент, который поваляет создать невидимую структуру, благодаря которой решаются многие проблемы с левел дизайном любой игры и локации выполненной на движке Source. К примеру, чтобы игроки не застревали на выступах вдоль стен. Эти структуры прозрачны и незаметны. Они пропускают через себя рэгдолы, физические объекты, но не пропускают игрока и ботов. Абсолютно необходимый инструмент любого левел-дизайнера. И как видите, тут игрок окружён именно такой структурой. Видимо, он стоит на месте и просто не имеет физической способности передвигаться, даже со включенным параметром noclip.
sp_a3_00
Это меня заинтриговало, тут я решил разобраться в строении уровня. Учитывая что мы достаточно долго летим вниз, можно предположить, что этот уровень должен быть одним из самых больших в игре. Проверить это можно в одной из утили из набора модера для движка Source. Каждая карта из игры лежит в отдельной директории в виде отдельного файла. Когда мы переходим на новый уровень игра запрашивает файл с нужным названием и загружает именно ту локацию, которая нужна по игре. Сам файл представляет собой архив, в котором лежит информация о моделях, самом игровом поле, текстуры, анимации и ссылки на ресурсы, которые могут подтягиваться из sdk. Данная утилита может проверить этот файл на целостность и работоспособность. Грубо говоря она показывает, прогружается ли вся информация из этого архива или нет. Интересно тут то, что эта программа также показывает и размеры локации по осям X, Y и Z. Результаты отображаются в Hammer Unit-ах. Мы уже говорили о них в прошлом видео, если забыли, то советую пересмотреть.
Удивительно, но утила сообщает нам о том, что сама по себе локация крайне маленькая. Всего 13700 h/u в высоту. Это говорит нам о том, что уровень строится более интересным образом. Игрок находится в невидимой коробки, посреди маленькой комнаты с невидимыми стенами. Всё то, что находится в самой комнате — отрисовывается, а всё то, что за ней просто не отображается. Чтобы проверить так ли это — вернёмся в игру и введём ещё две команды.
mat_luxels 1 — эта команда отображает нам сетку на каждой модельке, которая появляется на уровне.
mat_leafvis 1 — эта команда отображает так называемые «Чанки», или условные блоки, в которых находится игрок и к которой прогружается тот или иной контент.
mat_luxels 1 и mat_leafvis 1
Сперва посмотрим на них. Как вы видите, там где находится игрок — появляется синий параллелепипед, а если выйти за его рамки, то начнёт отображаться соседний. Если на уровне в трубе мы будем действительно падать, то эти Чанки будут меняться. Теперь перейдём к следующей команде, которая отображает нам сетку на каждой модельке. Эта сетка поможет нам увидеть, прорисована ли труба изначально, или она появляется частями по мере того, как сама труба движется вверх через нас.
Присмотритесь, там в дали силуэт проступает.
И так, у нас есть только один гигантский Чанк, в котором, видимо, прогружается сама труба, и отрисовывается она только в небольшом поле вокруг нас. Новые элементы локации появляются немного вдалеке от нас. А это означает, что нам нужно просто декомпилировать карту, и посчитать размер этого огромного Чанка. Но об этом позже. Пока поразмышляем с какой скоростью может двигаться эта труба.
Любой опытный спидраннер или сёрфер из CSGO может чисто на вскидку сказать с какой скоростью движется окружение. Представим, что по ощущениям скорость будет около 1500 u/s. Если представить, что получится?
Считаем 1500 u/s * 75 секунд сцены. И мы получаем 112500 юнитов, а 16 юнитов равны 1 футу. Считаю 112500 юнитов делим на 16 и выходит 7031 футов, или 2143 метра. Оставим эту цифру в голове. Попробуем разобрать файл с картой.
Переходим в папку с игрой и открываем директорию, в которой лежат файлы самих локаций. Как мы помним, на уровне sp_a3_00есть огромный Чанк, в который и прогружается вся труба целиком. Конвертируем карту в уже привычный мне obj-файл и открываем его в Blender-е. Мы видим тут два огромных параллелепипеда.
Файл называется simpleworldmodel.mdl — 1) открыт в Blender, 2) открыт в Hammer World Craft
Файл называется simpleworldmodel.mdl — 1) открыт в Blender, 2) открыт в Hammer World Craft
Тот что поменьше — это, вероятно, место, где хранятся сегменты большой трубы. Как видно из информации, которую я нашёл в интернете — сегменты трубы прогружаются в отдельной зоне локации. И ещё есть длинная часть, которая вероятно и является местом, где эта труба и соединяется в одну целую конструкцию.
Единственное, что теперь нас отделяет от ответа на вопрос — это линейка из инструментария Blender-а. И теперь я могу уверенно заявить, что глубина научного комплекса Aperture Science составляет 2500 метров. Считая глубину навскидку я ошибся всего-то на несколько сот метров. А значит и эту информацию в википедии можно поправить. Я надеюсь вам было интересно узнать столь бесполезный, но очень интересный факт.