mamontov-cpp / petri-cup

Упрощенная версия игры "Чашка Петри", основанная на реализации Сперцян К.
MIT License
0 stars 0 forks source link

Задания на новый семестр #2

Open mamontov-cpp opened 7 years ago

mamontov-cpp commented 7 years ago
  1. Чашка Петри 1.1. В чашке Петри существуют различные виды клеток, которые едят друг друга. И некоторые, которые не едят. 1.2. В чашке Петри можно запускать снаряды, которые притягивают клетки друг к другу, а также снаряды, которые просто отнимаю HP от другой клетки. Придумать анимацию и визуализацию этого. 1.3. Реализовать разделение и собирание клеток в чашке. Определить краевые условия собирания и разделения. 1.4. Реализовать регионы на карте, при попадании в которые игрок замедляется, ускоряется или может двигаться только в определённую сторону. 1.5. Реализовать систему квестов и NPC в чашке Петри. Система должна быть несложной: 1.5.1. Съесть Х определённых агаров (виды агаров закодить заранее). 1.5.2. Взять агар и "принести" его NPC Сделать процедурную генерацию NPC и квестов.
mamontov-cpp commented 7 years ago
  1. Реализовать несложную РПГ, в которой игрок может ходить, убивать монстров (сделать 1-2 вида) и собирать предметы. Добавить основные единицы, влияющие на параметры персонажа: 2.0.1. Сила - атака. 2.0.2. Здоровье - единицы HP 2.0.3. Ловкость - возможность уклонения

Игровые предметы могут: 2.0.4. Повышать силу (постоянно и временно) 2.0.5. Повышать здоровье (постоянно и временно) 2.0.6. Повышать ловкость (постоянно и временно).

Добавить рост их по уровню. Монстры не атакуют игрока, пока он не атаковал их. По умолчанию доступно только оружие близкого боя. 2.1. Добавить агрессивных монстров, которые атакуют игрока автоматически. Реализовать больше статистик: 2.1.1. Защита 2.1.2. Интеллект. Добавить ограничение на ношение/использование предметов, если не подходят по интеллекту. 2.1.3. Харизма. Добавить возможность уклониться от боя с противником, если харизма больше определённого порога. 2.2. Добавить фракции в игре. Сделать возможность вступления во фракцию для игрока. Монстры могут также вступать во фракции. Отношения между фракциями могут быть дружественными и недружественными. Дружественные монстры/игрок не атакуют друг друга (за исключением особых случаев), недружественные - атакуют автоматически. Сделать таблицу отображения отношений между фракциями. По умолчанию отношения между всеми фракциями - дружественные. Сделать особую фракцию - нейтральную, которая по умолчанию враждебна всем. Повод для смены отношений между фракциями - атака одним монстром другой фракции. 2.3. Добавить возможность накопления золота в игре и возможность покупать предметы в магазине (не привязан к NPC, отображать в отдельном окне), Реализовать следующую логику: раз в N минут выбираются две точки на карте, и между ними движется караван, состоящий из повозки и охраняемый несколькими монстрами. Игрок может уничтожить данный караван, ограбив его и получив награду в золото и несколько предметов. 2.4. Добавить возможность накопления золота в игре и возможность покупать предметы в магазине (не привязан к NPC, отображать в отдельном окне), Добавить здания, захватывая которые, игрок начинает получать золото за их посещение. Добавить монстров, которые могут также захватывать здания. 2.4.1. Добавить NPC, которые будут развиваться и собирать предметы так же, как и сам игрок. 2.5. Реализовать луки и арбалеты в игре. Создать набор статов, главного героя, отвечающего за них.

mamontov-cpp commented 7 years ago
  1. Реализовать несложный платформер, который состоит из одного уровня, анимированного персонажа и неподвижных платформ, между которыми персонаж может прыгать. Цель персонажа - дойти до конца уровня. 3.1. На уровне могут появляться враги, по которым игрок может стрелять. Враги также движутся по платформе. При стрельбе противники умирают. Реализовать систему бонусов, которые позволяют игроку менять то, как производится стрельба. 3.2. На уровне могут появляться враги, по которым игрок может стрелять. Враги также движутся по платформе. При стрельбе противники умирают. Реализовать сложные поведения врагов, например вызов подкрепления, убегание от игрока, ожидание других врагов. 3.3. Добавить босса в конце уровня. У босса должны отображаться HP, должна проигрываться специальная музыка. Реализовать поэтапное уничтожение босса, когда при достижении определённого уровня HP босс начинает менять атаки. 3.4. Платформер должен быть выполнен в изометрии. Сделать возможность прыгать между "верхними" и "нижними" платформами. 3.5. Реализовать миникарту, отражающую процесс прохождения уровня. 3.6. Реализовать в игре направление и силу ветра, которая может сдувать персонажа во время прыжка. Во время прохождения уровня ветер должен меняться.
mamontov-cpp commented 7 years ago
  1. Реализовать скроллшутер, состояюший из одного уровня. Враги, бонусы, система развития - произвольные, но не менее трех каждого вида (или трех статов персонажа в случае системы развития).
gvterechov commented 7 years ago
  1. Реализовать игру “змейка”. На поле в случайном месте генерируются объекты. Объекты могут быть съедобные и несъедобные (препятствия). 5.1 съедобные объекты обладают различными побочными эффектами: увеличение длины змеи, уменьшение длины змеи, замедление змеи, ускорение змеи 5.2 на карте присутствуют области, в которых змея может ускоряться или замедляться 5.3 побочные эффекты могут носить временный характер 5.4 еще побочные эффекты: изменение цвета змеи 5.5 добавить ботов, которые могут охотиться на змею, у каждого бота есть своя сила атаки, хп змеи соответствует ее размерам. После атаки у змеи уменьшается ее длина.

  2. Реализовать игру в жанре tower defence. Должно быть множество различных уровней. Враги ближнего и дальнего боя. У разных типов врагов разная скорость передвижения. Разные оборонительные сооружения 6.1 разный радиус действия оборонительных сооружений 6.2 разный радиус атаки врагов 6.3 игрок может на поле расставлять “ловушки”, которые могут отнимать хп врагов и/или замедлять их 6.4 на поле есть лашафт: препятствия 6.5 разные враги могут преодолевать разные препятствия 6.6 разные “ловушки” можно располагать только на определенных типов ланшафта (например, огненную ловушку нельзя расположить на воде, однако некоторые враги могут преодолевать воду) 6.7 разные замки с различными эффектами (каждый замок дает свои ловушки герою, может сам отбиваться от врагов)

gvterechov commented 7 years ago
  1. Реализовать игру с перетаскиванием ящиков (пример: https://lh4.ggpht.com/WK6gHmxnP1Zb8DisBSvq4GhVP7lLvmo9Y5_6E-_oLxVoqlczcQgPBx6i7xqvf9UAfvE=h900 ). Сверху падают ящики, нужно их перетаскивать. Если собрать полную строчку с ящиками, строчка уничтожается. Игровая область имеет ограничения как по ширине, так и по высоте. По-умолчанию игрок может прыгать на высотку одного ряда (запрыгивать на одну коробку). 7.1 Ящики могут обладать бонусами 7.2 Ящики с бонусами можно разбивать.
mamontov-cpp commented 6 years ago

По тестам: Добавить тесты на систему работы с ботами и настроить на неё CI.

Задание на проектирование с целью улучшения и рефакторинг:

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

Задание 2. Добавить NPC, которые могут двигаться по карте и убивать монстров.

Задание 3. Добавить платформы, которые могут попеременно появляться и исчезать в одном и том же месте.

Задание 4. Сделать врагов, которые могут телепортироваться в случайные стороны.

Задание 5. Сделать фрукты, которые могут попеременно появляться и исчезать в одном и том же месте.

Задание 6. Сделать врагов, коорые могут телепортироваться в случайные стороны

Задание 7. Сделать, чтобы ящики можно было разбивать.