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

Пользователь

Отправить сообщение

Клонирование игры Lode Runner с первого ПК в СССР «БК-0010» плюс несколько слов о программировании игр в конце 80-х

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

Недавно я оказался в не совсем обычной для себя ситуации вынужденного безделья. Пару недель поваляв дурака, я стал чувствовать, что это не такое уж и веселое занятие, которое к тому же еще и стало переходить в скуку. И мне надо было себя занять чем-нибудь относительно полезным. Раньше мне периодически приходили в голову мысли о том, чтобы вернуть к жизни какую-нибудь старую игру из времен моей юности. Но я всегда гнал такие идеи прочь, так как понимал, что "никому это теперь не надо". Но сейчас у меня было свободное время и, главное, было желание. В результате для клонирования я выбрал один из вариантов игры Lode Runner, в который я когда-то играл на первом персональном компьютере времен позднего СССР, который назывался БК-0010. Не думаю, что многие о нем помнят, так как мир «железа» поменялся с тех времен очень сильно. Однако сам Lode Runner с этого БК-0010 был достаточно уникален своими правилами среди других одноименных Lode Runner-ов. Эта версия игры была моей самой любимой, как мне кажется, по объективным причинам, хотя… может быть тут дело просто в ностальгии. В результате я сумел себя мотивировать тем, что "лично мне", а, возможно, и "всему миру", эта игра может быть интересна, и на её восстановление стоит потратить время (ссылка на полученный результат).

Для начала взглянем на оригинал с БК-0010 (хвала Интернету, в котором можно найти почти всё):
Всего голосов 68: ↑67 и ↓1+66
Комментарии146

Что есть функция в Python?

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

В начале же статьи предупрежу:

Эта статья предназначена только для тех людей, которым хочется узнать,чем на самом деле является функция в python....НО! Предупреждаю, я не буду лезть в сурсы питона. Эта статья была создана только для обычных вроде меня программистов.

Статья будет состоять из 4 частей:

1. Как осуществляется поиск атрибутов в классах
2. Что есть метод и как он вызывается
3. Что есть функция и как она вызывается
4. Вывод

Читать далее...
Всего голосов 13: ↑10 и ↓3+9
Комментарии8

Анализ исходного кода движка Doom: рендеринг

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

От экрана дизайнера к экрану игрока


Карты разрабатывались дизайнером уровней в 2D с помощью редактора Doom Editor (DoomED). LINEDEFS описывали замкнутые секторы (SECTORS в исходном коде), а третье измерение (высота) указывалась посекторно. Первый уровень Doom E1M1 выглядит так:

image

После завершения работы над картой она нарезается методом двоичного разбиения пространства (Binary Space Partitioning, BSP). LINEDEF рекурсивно выбирались и их плоскости превращались в секущие плоскости. То есть LINEDEF разрезались на сегменты (SEGS) до тех пор, пока не оставались только выпуклые подсектора (SSECTOR в коде).

Интересный факт: И DoomED, и iBSP писались на… Objective-C на рабочих станциях NextStep. Пятнадцать лет спустя тот же язык почти в той же операционной системе выполняет игру на мобильном устройстве! [прим. пер.: в 2010 году Doom вышел на iPhone] Я немного поработал веб-археологом и мне удалось найти исходный код idbsp. На него стоит посмотреть.
Всего голосов 66: ↑66 и ↓0+66
Комментарии10

Анализ исходного кода Duke Nukem 3D: Часть 1

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

Уйдя с работы в Amazon, я провёл много времени за чтением отличного исходного кода.

Разобравшись с невероятно замечательным кодом idSoftware, я принялся за одну из лучших игр всех времён: Duke Nukem 3D и за её движок под названием "Build".

Это оказался трудный опыт: сам движок имеет большую важность и высоко ценится за свою скорость, стабильность и потребление памяти, но мой энтузиазм столкнулся с исходным кодом, противоречивым в отношении упорядоченности, соблюдения рекомендаций и комментариев/документации. Читая код, я многое узнал о унаследованном коде и о том, что позволяет программному обеспечению жить долго.

