bash.im ithappens.me zadolba.li

Игры

8854

И рад бы, да не пускают

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

Не стоит думать, что я не пытался найти решение. Почти неделю убил на поиск, перепробовал с десяток лаунчеров, включая и версии под определённые редакции. Держать на компе Windows только ради игры глупо, но других вариантов античит не приемлет.

Вот и сижу я на винде. Не только бухгалтерами юзер-база виндовая полнится.

8777

Регион-лок на низком уровне

Накрыла как-то ностальгия, и решил я поиграть во что-нибудь олдскульное. Поставил известный эмулятор известной приставки, нашёл ROM и целую субботу рубился в Shin Megami Tensei. Пройдя с треть, отправился спать, а с утра решил продолжить. Как бы не так: эмулятор со странной избирательностью не воспринимал клавиши.

Решаем задачку. Дано:

1) «Стрелочки» работают. Кнопки и «селект» со «стартом» — нет.
2) Настройки те же, что вчера, никто ничего не менял.
3) Другой эмулятор работает как следует (правда, сохранёнки от другого не читает).

Теряясь в догадках, решил переназначить клавиши. Тут-то всё и прояснилось: вместо Keyboard q в окошке возникло Keyboard Cyrillic shorti. Разборчивая программа желала исключительно «q» в латинской раскладке и принимать вместо неё «й» в кириллической отказывалась. Ишь чё удумали — раскладку менять!

8771

Дебиан: вооружён и не очень опасен

Играл я много лет тому назад в некую MMORPG. При создании персонажа путём подбора абсолютно случайных символов мелкий нубик был назван Дебианом. О линуксе я в те времена знал только то, что есть такая ось не для ламеров. Следует ли объяснять, как я удивился, узнав о том, что существует такой дистрибутив?

Прошло несколько лет. В эту игру я уже не играю, персонаж был удалён ещё до заката проекта. На телефоне Андроид, на компьютере Убунту уже полгода используется как основная ОС. В голове мысли о необходимости перехода на более серьёзный дистрибутив; из имеющегося разнообразия рассматривается всё тот же Дебиан. И лишь одна мысль не даёт покоя: как виндовый пользователь, пусть даже не так удалённый от IT, как большинство окружающих, мог со стопроцентной точностью попасть пальцем в небо?

8761

Косынка по-домашнему

Удалил бухам все игры начисто. Захожу в кабинет. Сидит паренёк-бух и раскладывает «косынку» по удалёнке через TeamViewer с домашнего компа.

8730

Игры выходят на субботник

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

Прошло время, и вот новый процессор с не менее новыми собратьями по оперативности и отобразительности бодро крутятся под управлением только что купленной «семёрки». Разумеется, все файлы при «переезде» сохранены абы как, то есть в папках вида «абырвалг», но большая часть приютилась в скромной D:\tmp\.

Я не знаю, почему игра, устанавливающаяся на диск C:, решила похозяйничать где-то ещё.

Я не знаю, почему установщик, не создававший в корне ни одного диска какой-либо временной папки, сделал это.

Но после установки игры папка D:\tmp\ исчезла без следа.

8712

Когда все принцессы спасены

Одни так мечтают вместо обучения программированию баловаться играми, что для них приходится программы типа SuperPuperAntiGame писать. А у меня в детстве, когда мне «Денди» подарили, наоборот, через две недели возникло острое желание попрограммировать. Моя фантазия рисовала клавиатуру, подключающуюся вместо джойстика, и картридж с Бейсиком. О том, что для оригинальной NES всё это уже было реализовано, я не знал, а «Сюбора» тогда ещё даже в проекте не было.

Проблема решилась годом позже, с покупкой «Спектрума». Ох я и напрограммировался тогда — год почти не играл!

8693

SuperPuperAntiGame, или Гонка вооружений

В 1990 году поступил я в МВТУ им. Баумана и попутно устроился работать оператором в местный вычислительный центр под названием «Аквариум». Только-только появились первые персоналки, и к нам как раз завезли суперсовременные компьютеры IBM PC XT. Как водится, студенты сразу же вместо занятий стали на них играть.

Начальство поставило задачу игры запретить. Сначала пытались бороться словесно — не помогало. Тогда я решил бороться программно и взялся за изучение ассемблера. Через пару месяцев появился первый продукт под названием AntiGame. Программа резидентно висела в памяти, перехватывала запуск программ через функцию 4Bh 21 прерывания и имела базу сигнатур различных игр — просто читался кусок данных размером 32 байта из файла со смещением 1000h. Если запускаемая программа совпадала с одной из сигнатур, то считалась игрой. Запуск обрывался, в буфер клавиатуры посылалось echo y|del., проигрывалась веселая мелодия. Через месяц мелодию знали все.

Пару месяцев всё шло хорошо, база сигнатур пополнялась, студенты ходили злые и вынуждены были заниматься делом. Но тут группа студентов тоже села за ассемблер и через месяц хакнула мою программку. Хак быстро распространился среди посетителей «Аквариума», студенты снова стали довольные, играли повсеместно, а мелодии было не слышно. Отловив и изучив хак, я выяснил, что там тупо восстанавливался оригинальный вектор 21 прерывания, и моя программка обламывалась.

Покумекав, я взялся за клавиатуру. Спустя пару месяцев родился шедевр под названием SuperAntiGame. Это была шедевральная программа, написанная с использованием всех современных технологий, включая вирусные. Частично она даже использовала неизвестный тогда механизм «стелс», чем я до сих пор горжусь. Программа перехватывала 13 и 21 прерывания, причём не обычным способом, а путём внедрения в точки входа в области DOS, что делало бесполезным восстановление оригинальных векторов прерывания. В функциях поиска, открытия и записи файлов делалась проверка на имя файла antigame.exe и в случае совпадения возвращалась ошибка «File not found», так что ни один из «коммандеров» программу не видел. Также перехватывалось прерывание таймера 1Ch — на нём висела функция, постоянно проверяющая код в памяти. Если хотя бы один бит был изменён, то отключалась клавиатура, запускалась мелодия, флаг read only со всех файлов в текущем каталоге снимался, а в буфер клавиатуры отправлялось так любимое студентами echo y|del.. Помимо этого, там было ещё множество новаторских решений. Полный исходник занимал около 300 КБ текста, откомпилированный файл — 9 КБ.

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

Я, конечно, не питал иллюзий и знал, что рано или поздно это случится. К тому времени подходила к концу разработка бета-версии нового SuperPuperAntiGame, работающего в защищённом режиме только вышедшего тогда процессора 386SX, первые компьютеры с которым появились в нашем «Аквариуме».

Жаль, не удалось тогда довести задуманное до конца — увлёкся другим делом и AntiGame забросил. Но и сейчас, спустя два десятилетия, я вспоминаю эту гонку вооружений и думаю, какой же стимул для изучения программирования дала и сколько же талантливых программистов вырастила жажда игр.

8678

Вступительный экзамен кафедры проктологии

Однажды в наш универ привезли партию новых компов. Конечно, админско-лаборантскому персоналу захотелось их попользовать для сетевых игр. Процессоры в компах стояли современные, а вот видеокарты — встроенные. Игровые карточки в запасе имелись, но системные блоки были опечатаны гарантийными пломбами.

Парни не растерялись. Корпуса были качественные, передняя панель снималась, съёмные металлические заглушки отсеков 5,25" удалялись, открывая дыру для доступа к внутреннему пространству системного блока. Через эту дыру лаборанты и вставляли свои видеокарты, не нарушая гарантийных пломб.

8668

Из чего же, из чего же, из чего же сделаны эти игрушки?

Когда я учился на технической специальности, нам дали задание, расплывчатое чуть более, чем полностью: «Разработать собственный программный продукт».

Ну, я не поленился. Всё же игры пишем с друзьями достаточно давно — дай-ка исполню мечту детства, проведённого в Total Annihilation! Решил создать RTS в стиле известного детского конструктора. Выбрал изометрическую проекцию, нарендерил зданий, деревьев и упорно работал четыре месяца.

Конец февраля. С торжеством смотрю на получившуюся игру, провожу за ней часы, придумываю планы по дальнейшему развитию и лелею нескромные надежды сделать из неё что-то коммерческое. Решаюсь наконец-то приняться за написание реферата, знакомлюсь с местными правилами оформления списка источников.

Вопрос месяца: к какому типу источников относится друг-программист, кто автор статей по C# на MSDN и что теперь делать ещё с четырьмя необходимыми источниками?