Как стать автором
Обновить
371.51

Игры и игровые консоли

Камень, ножницы, бумага

Сначала показывать
Порог рейтинга
Уровень сложности

Три Кита из мира шутеров. Часть 1

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров6K

И для начала отправимся в середину 90-х годов. В то время на свет, благодаря стараниям известнейшего режиссёра Стивена Спилберга и бывшего руководителя анимационного подразделения «Диснея» Джеффри Катценберга, появилась компания «DreamWorks», что начала клепать фильмы и мультфильмы, причём весьма успешные. И спустя год после основания, под крылом гиганта, при сотрудничестве с Microsoft, родилась студия «DreamWorks Interactive», что должна была производить видеоигры.

Упомянутый выше Спилберг был большим поклонником этого вида развлечений, и однажды, увидев, как его сын играет в шутер «GoldenEye 007», решил создать что-то зрелищное и интересное для юного поколения. За спиной режиссёра к концу десятилетия уже был успешный фильм «Спасти рядового Райана», а потому Спилберг решил перенести атмосферу сражений Второй Мировой в видеоигру. Да ещё и сделал этот проект эксклюзивом для PlayStation 1. Так в 1999 году вышла самая первая часть «Medal of Honor».

Читать далее

Первому игроку приготовиться

Уровень сложностиПростой
Время на прочтение40 мин
Количество просмотров10K

Электронные игры (аркадными, видео и компьютерными они станут значительно позже) появились не в уютных гостиных и даже не в шумных игровых клубах. Первые игры родились совсем в других местах — в исследовательских лабораториях, университетах и на военных базах чьей-то там минобороны, где военные искали новые способы использования технологий, чтобы внести побольше рацпредложений на одну солдатиковую единицу. На авиастанции корпуса морской пехоты Канеохе, солдатикам предлагали электромеханические игры еще в 1949. Чтобы хоть ненадолго отвлечь молодцев от изнуряющей подготовки и строгой дисциплины, в гулко звучащих казармах новобранцы часами сосредоточенно вертели ручки и нажимали кнопки, стараясь на время забыть тяготы и лишения, пока начальство судорожно решало проблему нехватки брома в части.

Тем временем, в тишине университетских корпусов, среди гудящих cтоек и залежей перфокарт, заспанные и перегруженные учебой студенты, будущие светила программирования и предлагатели новых стандартов превращали огромные дорогущие мейнфреймы в примитивные игровые приставки. Вместо добивания перфокартами сложных математических расчётов или моделей для научных работ, эти люди писали код для первых игр. Не могу их в этом винить, потому что сам в конце 90х прокрадывался в зал, где стоял отцовский комп и тайком запускал SimCity или Цезаря, или пытался накропать морской бой на BASIC руководствуясь исходниками, напечатанными в каком-то журнале и молясь, чтобы скрип жесткого диска и попискивание бипера не были услышаны родителями.

Так, в тени науки и военных технологий, из любопытства, усталости и стремления поиграть, зародилась одна из самых мощных индустрий развлечений современности — видеоигры. Небольшая передышка для одних, вскоре стало культурным феноменом масс и изменила мир развлечений.

Press start

Как запустить сервер для Counter-Strike 1.6: инструкция для новичков

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров21K

Counter-Strike 1.6 — культовая игра, которая дает возможность создать свой сервер для игры с друзьями или публичных матчей. Если вы хотите настроить его, но не знаете, с чего начать, эта статья вам поможет. Под катом подробно рассмотрим, какие есть способы создания сервера, как выполнить установку, настройку, защиту от DDoS-атак и пригласить других игроков.
Читать дальше →

GameRoy: динамическая компиляция на примере высокоточной эмуляции игр для Game Boy

Время на прочтение19 мин
Количество просмотров3K

На протяжении более двух лет я много времени уделял разработке моего собственного эмулятора Game Boy, GameRoy. Я немало успел сделать. В эмуляторе был готов графический пользовательский интерфейс (с отладчиком и дизассемблером), сама программа прошла многочисленные тесты и могла сравниться с некоторыми наиболее точными эмуляторами. Я даже портировал её на Android!

Читать далее

Game++. run, thread, run…

Уровень сложностиПростой
Время на прочтение33 мин
Количество просмотров6.2K

Разрабатывая свою игру, движок или фреймворк, вы в любом случае столкнетесь с необходимостью реализации системы загрузки ресурсов, выполнения задач вне основного цикла игры, вынесения различных подсистем (звук, рендер, физика, эффекты) в отдельные потоки, чтобы снизить время подготовки кадра и улучшить общую производительность. Будучи классическим программистом, вы, наверное, знаете о проблемах реализации многопоточности, использовании блокировок и алгоритмов, которые основаны на блокировках.

В обычном программировании с блокировками, когда возникает необходимость пошарить данные, приходится использовать механизмы сериализации доступа к таким данным, чтобы операции, выполняющие работу с такими данными, были ограничены от одновременного вмешательства со стороны других потоков и возможности их поломать. В прямом смысле поломать. Даже такая простая операция, как ++count, где count имеет тип integer, требует блокировки, поскольку операция инкремента в общем случае представляет собой трехшаговую операцию (чтение, модификация, запись), которая не является атомарной. Про что-то более сложное и длительное я уже и не говорю.

За кажущейся простотой скрывается множество граблей и ловушек: взаимные блокировки (deadlock), «голодание» потоков, асинхронные ошибки. Это похоже на попытку дирижировать оркестром, где музыканты игнорируют ритм. Проще говоря, любые действия над данными могут привести к проблемам, и чтобы этого не происходило, операции над данными должны быть атомарными, это решается вводом в код примитивов синхронизации, вроде мьютексов, семафоров, спинлоков.

Первая хорошая сторона программирования с блокировками состоит в том, что пока ресурс заблокирован, никакая другая логика не может вмешаться. Вторая хорошая сторона — люди прекрасно понимают, читают и работают с таким кодом, потому что он хорошо вписывается в "естественное" понимание устройства мира. А вот дальше начинаются проблемы...

Читать далее

Ностальгические игры: Sid Meier's Civilization IV

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.6K
image

Время безжалостно – оно превращает величайшие империи в пыль, оставляя после себя лишь строки в учебниках истории. Но так же происходит и с играми: одни уходят в забвение, а другие вызывают споры даже спустя десятилетия. Civilization III была глубокой, сложной, порой беспощадной к новичкам, но именно за это её и любили, поэтому когда в 2005 году вышла Civilization IV, фанаты встретили её настороженно. Разработчики во главе с Сидом Мейером и Сореном Джонсоном сознательно отошли от прежней формулы, сделав игру динамичнее и интуитивнее, и этот шаг стал причиной множества споров: кто-то увидел в нём упрощение, а кто-то – эволюцию.

Но за этими изменениями стоял продуманный дизайн. Разработчики не просто «облегчили» игру, но попытались сделать стратегию доступной без ущерба для глубины. Полностью трёхмерная карта, гибкая дипломатия, влияние религии, доработанная система великих людей – всё это не только меняло тактику, но и делало каждое прохождение уникальным. Civilization IV была создана с мыслью, что даже тот, кто впервые попробует серию, сможет в неё втянуться, а ветеран всё равно найдёт, над чем ломать голову.
Civilization IV очень сильно отличалась от своих предшественников, однако, независимо от мнений, она оставила след в истории стратегий, и сегодня самое время вспомнить, что сделало её такой особенной…
Читать дальше →

Уникальные редкие игровые механики в забытых играх

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров74K

Роль игровой механики в видеоиграх трудно переоценить. Все игры, ставшие культовыми, имели уникальную механику, которую позже стали все копировать.

Время от времени появляется игра, которая показывает что-то новое и по-настоящему революционное. Например, Metal Gear Solid (1998), разработанная Konami, представила игровой процесс, основанный на скрытности, в жанре приключенческого боевика. Игрокам предлагалось избегать конфронтации и придумывать хитрые тактики для прохождения, пробираясь мимо врагов, прячась в картонных коробках и используя гаджеты для отвлечения охранников. Этот акцент на механике скрытности выделил Metal Gear Solid среди других экшн-игр того времени и породил целый поджанр стелс-игр, включая серии Hitman, Splinter Cell и Dishonored.

Но хорошая игровая механика — это лишь часть самой игры. Если повествование и геймплей хромают, то механика, какой бы крутой она ни была, не спасёт. Мы полюбили Super Mario Bros. (1985) не потому что, там впервые появилась механика скольжения персонажа, а из-за того что, это игра подарила нам множество часов весёлых приключений в удивительном мире.

Поэтому существуют игры, которые игроки не приняли или забыли, но у которых была великолепная игровая механика. В свое время разработчики игр приветствовали всевозможные нестандартные решения, как в плане механики, так и в плане визуальных эффектов. Это породило игры с уникальными механиками. По разным причинам эти механики не получили должного развития, они не получили новую жизнь в других играх. Но они были очень потрясающими, чтобы о них просто так забыть.
Читать дальше →