Как обычно, я переработал свои заметки в статью. Надеюсь, она вдохновит вас на чтение исходного кода и совершенствование своих навыков.
Всего голосов 101: ↑98 и ↓3+95
Комментарии31

Анализ исходного кода Doom 3

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

23 ноября 2011 года id Software поддержала собственную традицию и опубликовала исходный код своего предыдущего движка.

На сей раз настало время idTech4, который использовался в Prey, в Quake 4 и, разумеется, в Doom 3. Всего за несколько часов было создано больше 400 форков репозитория на GitHub, люди начали исследовать внутренние механизмы игры или портировать её на другие платформы. Я тоже решил поучаствовать и создал Intel-версию для Mac OS X, которую Джон Кармак любезно прорекламировал.

С точки зрения чистоты и комментариев это самый лучший релиз кода id Software со времени кодовой базы Doom iPhone (которая была выпущена позже, а потому откомментирована лучше). Крайне рекомендую каждому изучить этот движок, собрать его и поэкспериментировать.

Вот мои заметки о том, что я понял. Как обычно, я подчистил их, надеюсь, они сэкономят кому-нибудь пару часов и сподвигнут кого-нибудь на изучение кода для усовершенствования своих навыков программиста.
Всего голосов 89: ↑89 и ↓0+89
Комментарии36

Как развивался интернет — компактная подборка литературы, где можно об этом почитать

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

Период с 1970 по 1990 годы известен как «войны протоколов». В это время инженеры, системообразующие организации и целые государства пытались решить, какой протокол передачи данных позволит строить наиболее функциональные и надежные компьютерные сети. Этому отрезку времени и связанным с ним технологиям посвящены целые книги. Сегодня мы собрали несколько таких материалов, опираясь на рекомендации резидентов Hacker News, Reddit и других тематических площадок.

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии4

Технологии прошлого — обсуждаем ARCnet

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

Продолжаем рассказывать о ретротехнологиях. В прошлый раз говорили о стандарте X.25. Сегодня обсудим прошлое и настоящее одного из первых решений для построения локальных сетей.

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии1

Технологии прошлого сегодня — стандарт X.25

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

У себя в блоге мы часто пишем о работе интернет-провайдеров и сетевых протоколах. Мы решили начать серию материалов о технологиях из прошлого. Сегодня говорим о стандарте пакетной передачи данных X.25. Относительно недавно с ним работали крупные банковские системы вроде SWIFT, а энтузиасты используют до сих пор.

Читать далее
Всего голосов 9: ↑8 и ↓1+13
Комментарии3

Космические системы становятся персональными, а серверы — космическими. Зачем RUVDS свой пико-спутник

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

Вступление


Привет Хабр. Совсем недавно вы могли видеть новость о том, что RUVDS запустит свой сервер в космос. Могли и не видеть, но сейчас сходите посмотреть, чтобы понять о чём речь. Но если лень читать, процитирую:

Хостинг-провайдер RUVDS и компания «Малые космические системы» разработают спутник-сервер, размер которого составит 5 на 5 см. Об этом сообщили ТАСС в компании RUVDS.

Так вот, я ко-фаундер или как теперь стоит говорить соучредитель Малых космических систем и хочу вам рассказать подробнее о том, что это за спутник TinySat размером 5 на 5 см (Забыли ещё один размер — 5 × 5 × 5 см, так что речь о кубике, а не о квадратике).
Читать дальше →
Всего голосов 53: ↑49 и ↓4+62
Комментарии29

Есть ли жизнь на Go после C#?

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

Всем привет! На связи Пётр, Go-разработчик в команде Ozon, которая занимается управлением товарами торговой площадки. Всё, что загружают продавцы, обрабатывается нашими сервисами. Девять месяцев назад я сменил основной язык программирования с C# на новый для меня Go. В статье будут впечатления от Go, расскажу о некоторых различиях между языками, а в конце поделюсь своим опытом поиска работы на новом языке. Ведь вопрос смены стека технологий рано или поздно встаёт перед каждым разработчиком.

Читать далее
Всего голосов 50: ↑40 и ↓10+35
Комментарии50

Сеть без интернета на Raspberry Pi Pico и другие необычные проекты на «малинке»: DIY зимы 2022 года

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

Давно мы уже ничего не писали о разных системах на базе Raspberry Pi. В этой подборке много всего интересного, включая создание сети без Интернета, подключение КПК PSION к сети и все такое прочее. Некоторые проекты очень сложные для самостоятельной реализации. Другие — попроще, их может повторить даже относительный новичок в электронике. Если вдруг у вас есть собственный проект, о котором вы хотели бы рассказать, либо вы знаете то, что заслуживает места в подборке — пишите в комментариях, обсудим.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+52
Комментарии3

Xbox: как создавалась американская империя видеоигр

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

Корпус напоминал старый видеомагнитофон, контроллер был смехотворно крупным, и всё это создавалось одной из самых скучных компаний в мире. Тем не менее, Xbox каким-то образом обрёл успех, сделав Microsoft Corp. первым и последним американским производителем успешного бренда видеоконсолей со времён Atari.

Двадцать лет спустя Bloomberg решил узнать у двух десятков людей, сыгравших важную роль в создании Xbox, как им это удалось. Microsoft ворвалась на рынок, где доминировали японские компании и сформировала новую модель бизнеса шутеров и онлайн-игр. Попытки таких гигантов, как Amazon.com Inc., Apple Inc., Facebook Inc. и Google войти в эту отрасль за долгие годы даже и близко не привели к таким результатам. Сегодня видеоигры приносят Microsoft более 11 миллиардов долларов в год, они сделали Xbox брендом высочайшего класса.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии16

Строки кода, которые изменили мир

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

{"__typename":"PageLikeAction","action_type":"LIKE","label":{"text":"Like"}


В 2009 году Facebook добавила в интерфейс своей социальной сети код, изменивший мир — кнопку «Like». «Лайк» был детищем нескольких программистов и дизайнеров — Лии Перлман и Джастина Розенштейна. Они предположили, что пользователи Facebook часто бывают слишком заняты, чтобы оставлять комментарии к постам своих друзей, и что поэтому им нужна простая кнопка, нажав которую можно было бы дать понять друзьям, что их пост вам понравился. Так оценивать и поощрять друг друга пользователям стало бы легче, а значит и делали бы они это чаще.

Это сработало — и даже слишком хорошо. К 2012 году пользователи прожали «лайк» триллион раз. У этого оказались и побочные эффекты. Многие стали публиковать фото/видео, чтобы потом сидеть и с тревогой обновлять страницу, ожидая, когда же число лайков возрастёт. Все стали гадать, почему кто-то другой получает больше лайков. Люди подсели на иглу одобрения (вместо того, чтобы сесть на чьё-то лицо), что отразилось на их повседневной онлайн-активности: старались публиковать как можно больше постов, чтобы казаться смешнее, умнее, красивее, спортивнее.

Небольшой фрагмент кода, который внёс почти незаметное изменение в пользовательский интерфейс социальной сети, изменил поведение людей. Ниже представлен список из примеров подобных важных фрагментов кода, которые изменили мир. И на самом деле это неполный список, учитывая огромное количество кода, который был написан.
Читать дальше →
Всего голосов 76: ↑65 и ↓11+69
Комментарии37

Взлетит или нет — сможет ли новый язык программирования Hare стать альтернативой Си

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

Практически сразу после анонса языку стали пророчить светлое будущее в качестве замены не только Си, но и других ЯП. Однако энтузиазм разделили далеко не все участники ИТ-сообщества. В лагере скептиков оказались даже сами разработчики Hare.

Мы в T1 Cloud предлагаем решения для бизнеса и разработки, поэтому решили разобраться в ситуации и обсудить аргументы сторон.

Читать далее
Всего голосов 36: ↑21 и ↓15+13
Комментарии110

Автономный LTE роутер своими руками | Часть 3 – Uboot & OpenWRT

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров16K

Привет Хабр! Эта статья посвящена программной части собственного роутера, сегодня будем: допиливать OpenSource, терять месяц жизни впустую, разбираться с модемом, раскрывать секреты OpenWRT’варения для нового устройства и трогать I2C устройства за их регистры.

Готовьте свои напильники и ныряем под кат
Всего голосов 36: ↑36 и ↓0+36
Комментарии10

На распутье — Ардуино, Cи или Ассемблер?

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

Сначала короткая предыстория появления этого поста. Относительно давно, помигав светодиодом, захотелось сделать что-то полезное. Так появился Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями. Как назло, в это время перестал работать мой промышленный термостат. Меня выручил еще сырой макет, наспех спрятанный в картонную коробочку. За время отопительного сезона напрягал лишь один недостаток прототипа – это необходимость таскать по квартире удлинитель 220В и кабель, который всегда путался под шваброй ногами. Поэтому решил сделать нечто похожее, но автономное, притом, с питанием от батареек, как в серийном образце.


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


Приступая к задаче, для меня было очевидно одно – вряд ли программы промышленных автономных устройств составлены на платформе Arduino IDE. Где все спрятано в громоздкие тяжеловесные библиотеки, а простые коды (скетчи) занимают в редакторе несколько десятков строк, делая работу в этой среде комфортной и не требующей особых усилий. Уточню сразу – дальше речь о выборе языка программирования между Ардуино, Си или Ассемблером. "Язык Ардуино"- это сленг для краткости. Нет такого языка программирования. Если увидите тут и дальше "язык Ардуино", то — это "Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++"(Википедия).

Читать дальше →
Всего голосов 15: ↑8 и ↓7+4
Комментарии35

Реальная правда о Программистах ненавидящих Arduino

Время на прочтение5 мин
Количество просмотров23K
Всем Привет. Особенно Ардуинщики! Да, да. Будущее за Ардуинщиками.
Вы спросите почему? Да легко.
image
Читать дальше →
Всего голосов 44: ↑20 и ↓24-4
Комментарии75

Arduino управляет промышленным грузовым лифтом

Время на прочтение6 мин
Количество просмотров131K
Дисклеймер: Если вы разбираетесь в электронике, то некоторые технические решения, описанные в этой статье повергнут вас в шок и ужас, а также вызовут непреодолимое желание оторвать автору руки. Я предупредил.
Немного о том как устроены грузовые подъемники и небольшая история создания системы управления для шестиэтажного грузового лифта на базе платы Arduino совместимого контроллера Seeeduino (ATmega 328).image
Довольно много картинок и букв!
Читать дальше →
Всего голосов 90: ↑71 и ↓19+52
Комментарии96

Стартуем из 1С в Python

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

В 2022 модно уметь в Python. Я 1Сник, не гоняюсь за модой, но возникла задача. Клиент хотел обрабатывать XML файл УПД, полученный из «Мой склад» — убрать стартовые нули в тегах КодТов. Выбрал Python для скрипта и получил нужный результат за час!

Читать далее
Всего голосов 27: ↑4 и ↓23-19
Комментарии67

Автономный LTE роутер своими руками | Часть 1 — От идеи до схемы

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров36K

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

Да-да, это именно разработка собственного роутера, не простой допил уже имеющегося и переупаковка в другой корпус. Отнюдь! Схема, печатная плата, пайка – всё сделаем сами и защитим диплом. Заинтересовал?

Тогда добро пожаловать под кат
Всего голосов 85: ↑84 и ↓1+105
Комментарии57

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность