0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Урок №1: Введение в создание игры «SameGame» на C /MFC

Урок №1: Введение в создание игры «SameGame» на C++/MFC

Обновл. 28 Дек 2020 |

В этой серии обучающих уроков мы, используя библиотеку MFC (сокр. от «Microsoft Foundation Classes»), с нуля создадим свой вариант всем известной игры-пазла SameGame. Мы добавим несколько дополнительных фич к этой игре, помимо простого удаления блоков, а также реализуем подсистему отмены/повтора действия и диалоговые окна конфигурации. Рассмотрим примеры не только «голого» исходного кода, но и поэтапную разработку вместе со скриншотами.

  1. Правила игры SameGame
  2. Перед началом работы
  3. Чему вы научитесь?
  4. Почему именно MFC?
  5. Создание проекта

Подготовка Visual Studio

Создадим новый проект в Visual Studio. Обратите внимание, что проект требует библиотеку SFML, поэтому если вы не настраивали окружение для нее, прочтите сначала небольшое руководство по настройке.

  1. Откройте Visual Studio и выберите File | New Project. В левом меню отметьте язык C++ и шаблон HelloSFML. Назовите проект Simple Game Engine.
  2. Выберите правой кнопкой мыши файл HelloSFML.cpp в окне Solution Explorer (под Source Files), далее – Rename и назовите файл Main. Это подходящее имя, так как файл будет содержать основную функцию.
  3. Откройте Main.cpp, удалите все содержимое файла.
  4. Переместите файл библиотеки SFML.dll из каталога Диск:SFMLbin в Диск:Visual Studio StuffProjectsSimple Game EngineSimple Game Engine. Если названия в путях отличаются, вероятно, вы сделали отличную от руководства настройку.
Статья в тему:  Онлайн игры во что поиграть 2018

Теперь можно приступить к коду. Исходный код и дополнительные ресурсы будут доступны на этой странице.

Онлайн сервисы для создания игр

Factile

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

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

После регистрации сервис перекинет вас к выбору тарифа. Если не планируете покупать подписку, используйте бесплатный доступ.

Когда вы выберите тариф, система перенесет вас в окно создания викторины.

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

Для доступа к полному функционалу здесь есть несколько платных тарифов от 350 рублей в месяц.

Русского перевода нет, но браузер Хром переводит большинство элементов управления.

ProProfs

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

Сайт ProProfs также не имеет русского языка, но это легко исправить с помощью машинного перевода. Однако не все игровые модули поддерживают кириллицу.

Как пользоваться сервисом:

  1. Чтобы начать проект, пройдите регистрацию на сайте. После чего нажмите на главном экране кнопку «Создать свою первую викторину»;
  2. Выберите вариант «Создать личную викторину»;
  3. Выберите шаблон (модуль).

В программе доступны следующие модули:

  • паззл;
  • кроссворд;
  • угадывание слов;
  • ответы на вопросы;
  • тесты.

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

Статья в тему:  Что такое аое в доте

Подписка на самый дешевый тарифный план ProProfs стоит 25$ в месяц (примерно 1700 рублей).

Gamefroot

Gamefroot – онлайн сервис для создания 2D мини-игр. В его основе – полноценный игровой движок на базе HTML5.

Этот ресурс предназначен для детей и начинающих создателей игр, поэтому у него простой интерфейс и интуитивно понятное управление. Каждый элемент сопровождается всплывающим окном подсказки.

Есть в Gamefroot и специальный модуль для написания скрипта с пояснением алгоритмов и логики.

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

Для работы с сервисом регистрация необязательна. Однако авторизованным пользователям открываются дополнительные шаблоны и элементы.

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

На главной странице сайта указано, что пользователям доступна платная подписка, которая открывает еще больше возможностей. Но я не нашел ни одной функции, за которую бы просили денег. Также я не увидел кнопки для оформления подписки. После регистрации функционал Gamefroot доступен в полном объеме.

Русского языка здесь нет, но чтобы начать делать игру с нуля , достаточно автоперевода браузера.

Другие способы учиться программированию в Unity

Обучающие материалы по программированию на C# в Unity

У нас есть масштабная коллекция коротких уроков, где рассматриваются основы программирования на C# в Unity. Начните с материалов для начинающих, а затем переходите к коллекции для опытных пользователей.

Learn C# from Brackeys

Советуем вам изучить эту серию видеороликов с популярного канала Brakeys на YouTube, где рассматриваются основы разработки скриптов на C# в Unity.

Статья в тему:  Сколько dpi нужно для доты

Автор: Jabrils

Разработчик ПО и опытный блогер Jabrils рассказывает на YouTube о том, как он учился программировать, и публикует собственные материалы для начинающих в плейлисте Everything you need to start programming.

А как насчет всех остальных языков?

В то время как C/C++ и C# были очевидными лидерами, было упомянуто еще 9 языков, включая PHP, Java, javascript, Python, Assembly, Lua, Ruby, Erlang и Go.

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

Например, Take-Two Interactive была единственной компанией, которая упомянула Erlang, и только в сообщениях Riot Games упоминался Go. Обратите внимание, что ни одна из студий не упоминала эти языки в качестве жесткого требования.

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

А теперь самое интересное! После того как вы создали игру и разместили ее в интернете, пришло время пригласить друзей и сыграть! Вам понадобится два или более игроков, лист бумаги и карандаш для записи счета.

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

Правила игры просты:

  • Первый игрок выбирает категорию и сложность вопроса. Например, Президенты США, 300 .
  • Ведущий кликает на выбранную клетку игрового поля и зачитывает вопрос вслух. Например: «Медвежонок Тедди был изобретен после того, как этот американский президент отказался на охоте застрелить медведя, привязанного к дереву» .
  • После того как ведущий прочитает вопрос, любой из участников может хлопнуть в ладоши, чтобы ответить. Например, предположить, что это был Теодор Рузвельт .
  • Если ответ верный, игрок получает количество очков, полагающееся за этот вопрос, и может выбрать следующий.
  • Если ответ неверный, игрок получает штрафные очки, при этом другой игрок может попытаться ответить на вопрос.
  • После того как все вопросы на игровом поле будут отвечены, начинается подсчет очков. Игрок с наибольшим количеством очков побеждает.
Статья в тему:  Как выбрать наушники для онлайн игр

Посмотрите, какая игра получилась у нас:

Чтобы узнать больше об официальных правилах игры, прочитайте официальную страничку оригинальной игры Jeopardy! на Википедии, а также страничку о «Своей Игре».

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

Если у вас возникли трудности с составлением вопросов, посмотрите записи прошедших телевизионных игр.

История проекта

Пилотный сезон

Перед официальным запуском игры в марте-мае 2013 года были проведены пилотные игры. Помимо подготовки к первому циклу игр, проходил процесс набора игроков и договорённостей Семёна Ракшина со «Студией 2В». В результате переговоров телекомпания дала разрешение на производство проекта для популяризации «Своей игры» среди молодёжи в интернет-пространстве. Это позволило использовать в проекте оригинальные графические и музыкальные материалы программы.

Открытый командный турнир

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

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

Правила турнира

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

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

Статья в тему:  Кто такой пгг в доте

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

Кубок Вызова

Второй цикл онлайн-версии представляет собой сокращённый вариант одноимённого турнира телевизионной версии, а именно четвёртого сезона цикла.

Записи игр стартовали в октябре 2013 года, еще до выхода Открытого командного турнира. Премьера цикла состоялась 28 декабря 2014 года.

Правила турнира

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

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

В финальных играх участвуют гроссмейстеры, которые по итогам трёх кругов остались в Ложе. Гроссмейстеры распологаются в порядке убывания суммарных выигрышей. Сначала между собой играют занявшие 9-е, 8-е и 7-е места, занявший третье место выбывает. К двоим оставшимся присоединяется 6-й игрок, и снова человек, занявший третье место, покидает розыгрыш. В итоге двое лучших и первый гроссмейстер составляют финальную тройку.

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

Я не хочу ничего учить, но у меня есть деньги

Поздравляем, вы избежали многих проблем. И тут же получили новые. Чтобы сделать браузерную игру хорошего качества (в плохую никто играть не будет) нужно иметь хорошую команду разработчиков, а хорошие спецы стоят денег. Если брать по минимуму, то вам необходимы:

  • Программист – 2 штуки
  • Дизайнер и художник – 2 штуки
  • Гейм-дизайнер – 1 штука
  • Комьюнити-менеджер – 1 штука
  • Гейм-мастер – 1 штука.
Статья в тему:  Как оплатить онлайн игры

Если у вас нет личных знакомств, то придется обращаться к аутсорсингу. Обычно такие ребята трутся на биржах фрилансеров, самой популярной их которых является www.fl.ru/.

Всех необходимых работников можно найти на биржах фрилансеров

Правда, в этом случае нужно быть очень осторожным, поскольку фрилансеры привыкли регулярно срывать сроки. Как говорят опытные руководители, можно бесконечно смотреть на 3 вещи: как течет память, как горит дедлайн и как не работает фрилансер.

Во сколько обойдется разработка?

Во столько, сколько у вас есть денег. Вот здесь приведены примерные выкладки и структура расходов на создание среднестатистической браузерки. Итоговая сумма – 25 миллионов рублей. Однако не стоит пугаться этой цифры. В статье автор посчитал расходы на разработку по максимуму, так что при желании эту сумму модно уменьшить в разы и даже десятки раз. Или увеличить, если ваш папа – прокурор. Безусловно, такие проекты, как Drakensang Online или City of Steam требуют сумм как минимум с шестью нулями, но простую табличную браузерку можно сделать за пару десятков тысяч рублей.

В конце концов, вы всегда можете обратиться к краудфандингу. Пути Кикстартера неисповедимы, взлететь там может любой проект. Главное правильно подать блюдо.

Этапы разработки

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

1. Поиск идеи

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

Статья в тему:  Сколько mmorpg онлайн игр в мире

2. Разработка сюжета

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

3. Создание игры

Даже если вы выучили вдоль и поперек JavaScript и CSS, вы все еще ничего не знаете о том, как создать браузерную игру. Это примерно то же самое, как если бы вы выучили теорию плавания, ни разу не побывав в бассейне. Лучший выход в этом случае – воспользоваться самоучителем. Вот здесь можно многое узнать о разработке игр, причем не только браузерных.

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

4. Продвижение проекта

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

Для Unity существуют тонны бесплатных ассетов в Unity Asset Store, GitHub, bitbucket и на других сайтах. Я постоянно их использую в каждом своем проекте. Сделайте свою жизнь проще — пользуйтесь! Но помните, что они неидеальны. Если вы заметили в них какие-то ошибки — исправьте их или сообщите разработчику!

  • TextMeshPro (👍).
  • LeanTween (👍).
  • Fungus.
  • Corgi Engine.
  • Dialogue System.
  • Post Processing Stack.
  • Keijiro Takahashi — он работает с движком Unity, у него есть удивительные визуальные эффекты для Unity с открытым исходным кодом, которые вы также можете использовать!

И последнее, но не менее важное! Средство №1 для разрешения всевозможных проблем в программировании: Google!

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector