IGROMANIA.RU
Registration
Автор «Игромании.ру», убежденный выпускник матфака, программист. Статьи пишет на C++, а потом долго переводит на русский, чем добавляет головной боли редактору. Впервые сел за компьютер в пять лет. С тех пор отчаянно пытается отомстить играм за потерянное детство.
  
MoreLess
Популярные за неделю
Популярные за месяц
«Викинг». The Return of the (Vi)king Кино > «Викинг». The Return of the (Vi)king
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментариев: 52
Презентация Nintendo Switch. Самое главное об играх для новой консоли Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Nintendo заявила, что в разработке находится более восьмидесяти игр для консоли Switch. Рассказываем о тех, что выйдут в ближайшее время.
Комментариев: 19
Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria Спец > Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria
Продолжение Gravity Rush, возвращение «Обители зла», приключения в мире японской мафии и прочие интересности.
Комментариев: 13
Planet Coaster: парк развлечений своими руками Рецензии > Planet Coaster: парк развлечений своими руками
С самого детства мечтали построить идеальный парк аттракционов? Planet Coaster от Frontier Developments это позволяет!
Комментариев: 4
Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником Железный цех > Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником
Подводим итоги крупнейшей международной выставки потребительской электроники.
Комментариев: 2
Бурные 1980-е. Первые впечатления от Yakuza 0 В разработке > Бурные 1980-е. Первые впечатления от Yakuza 0
Знаменитая серия отправляет в прошлое, чтобы рассказать историю о том, как Кадзума Кирю стал одним из самых известных мафиози.
Комментариев: 1
Информация по игре
Minecraft
Название: Minecraft   PCX360MaciOSPS4
Другое название: Minecraft: Pocket Edition
Мультиплеер: Интернет
Разработчик: Mojang Specifications
Издатель: Mojang Specifications
Тип: клиентско-браузерная игра
Модель распространения: единовременная оплата
Дата выхода: 18 ноябрь 2011
Сайты игры:
http://www.minecraft.net/
Рейтинги игры
9.5
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Видео по игре
Minecraft
Все
Игромания
Только на русском / с субтитрами
Самые невероятные сооружения в Minecraft
 ИМ  спец PCX360MaciOSPS4
16 декабря 2016 | 5 мин. 48 сек. | Просмотров: 0
Самые эпичные и огромные конструкции в Minecraft, некоторые и вовсе в натуральную величину!
ТОП-5 сложных механизмов, созданных в Minecraft
 ИМ  спец PCX360MaciOSPS4
10 декабря 2015 | 5 мин. 13 сек. | Просмотров: 0
Самые сложные устройства нашего мира воссоздают в мире Minecraft уже не первый день. Вот одни из самых впечатляющих примеров.
Minecraft - Greek Mythology Mash-up Pack
 трейлер PC
26 июля 2015 | 1 мин. 50 сек. | Просмотров: 15901
В Minecraft появился дополнительный контент, посвященный греческой мифологии.
Minecraft - PS Vita Edition
 трейлер Vita
21 октября 2014 | 4 мин. 39 сек. | Просмотров: 6066
О том, как здорово копать кристаллы в Minecraft на портативке Sony.
Minecraft - PS3 Trailer
 трейлер PS3
16 апреля 2014 | 1 мин. 29 сек. | Просмотров: 926
Специальное PS3-издание с поддержкой Split-screen до четырех игроков.
Еще материалы по
Minecraft
Всего: 8
Статьи о Minecraft
Рассказываем об одной из самых успешных игр в истории — Minecraft.More
Почти для каждой крупной игры в сети есть дополнения, улучшающие картинку. И среди них встречаются замечательные вещи.More
Рассказ о том, как выглядит программный код, — для людей, которые в глаза его не видели.More
Стоит ли бояться, что Microsoft испортят все, за что люди любят Minecraft? Очень вряд ли.More
Еще раз — и с чувством ностальгии — Маркус Перссон предлагает навестить свой кубический мир. Теперь — на PS3.More
Всего: 160
Новости о Minecraft
Эмулятор Atari 2600 был построен из пары тысяч командных блоков.More
Повесть под названием Minecraft: The Island будет своеобразной историей «кубического Робинзона Крузо, только еще безумнее».More
В этот же день игроки получат бесплатное обновление.More

Буквально на днях сотрудники Mojang выпустили небольшой «симулятор программиста» — простенький и сугубо научно-популярный. Это не Colobot и даже не Human Resource Machine, и программировать эта игрушка никого не научит. Ее задача в другом: она неплохо показывает, что такое программирование, тем людям, кто про это вообще ни сном, ни духом.

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

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

Что такое программа?

Даже «Википедия» скажет нам, что компьютерная программа — это в первую очередь последовательность команд. Какую бы цель вы ни преследовали, задача сводится к тому, чтобы создать для компьютера четкую инструкцию, описывающую, что он должен сделать. Записав эту инструкцию на любом из языков программирования, вы и создадите программу.

► Согласно определению, это тоже программа. Просто с очень специфическим набором инструкций.

Это касается любой программы. Skype при помощи последовательности команд объясняет компьютеру, как принимать и отправлять звук и видео по сети. Cities: Skylines при помощи последовательности команд объясняет компьютеру, как рисовать город и как должны меняться его здания и кварталы с течением времени. Сайт «Игромании» при помощи последовательности команд объясняет серверному компьютеру, где взять текст статьи и как отправить его на компьютер читателя.

