Search
Write a publication
Pull to refresh
44
0

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

Send message

Создание «искусственной жизни» на компьютере

Reading time10 min
Views112K
Всем привет. В статье хочу описать свой эксперимент по созданию «искусственной жизни» на компьютере.

Как это выглядит?

картинка кликабельна

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

Ну а дальше за работу принимается эволюция и естественный отбор.

А мне остаётся только наблюдать за развитием мира.

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

Поведением ботов управляет код, записанный в них.

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

Внутреннее устройство кода — это самое интересное в проекте.

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

Ultima Online: взгляд из-за кулис

Reading time13 min
Views26K
image

Эта статья является переводом нескольких фрагментов книги Braving Britannia: Tales of Life, Love, and Adventure in Ultima Online (www.bravingbritannia.com). Кроме бесед с десятками игроков об их опыте игры в эту прабабушку всех MMO, в книге представлены интервью с некоторыми из первых программистов, дизайнеров и продюсеров игры, в том числе с Крисом Майером (Fallout 76), Рафом Костером (Star Wars Galaxies), Старром Лонгом (Shroud of the Avatar), Гордоном Уолтоном (Crowfall), Ричем Фогелем (DOOM) и другими.

Прежде чем прийти в Origin Systems на должность ведущего программиста, Крис «Faceless» Майер экспериментировал с Ultima Online как один из первых игроков. Майер работал инженером-разработчиком ПО в Остине, штат Техас, используя быстрый Интернет на своём рабочем месте для игры в Ultima Online в обеденный перерыв или после работы.

Майера всегда интересовало создание игр и он надеялся когда-нибудь заняться им профессионально. На самом деле, он готовился к этой возможности всю свою юность.
Читать дальше →

Парный постмортем: как победить Ктулху и ещё 2000 человек

Reading time8 min
Views11K

Всем привет, меня зовут Оля. Две недели назад на CodinGame завершился очередной контест — соревнование по программированию ботов для игры. Я попала в топ-300 мирового лидерборда, поэтому хочу рассказать, почему контесты это круто, и поделиться своими секретами. А ещё секретами поделится Иван spaceorc, который попал в топ-100 того же соревнования.


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


Что такое CodinGame


codingame.com — обучающая платформа для разработчиков всех возрастов и уровней подготовки. Можно писать на 26 языках: от C# и Python до Bash и Haskell. Самое крутое, что задачки там не скучные и непонятные, а настоящие игры с неплохим GUI:


image

Как не только играть, но и побеждать...

DeepMind не остановить: ИИ теперь умеет играть в Quake III Arena

Reading time3 min
Views19K


Компания DeepMind, бывшая некогда подразделением корпорации Google, занимается разработкой ИИ (слабой его формы) для различных целей. Сейчас команда DeepMind активно участвует в создании разных форм ИИ, заточенных для игр, как логических, настольных, так и шутеров. Игр много — это и го, и StarCraft, а теперь — и Quake III Arena.

Разработчики заявили в своем блоге о том, что они обучили систему ИИ играть в Quake III Arena примерно так, как это делает человек. То есть компьютерная система научилась адаптироваться к быстро изменяющимся условиям игры, включая переключение уровней и их элементов. Традиционно, при обучении использовалась система с подкреплением.

Ещё одна погоня за мечтой. RTS + eyetracker руками студента

Reading time18 min
Views20K
Привет.

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

Под катом вы увидите: подробную историю создания RTS своими руками (концепция, код, интерфейс, баланс, карта, модели) и эксперимент по привязыванию к ней айтрекера как средства ввода.


Библиотека ненаписанных книг

Reading time6 min
Views25K
Есть у меня мечта: разработать собственную компьютерную игру.

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

Чего не хватает тем, кто хочет разработать игру?

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

  1. Игровая механика.
  2. Сеттинг.
  3. Идентичность.

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

1. Самый интересный момент в написании компьютерной игры — это игровые механики.
Их нельзя полноценно передать ни текстом, ни статичными картинками. Игровые механики — это процесс.

Так или иначе, именно здесь нужен прототип. Трёхдневный прототип с самыми основными функциями игры, который будет описываться всего парой фраз. Если он увлечёт вас настолько, что вы сами захотите продолжения — всё более или менее правильно. Можно дополнять и украшать.

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

Вы будете смеяться, но получилось.

Зелёный шарик, 16*16 пикселей размером, убегал от красного шарика…

— О, круто! А можешь так же, но в 3D? — подзадоривал меня старший брат.

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

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


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

Многоагентная система для параллельного программирования (Java)

Reading time4 min
Views7.7K

Агентно-ориентированное программирование





Тема дипломной работы в университете была «Многоагентные системы для обработки баз знаний». Подключение многоагентной системы Jade к базе знаний Protege не составило труда и диплом готов. Теперь можно моделировать абстрактные учебные задачи, рои агентов, и так далее и тому подобное. Но возник вопрос, а как применить на деле полученные знания? Случай завершить НИОКР подвернулся при работе над системой «умный дом». Потребовалось небольшое многопоточное приложение для передачи данных от «умного дома» стороннему разработчику веб-интерфейсов. Вот прекрасная возможность применить Агентно-ориентированное программирование. В результате была успешно создана многоагентная система для параллельного программирования.

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

Проект «Морровинд»

Reading time24 min
Views51K
image

Вам нужно сыграть в Morrowind.

(Предупреждение: ниже идут несколько абзацев похвал Морровинду, так что вы можете спокойно пропустить их и переходить к самой сути поста.)

В начале Morrowind вы обычный обалдуй, только что сошедший с тюремного корабля с 87 золотыми в кармане (в этом мире одна буханка хлеба стоит 1 золотой, то есть это примерно 35 фунтов — именно столько вам придётся заплатить за 87 упаковок нарезанного белого хлеба в Tesco). Вашим первым заданием будет получение посылки от человека в другом городе, и вы можете или проехаться на силт страйдере (огромном насекомом с длинными ногами, которым, вероятно, управляет вечно пьяный жуткий водитель — почти как в лондонских автобусах) или прогуляться туда пешком по дикой местности, сражаясь с ордами хищных птиц-переростков железным кинжалом, который вы стянули из бюро переписей. Только ваш кинжал всегда промахивается, потому что, видите ли, создатели боевой системы Morrowind вдохновлялись настольными ролевыми играми, а аниматорам платили не так много, поэтому даже если ваше оружие очевидно вонзается в мясистое тело того, в кого вы, игрок, целитесь, нет никаких гарантий, что вы на самом деле попали.

Посему, сломав пару мышей из-за тысяч яростных кликов, вы решаете бросить Morrowind и тратить свою жизнь на что-то более интересное.

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

Реверс-инжиниринг «Казаков 3», часть сетевая: создаём локальный сервер

Reading time9 min
Views19K


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

Что ж, если гора не идёт к Магомету…
то он достаёт Wireshark

Проверка исходного кода свободного графического редактора Krita 4.0

Reading time17 min
Views15K
Не так давно состоялся релиз новой версии свободного графического редактора Krita 4.0. Самое время проверить этот проект с помощью PVS-Studio.

Picture 1

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

habrahabr.ru → habr.com

Reading time5 min
Views172K
С сегодняшнего дня Хабрахабр доступен по адресу habr.com. Старые адреса habr.ru и habrahabr.ru теперь используются исключительно для редиректа. Хабр начинает новую большую и захватывающую историю.


Правостороннее присваивание и другие необычные приёмы программирования в C#

Reading time7 min
Views28K
В этой статье будут рассмотрены с нового ракурса такие привычные и фундаментальные вещи, как присваивание и передача параметров в методы.

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

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

За дело!

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

Как заработать свои первые 100$ в Google Play Market — мой опыт

Reading time4 min
Views228K
В этой статье я расскажу, как мне удалось заработать первые 100$ на моих приложениях в Google Play Market. Какие стратегии более успешные и на что стоит обратить внимание новичку.
Читать дальше →

«Герои Меча и Магии» в браузере: долго, сложно и невыносимо интересно

Reading time22 min
Views105K
Как реализовать в браузере игру, на которой годы назад залипал без всякого браузера? С какими сложностями столкнёшься в процессе, и как их можно решить? И, наконец, зачем вообще это делать?

В декабре на конференции HolyJS Александр Коротаев (Tinkoff.ru) рассказал, как он сделал браузерную версию «Героев». Ранее уже появилась видеозапись доклада, а теперь для Хабра мы сделали ещё и текстовую версию. Кому удобнее видео — запускайте ролик, а кому текст — читайте его под катом:

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

Как я (пере)делал «рогалик» за неделю

Reading time34 min
Views15K
image

Неделя с 4 по 11 марта была просто безумной.

Всё было не так плохо, как я ожидал, исходя из своего опыта 2012 года (на этот раз мне на самом деле удавалось спать по добрых 7-8 часов за ночь!), скорее всего, потому, что я стал гораздо более опытным, чем тогда, и имел в своём распоряжении гораздо больше инструментов. Желание создать что-то потрясающее заставило меня потратить более 80* часов работы на POLYBOT-7, мою игру для Seven-Day Roguelike Challenge этого года. (*Это только за неделю, сюда не включено время на подготовку перед 7DRL !)

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

Иногда этот проект был тяжеловат для меня, потому что годы «нормальной» работы над roguelike приучили меня записывать абсолютно всё, что я делаю или планирую, а также долго думать в поисках наилучшего решения. Мне пришлось преодолеть эту привычку и просто работать — не писать о работе, а делать её прямо сейчас! Мне приходилось напоминать себе об этом всю неделю.

Эта статья является подробным постмортемом, описывающим разработку POLYBOT-7. В ней рассматривается как весь процесс в целом, так и размышления, которыми я руководствовался, принимая решения.
Читать дальше →

«Три девицы под окном» или вспоминаем как выглядели Windows Mobile 2003 SE, WM 6, WM 6.5

Reading time4 min
Views26K
Не так давно, копаясь в ящике в поисках трехгранного ключа, я с удивлением обнаружил, что храню три достаточно древних смартфона.

Ностальгия взяла верх и о чудо! Два раритета включились, а для третьего трудолюбивые граждане КНР еще производили аккумуляторы и его тоже можно было реанимировать. Перестав «пускать слезу» на СМСки 5-ти летней давности, я подумал, что просто обязан напомнить вам как выглядела ОС для смартфонов от Microsoft более чем 10 лет назад.

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

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


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

От Бури до Луны. Часть 1. Первые ЭВМ

Reading time18 min
Views16K


Перед вами несколько необычная статья. Собственно, это и не статья вовсе. Год назад, как раз после Дня космонавтики-2017, я взял интервью у Александра Константиновича Платонова, математика Института прикладной математики.

Человека, который принимал участие в развитии наших ЭВМ и космонавтики. Он был один из тех, кто еще помнил, как программировать на МЭСМ, БЭСМ и Стрелах, кто рассчитывал на них программу выведения «Бури», а потом Спутника, и многое другое. Он хорошо помнил создателей всей нашей техники, от Лебедева до Королева с Келдышем. Ему было 86 лет, но он меня поразил ясностью своей мысли.

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

Моноширинные шрифты с программистскими лигатурами

Reading time2 min
Views54K
Программисты любят псевдографику. В любом языке полно составных знаков: ->, <=, ++, :=. По смыслу это один символ, но составленный из нескольких более простых. Мозгу требуются дополнительные усилия на то, чтобы считать и объединять такие конструкции на лету. Когда-нибудь, возможно, всех спасет Юникод, где символов хватит на сто языков вперед — если придумают удобный способ ввода и отомрет всё легаси. Но пока нам приходится читать и писать код в ASCII.

Казалось бы, дело швах. Но в апреле 2014 года Ian Tuomi придумал изящный выход: заменять часто встречающиеся последовательности лигатурами. Моноширинность при этом не ломается (если сделать ширину лигатуры кратной количеству символов, в нее входящих), код тоже не портится (лигатуры — чисто визуальная фича). Зато можно вместо -> нарисовать настоящую стрелочку. Это сильно облегчает мозгу сканирование и токенизацию кода: там, где по смыслу один символ, теперь и нарисован один символ. Самое главное, что это работает с любым, даже уже написанным кодом.
Читать дальше →

Развязываем игровой код с помощью паттерна Command, и дебажим, летая на машине времени

Reading time18 min
Views22K

Картинка для привлечения внимания: &gt; Replay bug-10492; going back in time


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


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


Начинающие разработчики познакомятся с паттерном, а продвинутые, возможно, найдут трюк полезным.


Хотите узнать как это сделать? Прошу под кат.

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

Как быть* компилятором — создание компилятора на JavaScript

Reading time8 min
Views12K
Привет, Хабр! Представляю вашему вниманию перевод статьи "How to be* a compiler — make a compiler with JavaScript" автора Mariko Kosaka.

*Все верно! Быть компилятором — это здорово!

Дело было одним замечательным воскресеным днем в Бушвике, Бруклин. В моем местном книжном магазине я наткнулась на книгу Джона Маэда “Design by Numbers”. Это была пошаговая инструкция по изучению DBN — языка программирования, созданного в конце 90-х в MIT Media Lab для визуального представления концепций компьютерного программирования.
Читать дальше →

Information

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