«Я в домике»: самые безопасные и уютные места в играх

Время на прочтение11 мин
Количество просмотров11K

Привет! Замечали, что несмотря на колоссальное разнообразие игр, разработчики зачастую придерживаются в них определенных паттернов? Постепенное повышение сложности, открытие новых мест по мере продвижения по сюжету, добавление побочных квестов. И, конечно, игроку обычно дают несколько безопасных локаций, в которых можно перевести дух, поесть, поспать, починить снаряжение и так далее. В некоторые такие места попасть легко — они находятся на пути игрока или даже включены в сюжетную линию. Как например, комната сохранения из серии Resident Evil. Но некоторые убежища находятся вдали от основной истории и троп игры, поэтому следует постараться, чтобы туда попасть. Вот обо всех таких локациях мы в этот раз и поговорим. Только будьте осторожны: как только вы войдете в эти особенные места, возможно, никогда не захотите уходить.
Читать дальше →

Как старые игры учили нас программировать

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров19K

Речь пойдёт про ностальгию и первые игры. Те самые первые игры, которые навсегда остаются в памяти, как огромные сугробы чистейшего белого снега (а не коричневого с желтым), про те игры, которые живы и спустя десятки лет и про то, какое место они могут занимать в нашей жизни.

Краткий список, наиболее важных игр на ПК, которые несомненно повлияли на мою жизнь больше, чем какие либо ещё явления или события может выглядеть так: Heroes 3, Warcraft 3, Half-Life / CS1.5, Diablo 2, Morrowind 2, Serious sam. Мне кажется, именно эти игры причины того, что я смог стать программистом (и наверняка они повлияли не только на меня). Вы могли бы спросить, где тут связь и что общего между этими играми, кроме того, что они примерно из одной эпохи? Все эти игры имели потрясающую поддержку комьюнити, где то благодаря, а где то и вопреки воле разработчиков. Мощнейшие редакторы карт (и миров! чего только стоит название Warcraft 3 World Editor) в комплекте с игрой или фанатская любовь, которая выражалась в потрошение ресурсов и кода игр до последнего байта. Я помню, что мой первый диск (или один из) был с игрой CS1.5. Я тогда был несколько удивлён, что в комплекте с контрой зачем то засунули какое то недоразумение с нудной покатушкой на вагонетке. То, что игра Counter-Strike 1.5 это всего лишь фанатское дополнение к Half-Life ещё предстояло узнать.

Дисклеймер: время описываемых в тексте событий — половина и более жизни назад, или примерно 2005–2010 гг, что могло привести к ряду неточностей и ложной памяти.

Как это было

Nimatron. История удивительного игрового автомата с математическим компьютером из прошлого столетия

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.3K


Во времена безоблачной юности у моих сверстников было несколько любимых развлечений. Одно из них — заглянуть в ближайший кинотеатр, и, потратив пригоршню 15-копеечных монет, наслаждаться «Торпедной атакой», «Световым тиром» и другими популярными игровыми автоматами, выставленными в вестибюле. На самом деле, это развлечение имеет богатую и многолетнюю историю: первые платные игровые автоматы появились ещё на рубеже XIX и XX веков. Об одном таком винтажном устройстве с прообразом математического компьютера внутри, появившемся в 1940 году, и пойдёт наш сегодняшний рассказ. Речь идёт об удивительной машине под названием Nimatron.
Читать дальше →

Во что поиграть: Sid Meier's Covert action

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.8K

А сегодня у нас на повестке — Сид Мейер.
Не-не-не, никаких «Цивилизаций».

В общем я тут напродавал карточек в Стиме аж на целых пятьдесят рублей и искал, куда пристроить неожиданно свалившееся на меня богатство. И вот после минут двадцати поисков… Не, ну а как иначе-то? Дело очень серьезное, двузначная сумма как никак. Так вот, спустя двадцать минут я наткнулся на… приготовьтесь: Sid Meier's Covert action.

Читать далее

Как амбиции и маркетинг Nokia уничтожили N-Gage

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.4K
image

В середине января Nokia дала «добро» университету Аалто на публикацию огромного архива ранее конфиденциальных документов. Открытие доступа к таким документам очень важно для понимания того, как Финляндия, в отрыве от остального мира, смогла создать свою философию дизайна для портативных устройств. Помимо весьма запоминающихся дизайнов, компания всегда старалась будто бы совершить прыжок во времени: какой концепт ни посмотри — все напоминают современные устройства. Правда, многие из концептов больше напоминали иллюстрации к какой-то научной фантастике. Но реализовать игровое устройство у них таки получилось в виде смартфона N-Gage. Благодаря обнародованным архивам, мы можем лишний раз убедиться, что маркетологи Nokia смотрели слишком далеко в будущее, игнорируя реалии тех лет. Привело всё это к тому, что N-Gage потерпела крах.

Но как зарождалась идея игрового смартфона? Да, на Хабре в последнее время уже вышли материалы про N-Gage, но они больше технические, и не затрагивают архивные материалы, как и не рассказывают про менее успешную платформу N-Gage 2.0. Эта же статья — больше про историю того, как Nokia пыталась позиционировать устройство и платформу.
Читать дальше →

Конструктор «Улёт»

Время на прочтение3 мин
Количество просмотров11K

Концепт альтернативной версии старого советского конструктора - своеобразный "Полёт 2.0", ремейк классики на новый лад.

Читать далее

Ближайшие события

Ностальгические игры: Final Fantasy VIII

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров4.4K
image

На дворе стояли ранние нулевые, мне было около десяти лет, и за призовое место на соревнованиях по плаванию родители дали мне небольшую сумму денег. Не раздумывая, я отправился в магазин, желая подобрать себе какую-нибудь новую игру для Sony PlayStation. Тогда это было целое событие: в эпоху без интернета, когда о существовании игровых журналов знали далеко не все, решение принималось по обложке и описанию на обороте диска. В тот день мой выбор пал на игру, которая, как оказалось, определила мою любовь к целой серии на долгие годы. Да, речь идет о Final Fantasy VIII.

Первое, что меня встретило при включении – это восхитительная эпичная музыка вместе с очень красивой заставкой, которая по тем временам просто поражала! Прошло уже 25 лет, а у меня до сих пор бегут мурашки при просмотре! Я понимаю, что она уже не может удивлять так, как тогда, и что не все смогут вспомнить или представить уровень заставок того времени и сравнить, но поверьте мне на слово, это было сильно! А глазами ребёнка всё смотрелось в разы лучше, и я действительно был под впечатлением.
Читать дальше →

От соревновательной игры до мобильной легенды. История Змейки

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.9K

Наступил Год Змеи. Грех не вспомнить чудо финской игровой мысли, его побратимов, истоки, взгрустнуть по Nokia и залам с игровыми автоматами.

А начнём мы с того, что Змейка, собственно, не только игра, а целый жанр. Прям вот так открыто никто не заявляет, но и так понятно, что название ему дала та самая игра с кнопочных телефонов Nokia. В общем, та же история, что и с дьяблоидами или, из более свежего, соулслайками.

Читать далее

Game++. Dancing with allocators

Уровень сложностиПростой
Время на прочтение34 мин
Количество просмотров12K

C и C++ не имеют встроенной сборки мусора, поэтому разработчик сам решает, как и когда выделять и освобождать память. Мы, конечно, можем покивать в сторону STL, сокрытия аллокаций в контейнерах, но от этого они никуда не денутся. Просто если раньше приходилось думать про выделенный кусок памяти, понимать, как он скажется на времени фрейма, помнить, что его надо удалить (а может, не надо и стоит оставить на следующий фрейм), то теперь всё заворачивается в сахарные контейнеры и разработку в стиле STL-blin-vse-sterpit. STL-то может и стерпит, и даже как-то будет ворочаться, однако не стоит полагаться исключительно на системный аллокатор, бездумно вызывая new или malloc для каждого запроса памяти. Вы ведь понимаете, что std::vector посреди цикла или горячей функции — это плохая идея?

Кроме того, такая практика приводит к ожидаемым проблемам с производительностью даже в обычных приложениях, чего уж говорить про высоконагруженные системы или игры, которые претендуют на что-то быстрее 20 фреймов в секунду.

Пытаться оптимизировать код, который использует системные аллокаторы, — всё равно что сгребать листья в кучу ветреным днём: куча, конечно, сгребается, но постоянно приходится махать грабельками, чтобы она оставалась на одном месте. Даже если выделения памяти происходят последовательно, друг за другом, вот прям без всяких перерывов, нет гарантии, что эти участки будут расположены хотя бы близко друг к другу. В результате при обработке таких данных процессору приходится прыгать по разным участкам памяти, теряя такты просто на поиск данных вместо того, чтобы работать с ними.

Я отнюдь не призываю вас встать на путь ручного управления памятью, ибо он будет усеян ловушками, граблями и чреват утечками. Но разработчик в итоге оказывается перед выбором: либо довериться системному аллокатору и столкнуться с проблемами вроде размазанного перфа, когда вроде и код написан правильно, модно и молодежно, но отчего-то работает небыстро, либо взять всё в свои руки, создавая собственные механизмы выделения и освобождения ресурсов.

Ребята из HFT, Database, Automotive и Embedded-систем наверняка могут рассказать немало интересных историй про оптимизацию new/delete. Давайте я расскажу немного про разные аллокаторы в играх?

Аллокатор аллокатору аллокации аллоцировал

Золото отечественного ретродева: RetroSouls

Уровень сложностиПростой
Время на прочтение22 мин
Количество просмотров7.7K

Мода на ретро постоянно возвращается. Чем дальше человечество продвигается в своё туманное будущее, тем больше растёт увлечённость некоторой его части наследием минувших лет, того «раньше», которое было лучше.

Речь идёт не об историках, а о самых обычных людях, испытывающих тёплые чувства к чему-то из прошлого. Многообразие взгляда, обращённого назад, велико, но чаще всего это массовая культура и различные её порождения: фильмы, музыка, мода, машины. Не обойдены этим вниманием и информационные технологии.

Например, сейчас в моде «ретрогейминг» — довольно удивительное явление, когда люди играют в компьютерные игры прошлого, при наличии практически бесконечного количества новейших, более совершенных разработок. Но есть и ещё более удивительное явление: «ретродев», или «ретрогеймдев» — разработка новых игр для старых платформ.

Занимаются этим во всём мире, и в наших краях тоже, причём порой весьма успешно. Настолько успешно, что мужики-то не знают. Будучи частью этого движения, кому, как не мне, рассказывать об этом — в частности, о ретро-играх и людях, создававших их в различные исторические периоды. Это будут люди, с творчеством которых я давно знаком и которое меня впечатляет и вдохновляет. Начинаем!
Читать дальше →

Эстетика игр за доллар. История и философия сайта itch.io

Время на прочтение8 мин
Количество просмотров15K

Главная страница сайта itch.io.

Каждый год происходит более двадцати тысяч игровых релизов. Тем не менее складывается ощущение, что все они довольно-таки однообразны: шутер от первого лица, игра про зомби, survival horror, шутер про зомби с элементами хоррора, RPG, RPG, RPG… На слуху в основном игры от крупных издателей, на разработку и маркетинг которых тратятся огромные деньги. Но в этой статье я предлагаю взглянуть на бунтарей от мира геймдева и дистрибуции игр, которые решили пойти против системы. И, кажется, у них неплохо получается.
Читать дальше →

«Корсары». Дополнения и модификации

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров5.1K

Грандиозный удар по репутации «Акелла» перенесла с видимой лёгкостью. Ветки на форумах тёрлись безжалостно, коробочки с «Корсарами» 3 продавались тысячами. Невероятно, но самая провальная игра серии принесла больше всех денег! Настоящий Клондайк! Но надо было меняться, и в «Акелле» это понимали. После российского релиза игру доводили до ума для релиза за рубежом ещё практически год, и почти пофиксили все значимые баги. Но... То, что мертво, оживить невозможно... И поэтому не в странах СНГ «Корсары» 3 провалились в продажах, и понятно почему. В то время плохие игры не вытягивал хороший пиар, как в наши дни, да собственно и пиара-то особенного не было. По правде говоря, наибольший успех вышел-таки у «Пиратов карибского моря» благодаря всевозможным модам, но об этом позднее.

Читать далее

Порталы: как устроен расчёт видимости в Quake

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.8K

Вы когда-нибудь хотели узнать, как работала предварительно вычисленная видимость в Quake? Я хотел, поэтому написал программу vis.py, воссоздающую этот алгоритм на Python. В этой статье представлена вся информация, необходимая для понимания vis, — инструмента, применявшегося в Quake, Half-Life и играх на Source Engine.

В процессе разработки Quake возникла проблема перерисовки (overdraw), то есть многократной записи одного и того же пикселя во время рендеринга кадра. Видимым остаётся лишь последний цвет, а все предыдущие записи оказываются лишней тратой ресурсов. Это плохо, если в вашей игре используется программный рендеринг, и так выжимающий последние соки из компьютера середины 90-х годов.

Как снизить объём перерисовки? Давайте начнём с высокоуровневого обзора возможных решений.

Читать далее