Search
Write a publication
Pull to refresh
44
0

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

Send message

Разработка Rich Text Editor: проблемы и решения

Reading time21 min
Views39K
Текстовые редакторы, как тип программного обеспечения, появились чуть позже чем динозавры, и вероятнее всего это был вообще первый софт, с которым вы столкнулись в своей жизни, возможно кто-то даже застал MS-DOS Editor.

Однако с переходом большой части ПО в браузеры актуальны и соответствующие визуальные редакторы Rich Text Editors, и проблемных мест в их разработке масса. Если вы по какой-то причине решили сделать свой собственный редактор, то подумайте еще раз — есть мнение, что делать этого не нужно.



Чтобы вы могли принять более взвешенное решение, Егор Яковишен обобщил весь свой опыт, полученный в процессе создания Setka Editor, и рассказал про проблемы, с которыми придется столкнуться, и что можно предпринять для их решения.

Disclaimer: статья написана на основании доклада Егора на конференции Frontend Conf 2017 в июне 2017 года. Ситуация с поддержкой браузерами определенных API с тех пор уже могла измениться.


Rust: состояния типов

Reading time7 min
Views9.2K

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


Прошу под кат.

Читать дальше →

Чего из Rust мне не хватает в C

Reading time7 min
Views23K
Об авторе. Федерико Мена-Кинтеро — мексиканский программист, один из основателей проекта GNOME.

Librsvg достиг переломного момента: внезапно выясняется, что легче портировать некоторые основные части из C на Rust, чем просто добавить аксессоры. Кроме того, всё больше «мяса» библиотеки сейчас написано на Rust.

Сейчас мне приходится часто переключаться между двумя языками, и C теперь выглядит очень, очень примитивным.

Элегия C


Я влюбился в C около 24 лет назад. Выучил азы по второму изданию “The C Programming Language by K&R” в переводе на испанский. До этого я использовал достаточно низкоуровневый Turbo Pascal, с указателями и ручным распределением памяти, так что C казался приятным и придающим сил.

K&R — отличная книга для выработки стиля и лаконичности. Эта маленькая книжка даже научит вас реализовать простой malloc()/free(), что поистине просветляет. Даже низкоуровневые конструкции можно вставлять в самом языке!

В последующие годы я хорошо освоил C. Это небольшой язык с маленькой стандартной библиотекой. Вероятно, идеальный язык для реализации ядра Unix на 20 000 строк кода или около того.
Читать дальше →

Системный крафтинг в «Проклятых землях»

Reading time6 min
Views20K


Статья является текстовой расшифровкой видео, поддержанного через Patreon автора: www.patreon.com/farlands

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

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

Но на самом деле ЕСТЬ игра, в которой 18 лет назад реализован системный крафтинг. «Про́клятые земли» (Evil Islands) — это российская тактическая RPG, выпущенная в 2000 году. Я играл в неё, когда мне было девять лет, и именно благодаря «Проклятым землям» я захотел стать гейм-дизайнером. Я могу рассказывать об этой игре весь день. В ней можно найти интересное смешение механик, захватывающий сюжет, отличных персонажей, удивительную музыку и одну из лучших озвучек, которые я встречал за всю свою жизнь.

Duke Nukem Forever, которого не было

Reading time4 min
Views20K
image

Не будем таить греха, — для многих легендарный долгострой Duke Nukem Forever, который начали разрабатывать в 1997 году и выпустили лишь спустя 14 лет, в 2011-ом, - оказался настоящим разочарованием. Это, конечно, не помешало вашему покорному слуге собраться вместе с друзьями и пройти игру за одну ночь, вполне себе получив от этого удовольствие; однако, о культовом статусе как у Duke Nukem 3D не могло быть и речи.

За время разработки игру успели и окрестить «Святым Граалем», и неоднократно похоронить; по форумам ходили шутки, что самой игры не существует в принципе. Но что мы действительно знаем о процессе разработки Duke Nukem Forever на сегодняшний день? Да почти ничего.


Трейлер с E3 2001 с демонстрацией оригинального билда DNF (2001)

Сегодня в сети появились некоторые подробности, проливающие свет на самый знаменитый долгострой игровой индустрии. Как выяснилось, версия DNF на Unreal Engine, существовавшая в 2001 году, была готова на 90% — причём игра включала в себя элементы хоррора и RPG. По крайней мере, именно это утверждает Фредерик Шрейбер — вице-президент компании 3DRealms, занимавшейся разработкой игры. Информация поступила из Discord, посвященного играм про Дюка Нюкема.

Эволюция Go

Reading time11 min
Views28K
image

Подошедший к концу GopherCon 2015, длившийся с 7 по 10 июля в Денвере, отметился немалым количеством интересных выступлений. Видео докладов еще недоступно, однако, конспекты некоторых из них доступны на английском языке по этому адресу; в официальном блоге также можно прочитать программную речь Расса Кокса. Вниманию читателей предлагается конспект доклада об истории создания языка, который открыл второй день конференции.

Роберт Грисмер (@robertgriesemer) — разработчик в Google, один из авторов языка Go. В прошлом Роберт работал над генерацией кода для высокопроизводительного JavaScript, занимался языком программирования Sawzall и разработкой современной реализации Smalltalk — Strongtalk. По собственному заявлению, он «провел слишком много времени в виртуальных Java-машинах, но так и не понял, как ими пользоваться».

Интерес Роберта к языкам программирования возник при знакомстве с Pascal — до этого момента он в основном писал на BASIC. Будучи аспирантом, он обучался у Никлауса Вирта, создателя Pascal.

Когда Роберт закончил учебу и окунулся в реальный мир индустрии профессионального программирования, то почувствовал себя так, словно совершил огромный шаг назад. Во время обучения в академии он использовал Оберон — язык, позволяющий программисту достигать очень высокой личной эффективности. Теперь же Роберт тратил свое время на размышления о языках программирования в надежде придумать способ, как ему вернуться на былой уровень производительности. После 15 лет опыта программирования на С++ он понял, что впереди у него только два пути: или продаться, или спасаться. Вместе с Робом Пайком и Кеном Томпсоном они выбрали второй вариант.
Читать дальше →

История языков программирования: 100% «чистый» Си, без единого «плюса»

Reading time13 min
Views87K
image

Популярность языка программирования Си трудно переоценить, особенно вспоминая его былые заслуги. Наверное, каждый разработчик, как минимум, знает о его существовании, и, как максимум, пробовал на нем программировать. Си является предшественником таких языков, как C++, Objective-C, C#, Java.

Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Более того, на Си написано множество операционных систем.

Конечно, Си не идеален: создатели языка – Кен Томпсон и Деннис Ритчи – долгое время дорабатывали его. Стандартизация Си продолжается до сих пор. Он существует более 45 лет и активно используется.

С ним часто ассоциируют не один, а два языка программирования — C/C++. Однако ниже речь пойдет именно о «чистом» Си.
Читать дальше →

3D-движок, написанный на формулах MS Excel

Reading time9 min
Views118K

Скриншот экрана игры

Эта статья посвящена тому, как я смог написать 3D-движок только на формулах Excel. Я реализовал следующий функционал:

  • бесконечная процедурно генерируемая карта лабиринта
  • рендеринг трассировкой лучей в реальном времени
  • вычисление окклюзии
  • рендеринг простейшего освещения
  • шейдер освещения и вычислений
  • движок естественного движения
  • в 3D-движке не используются макросы

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

Можете скачать файл и протестировать его самостоятельно!

ДНК глазами программиста

Reading time15 min
Views93K
От переводчика: Так как я не являюсь биологом, возможны неточности в переводе терминов (и не только :). Оригинал находится здесь.

Если ты – молоток, то во всём увидишь гвоздь


Это всего лишь размышления программиста о ДНК. Я не являюсь молекулярным генетиком.

Исходный код


Находится здесь. Это не шутка. Исходники можно просмотреть с использованием замечательного набора скриптов Perl под названием "Ensembl". Геном человека занимает приблизительно 3 гигабайта, которые можно сократить до 750 мегабайт, если отбросить шелуху. Немного печалит, что это всего лишь 2.8 браузеров Mozilla Firefox.

ДНК похожа скорее не на исходники на языке C, а на байт-код для виртуальной машины под названием «ядро клетки». Крайне сомнительно, что существуют исходники, которые можно скомпилировать в этот байт-код: то, что мы видим, – это всё, что у нас есть.
Читать дальше →

Почти случившийся полет к Луне

Reading time6 min
Views32K
image
Редкий пилотируемый Протон. Ну почти.

Не все модели пилотируемых космических кораблей доходят до полноценного полета с экипажем. На этом можно было бы и закончить, но дальнейшая судьба такого корабля может сложиться по разному. Буран, советский ответ Спейс Шаттлу совершил лишь один испытательный полет. И в глазах многих он уже одним этим полетом превзошел Шаттл, сделав в беспилотном режиме то, что на Шаттле всегда делали пилоты. В итоге, по своей известности он может поспорить с некоторыми кораблями, на которых успешно летали люди. Некоторые другие корабли практически забыты и редко упоминаются за пределами специализированных сайтов. Один из таких кораблей мог бы сильно повлиять на результаты лунной гонки, но вместо этого пал жертвой советской секретности.
Читать дальше →

Создание когнитивных связей у игроков

Reading time5 min
Views9.7K
image

Вступление


Статья повествует о создании когнитивных связей в головах игроков логической игры
«Maze Lord». Или как перевели её различные сайты — Повелитель Подземелий. Это пошаговая логическая игра с элементами менеджмента ресурсов в roguelike сеттинге.
Читать дальше →

Lua. Краткое введение в метатаблицы для чайников

Reading time14 min
Views71K

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

Реверс-инжиниринг Star Wars: Yoda Stories

Reading time19 min
Views12K
image

[Прим. пер.: Зак Барт из Zachtronics не только пишет замечательные видеоигры-головоломки (SpaceChem, TIS-100, SHENZHEN I/O) и апгрейдит электронные пищущие машинки, но и увлекается обратной разработкой ресурсов старых игр. Эта статья посвящена успешному взлому любимой игры его детства.]

Предисловие


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

В 2006 году, через несколько дней после выпуска демо Star Wars: Empire at War, я опубликовал пару рудиментарных инструментов, позволявших выполнять дамп и переупаковку файлов данных игры, в том числе простой мод, благодаря которому можно было сыграть за Империю (эта возможность была отключена в демо). В сети почти уже не найти следов моей работы, но мне удалось получить бесплатную футболку разработчика игры Petroglyph, а это уже кое-что.

За много лет до этого у меня была ещё одна игра по «Звёздным войнам» под названием Star Wars: Yoda Stories. Она была довольно запутанной и получила плохие отзывы, но это меня не останавливало. Как начинающий программист и упёртый фанат Star Wars я пытался найти ресурсы игры, чтобы сделать собственную ужасную игру по Star Wars. Однако мне удалось обнаружить только звуковые эффекты и небольшое количество спрайтов, которые распространялись как иконки темы для рабочего стола.


Перенесёмся вперёд на шестнадцать лет: я изучаю свою древнюю коллекцию CD-дисков в поисках старых игр, в которые можно поиграть на компьютерной вечеринке в тематике 1990-х. Вставив CD в привод, я сразу же понял, что нашёл файл данных размером примерно четыре мегабайта, который ждёт применения полученных мной в колледже знаний для взлома. Лучше позже, чем никогда!
Читать дальше →

640 КБ на самом деле хватит всем

Reading time10 min
Views124K
image

Никогда не сдавайтесь


Действительно ли Билл Гейтс произнёс фразу «640 КБ должно хватить всем»? Её история довольно туманна, однако чаще всего её приписывают Биллу, так что, возможно, он действительно такое говорил.

Его довольно часто за это высмеивали. Мысль о общем пространстве памяти размером всего 640 КБ по современным стандартам смехотворна. В этот размер не уместится даже исполняемые файлы большинства программ-установщиков.

Для сравнения: калькулятор в Windows 10 занимает в состоянии простоя 16,2 МБ оперативной памяти — почти в 26 раз больше, чем объём доступной DOS-программам памяти в 1980-х.

Странные дела


Поверите ли вы мне, если я скажу, что до сих пор существует активное сообщество, использующее эту устаревшую платформу и разрабатывающее для неё ПО?

Наверно, вашим первым вопросом будет «Но зачем?» И я хорошо вас понимаю. Давайте рассмотрим некоторые группы, которые до сих пор заинтересованы во вложениях усилий в DOS.
Читать дальше →

С днём рождения, компьютерная мышка

Reading time5 min
Views23K
Сегодня, 9 декабря, день рождения компьютерной мыши. Формально это всего лишь устройство ввода, но мы-то знаем, как можно сродниться с мышью, выразить свою ярость, стереть покрытие корпуса в геймерских рейдах и выковырять тот самый шарик. Появившись в 1968 году мышка не потеряла своей актуальности — более того, она даже не сменила облик — так и остаётся устройством с мышинообразным корпусом. Правда, в ходе эволюции у некоторых видов исчез хвост. Поэтому свой первый за всю историю субботний пост мы хотим посвятить компьютерным мышкам — старым и современным.


Читать дальше →

Разработка калькулятора HP-35: как создавалась инновация

Reading time19 min
Views20K


HP-35 стал примером чрезвычайно привлекательного, миниатюрного и революционного продукта. Карманные калькуляторы с четырьмя функциями уже были в продаже [раньше «карманной» или «ручной» (hand-held), или «переносной», называли электронику, достаточно маленькую, чтобы помещаться в руке и быть портативной — до того, как вся техника стала такой / прим. перев.]. Мало кто мог представить себе машину, способную производить научные расчёты и поместиться в карман рубашки, но многие уже начинали мечтать о такой. HP-35 был разработан компанией Hewlett-Packard, находившейся в Пало-Альто, Калифорния, по адресу 1501, Пэйдж-милл-роуд, и выпущен на рынок в 1972 году. Это был первый полнофункциональный научный калькулятор размером с карман рубашки. Это изобретение произвело революцию в профессии инженера, позволив ему выполнять почти мгновенные и чрезвычайно точные научные расчёты дома, в офисе или «в поле». HP-35 стал инновационной кульминацией механического дизайна, передовой технологии, разработки алгоритмов и приложений — всё это для того времени было уникальным.
Читать дальше →

История General Electric: от лампочки Эдисона до наших дней

Reading time14 min
Views26K
General Electric чем-то напоминает современные интернет-стартапы. Компания не работала на существующих рынках, а создавала новые отрасли: звукозапись, рынок электричества, освещения и электроприборов. Огромная махина корпорации GE — это детище известного американского изобретателя Томаса Эдисона. Но его главной заслугой можно назвать создание лаборатории для коммерческих исследований, по принципу которой возникли современные R&D-центры.

Сегодня поговорим о «светлой стороне» компании, а в следующей статье — о том, как General Electric создавала ядерные бомбы, за что была подвергнута общественному порицанию настолько сильно, что свернула подразделения, связанные с получением прибыли на этом направлении.

image
Стенд General Electric на выставке Pan American, 1901 год. Источник

История создания второй игры на Unity (или как я нашел силы после первого провала)

Reading time10 min
Views17K


Приветствую! Время от времени можно увидеть статьи по разработке своих первых проектов на Android и iOS (я собственно не исключение) и зачастую хочется увидеть продолжение, презентацию нового проекта, посмотреть работу над ошибками и собственно какого оно, выпустить неудачный проект и найти силы на новый. Полтора года назад я как раз и выпустил свою первую неудачную игру на Android. Сегодня же пришло время рассказать вам о том, как я набрался сил на создание новой, с учетом проб и ошибок из старой.

Получилась довольно обширная статья, но я старался разбавлять сие дело картинками!
Читать дальше →

От Elite до Rollercoaster Tycoon: история игр-симуляторов, часть 2

Reading time22 min
Views15K
image

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

Учимся летать


Лётные симуляторы в различных формах существовали ещё до изобретения микрокомпьютера, но никогда по-настоящему не выходили на любительский рынок, по крайней мере, в сколь-нибудь сложном виде. Так было до создания Брюсом Артвиком в конце 1979 года Flight Simulator.

Учитывая вычислительную мощность персональных компьютеров того времени, первая версия Flight Simulator неизбежно должна была стать простой, с тайловой каркасной графикой, тормозной частотой кадров и рудиментарной панелью приборов, занимавшей половину экрана. Но за последующие годы она значительно эволюционировала, особенно после того, как права на игру у компании subLOGIC Артвика в 1982 году лицензировала Microsoft.
Читать дальше →

От SimCity до Real Girlfriend: история игр-симуляторов, часть 1

Reading time21 min
Views32K
image

В процессе завершения своей первой игры Raid on Bungeling Bay Уилл Райт разработал редактор уровней, который оказался более интересным, чем сама игра. Углубившись в теории планировки городов и архитектуры, Райт преобразовал редактор в отдельный продукт — больше похожий на «программную игрушку», чем на видеоигру, позволявший игрокам строить город и управлять им. Пользователи могли разделять территории на жилые, коммерческие или промышленные зоны, прокладывать дороги, линии электропередач, строить полицейские участки и многое другое, надеясь создать жизнеспособный, удобный город, способный привлечь «симов» для жизни и работы.
Читать дальше →

Information

Rating
Does not participate
Location
Тернополь, Тернопольская обл., Украина
Date of birth
Registered
Activity