Интерактивный тренажер Minecraft демонстрирует это просто и наглядно: мы составляем последовательность команд, объясняющую персонажу Minecraft куда перемещаться, где уничтожать блоки, а где устанавливать. Нажав на кнопку «показать код», вы увидите, как эти команды выглядят в виде программного кода. Примерно так на самом деле выглядят «изнутри» все программы, разве что кода в них обычно намного больше.

Как мне написать свою программу?

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

► Код слева выглядит куда запутаннее, но это такой же JavaScript, как и справа.

Если вас интересует программа «как таковая», создайте на диске текстовый файл MyJavascriptTest.html и напишите там:

<script type='text/javascript'>
alert("Hello, world!");
</script>

После этого откройте файл при помощи браузера.

Готово — вы написали на языке JavaScript последовательность из одной команды, объяснившую браузеру, что вам нужно показать всплывающее окошко с надписью «Hello, world!». Вы восхитительны.

Как мне выбрать язык программирования, и чем они вообще отличаются?

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

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

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

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

Например, тренажер Minecraft генерирует код на языке JavaScript. Сам по себе этот язык не знает, что означает, скажем, команда moveForward(), которую вы используете, чтобы сдвинуть персонажа на клетку вперед. Но игра использует библиотеки Mojang, и вот в них уже описано, какая именно последовательность инструкций скрывается за командой moveForward(). То есть вы используете готовую функцию из готовой библиотеки на JavaScript, чтобы сдвинуть персонажа на шаг вперед.

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

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

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

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

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

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

Если проблема только в том, что описывать нужно много всего, почему программисты постоянно говорят о каких-то сложных алгоритмах?

Как правило, чем сложнее задача программиста, тем больше у нее вариантов решения и тем больше возможностей ошибиться — слишком много факторов приходится включать в расчет. Даже элементарную задачу «поделить число А на число Б» не стоит пытаться решить в одну команду: сначала стоит все-таки убедиться, что число Б — не ноль.

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

► Обычно алгоритмы ветвления немного сложнее: после участка «если» часто нужен пункт «иначе». Но суть передана верно.

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

Именно поэтому начинать писать программы можно вообще без компьютера: взять бумажку, ручку и нарисовать алгоритм программы, попытавшись учесть в ней все возможные «если». А уж хорошо написанный алгоритм легко реализовать почти на любом языке программирования.

С чего начинать изучение языка программирования?

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

► Тренажер Minecraft дает прекрасное общее представление о том, что такое циклы и в каких случаях левый вариант стоит заменять правым.

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

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

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

Главный вопрос: когда я смогу сделать свой Fallout Online с открытым миром, фотореалистичной графикой и караванами?

На этот вопрос вы сможете ответить самостоятельно — сразу после того, как сделаете хотя бы «морской бой» по сети.

В конце концов, если бы программировать было так просто, программистов насчитывалась бы тьма тьмущая, не правда ли?

NNNN
NN  
Всего скриншотов: 6Show all screenshots
В этом году было не так много квестов, но те, что были, — все как на подбор хороши.
Nintendo заявила, что в разработке находится более восьмидесяти игр для консоли Switch. Рассказываем о тех, что выйдут в ближайшее время.
В 2016 году вышло немало всяческих переизданий, ремейков и HD-версий. Выбираем лучшие из них.
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментарии к статьям
Согласны 35 из 38
08.12.2015 | 21:01 ALEXEVIAN [64965]
Ха, ни одного коммента. А между тем, спасибо за статью, хоть люди немного поймут, что игру сделать не плюнуть с балкона.
Согласны 9 из 10
08.12.2015 | 21:11 Strayder [167327]
Местные писаки не поймут.
Согласны 6 из 7
08.12.2015 | 21:56 gunpoint [504695]
Если затрагивать вопрос создания игр, то например в unreal engine есть blueprint, а в unity - playmaker, что в разы все упрощает, код даже по сути и писать-то не приходится. Я не говорю, что это легко, но намного легче для тех, кто с программированием дела не имел.
Согласны 11 из 14
08.12.2015 | 21:56 DEMOn7472 [65800]
Грамотная статья, автору плюс
Согласны 5 из 9
08.12.2015 | 22:22 NAGIBATOR_VIP_007 [495641]
Спасибо за статью, познавательно! Хотя, конечно, местная школота не поймет.
Согласны 15 из 16
08.12.2015 | 22:44 Станислав Степанченко [134056]
И вам спасибо за внимание.
Очень рад, если вас заинтересовало :)
Согласны 6 из 7
08.12.2015 | 23:12 egorlukyanov [494961]
легко и доступно. классная статья
Согласны 4 из 5
08.12.2015 | 23:16 kre-sod [300736]
Вау, что-то полезное. Дико плюсую. Как ни странно, но с юнити я вообще не могу справиться, а вот libgdx потихоньку движется
Согласны 2 из 2
09.12.2015 | 00:07 Герц [109653]
gunpoint
Если затрагивать вопрос создания игр, то например в unreal engine есть blueprint, а в unity - playmaker, что в разы все упрощает, код даже по сути и писать-то не приходится. Я не говорю, что это легко, но намного легче для тех, кто с программированием дела не имел.

Ни один реальный проект на UE4 сегодня не обойдётся без Cplusplus разработчика, или нескольких.
Согласны 3 из 20
09.12.2015 | 00:15 Саня Сафин [VK] [307827]
У нас в школах паскаль проходят. Полезна ли статья? По-моему нет.
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > «Викинг». The Return of the (Vi)king
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Прямым текстом > Darksiders: Warmastered Edition — жизнеспособное чудище Франкенштейна
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования