Download Latest Version Platformer2D-AI-Windows.zip (37.2 MB)
Email in envelope

Get an email when there's a new version of Platformer2D-AI

Home
Name Modified Size InfoDownloads / Week
Platformer2D-AI-Windows.zip 2023-05-23 37.2 MB
Platformer2D-AI-GNU_Linux.zip 2022-05-15 52.9 MB
README.txt 2022-05-11 13.9 kB
Totals: 3 Items   90.1 MB 0
ДВУМЕРНЫЙ ПЛАТФОРМЕР


НАЗНАЧЕНИЕ:

Первоначальное обучение основам искусственного интеллекта на языке C++ с использованием фреймворка Qt.
(фреймворк Qt необходим для для связи написанной обучающимся программы с Двумерным платформером)

Двумерный платформер, как средство обучения позволяет обучаться:

    - программированию на языке С++ в среде разработки Qt Creator;

    - использованию любых библотек (STL, QtCore, Boost, и т.д.), алгоритмов, приёмов программирования, способствующих созданию ИИ, способного пройти все игровые уровни лучше других (ориентированность на конечный результат, а не на методы решения поставленных задач);

    - созданию алгоритмов, анализирующих и прогнозирующих игровые ситуации на несколько ходов вперёд;

    - повышению эффективности алгоритмов при помощи:
	эффективного использования доступных игровых ресурсов (боеприпасы, энергию);

	минимизации количества игровых ходов для достижения игровым персонажем маркера финиша;

    - сравнения эффективности своего ИИ с ИИ других обучающихся и с встроенным ИИ на основании результатов прохождения игрового уровня;

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

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


СРАВНЕНИЕ ДВУМЕРНОГО ПЛАТФОРМЕРА С ДРУГИМИ ПОПУЛЯРНЫМИ ДВУМЕРНЫМИ ПЛАТФОРМЕРАМИ
(в качестве популярных двумерных платформеров рассматриваются Super Mario, Super Tux, Dangerous Dave in the Haunted Mansion 1991)

    - приспособленность игрового персонажа быть управляемым внешней программой через разделяемую память;

    - приспособленность Двумерного платформера передавать информацию об окружающей игровой персонаж области игрового уровня программным путём через разделяемую память; 

    - использование кросс-платформенного фреймворка Qt позволяет использовать Двумерный платформер на различных операционных системах и архитектурах процессоров; 

    - большая ширина видимой области игрового уровня относительно ширины игрового персонажа — больше простора для анализа и прогнозирования игровой ситуации;
 
    - одноуровневость платформ игрового уровня по вертикали (отсутствие возможности альтернативного пути в выбранном направлении движения по платформам, расположенным выше или ниже той, на которой расположен игровой персонаж) — простота реализации бота;

    - возможность свободного перемещения игрового персонажа по игровому уровню (как вправо, так и влево, возврат на уже посещённые игровые поля);

    - пошаговость — в отличие от игры в реальном времени, пользователи или бот обладают запасом времени для принятия решения, простота отладки;

    - протоколирование игровых ходов с полной информацией об игровом уровне, расположении игрового персонажа и всех противников на игровом уровне;

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

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

    - допустимость постоянного нахождения в области видимости игрового персонажа 9 — 11 и более противников, тогда как в популярных платформерах количество одновременно видимых противников, как правило, равно 3 — 4 и изредка доходит до 5 — 6;

    - наличие предоставляемого пользователю Двумерного платформера исходного кода Qt-проекта с ботом «Вправобот», управляющего игровым персонажем и показывающего простейшие принципы организации и функционирования бота в игровом мире Двумерного платформера;

    - наличие встроенного бота «Алгобот», показывающего пример прохождения игровых уровней;

    - наличие встроенного бота «Чайник» и режима неподвижных противников для упрощения прохождения игровых уровней в случае, если обучающающийся малоопытен или не имеет опыта в программировании;

    - наличие встроенного редактора игровых уровней с возможностью сохранения нескольких созданных самостоятельно игровых уровней в текстовый файл в кодировке UTF-8 и загрузки игровых уровней из этих файлов.

Подробнее смотрите во внутриигровой справке.



СРАВНЕНИЕ РЕСУРСОВ-АНАЛОГОВ В ИНТЕРНЕТ, ОБУЧАЮЩИХ ПРОГРАММИРОВАНИЮ И ИИ С ДВУМЕРНЫМ ПЛАТФОРМЕРОМ


codecombat.com

+ Преимущества codecombat.com перед Двумерным платформером:

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

    - подходит для тех кто не знаком с основами программирования и хочет обучиться основам программирования сам без преподавателя в игровой форме;

    - предоставляет медленное, визуальное, поэтапное улучшение познаний основ языков программирования: Python, Javascript, CoffeeScript, Lua;

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

    - меню выбора заданий оформленно в виде карты игрового мира с отмеченными местами прохождения заданий;

    - наличие звукового оформления.

- Недостатки codecombat.com перед Двумерным платформером:

    - не поддерживает C, C++;
    - платная подписка ~4$ в месяц;

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

	* линейный вычислительный процесс;

	* ветвящийся вычислительный процесс (условный оператор);

	* циклы;

	* массивы (одномерные и двумерные);

	* строки;

	* функции;

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

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

    - отсутствует необходимость предсказывать игровую ситуацию на несколько ходов вперёд;

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


codingame.com

+ Преимущества codingame.com перед Двумерным платформером:

    - широкий набор задач различного уровня;

    - задачи затрагивают различные алгоритмы, приёмы программирования, математематические, геометрические, физические формулы и расчёты;

    - наличие заданий с красивой, качественной визуализацией;

    - возможность командных соревнований в реальном времени.

- Недостатки codingame.com перед Двумерным платформером:

    - задачи не связаны между собой общей темой, сюжетной линией, главным героем;

    - задачи не всегда визуализирированы графикой;

    - многие задачи имеют примитивную двумерную графику.


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

В СЛУЧАЕ ЗАВИСАНИЯ ИНТЕРФЕЙСА ДВУМЕРНОГО ПЛАТФОРМЕРА (ВСЕ КНОПКИ, КОТОРЫЕ МОГУТ НА ЧТО-ТО ПОВЛИЯТЬ СТАНОВЯТСЯ НЕДОСТУПНЫ)
GNU/LINUX: УБЕЙТЕ ПРОЦЕСС ЧЕРЕЗ СИСТЕМНЫЙ МОНИТОР (ИМЕННО УБИТЬ (KILL), А НЕ ЗАВЕРШИТЬ)
WINDOWS: ЗАВЕРШИТЕ ПРОЦЕСС ЧЕРЕЗ ДИСПЕТЧЕР ЗАДАЧ

Source: README.txt, updated 2022-05-11