Новости проекта:
- релиз !
Название
HellyCopter 1.2
Жанр
2d Action, Logic
Цели проекта
сделать не стандартную игру
Используемый инструментарий, библиотеки
hge, box2d, tinyxml, VS C++
Сайт проекта
http://yarilostudio.ru/
Краткое описание
Задача игрока:
-Убить всех красных колобков;
-Оттащить всех синих колобков в телепорт (телепортов может быть несколько);
-Избегать столкновений с препятствиями;
-После выполнения задания приземлиться на обозначенной платформе (их может быть несколько)
Screenshots:
временно не доступны
Сюжет
Действие игры происходит на планете Zeedabaro далёкой галактики Jazobo в самый разгар кровопролитных войн между племенами красных и синих колобков. Вы принадлежите племени синих колобков, но Вы не такой как все – Вы избранный колобок! На Ваши отсутствующие плечи возложена очень важная миссия - спасти синих колобков от вымирания. Об этом говорят древние предания.
Следует отметить, что красные колобки обладают – неуравновешенной психикой и злым нравом. Они не раздумывая убивают синих колобков и не испытывают при этом никаких угрызений совести. Синие же колобки напротив отличаются умом и сообразительностью и являются образцом миролюбия и пацифизма. Синие колобки практически не способны постоять за себя в этой жестокой войне. Обычным делом являются потери трёх-четырех синих колобков на одного красного. Поэтому обычно синие колобки берут смекалкой и хитростью.
Вернёмся к Вашему предназначению. С Вашим рождением пришло время к победоносному завершению многовековых конфликтов. Вы единственный колобок, который, согласно преданиям, сможет управлять адской машиной смерти, посланной Богами в начале Времён дабы защитить синее племя. Эта машина громогласно зовётся HellyCopter, и давно пылится в укромной пещере синих. Пришло время действовать. И действительно, запрыгнув в кокпит этого чуда техники божественного происхождения, Вы обнаруживаете, что он поддаётся Вашим мысленным импульсам и вполне сносно управляется! С этого момента начинается игра.
Вам предстоит безжалостно уничтожать красных врагов и спасать синих товарищей. Но сначала необходимо постичь азы управления HellyCopter’ом. В этом Вам поможет бортовой компьютер.
Эээм, если интересно мнение, то засилье английского угнетает. Почему русский человек не может сделать все названия на русском? И это всякое for fun... ппц, короче.
Royal Penguin
Да, ладно - это уже мелочные придирки :).
> И это всякое for fun... ппц, короче.
Ничего не "ппц" - если человеку просто в кайф делать некоммерческую игру, то все нормально. Это, на мой взгляд, вызывает даже больше уважения, чем чисто коммерческая разработка.
MaximYarilo
Выглядит прикольно.
Сюжет в жанре "epic mecha" выносит мозг :).
Shulkin
Просто неоправданное использование английской лексики на российском форуме мне кажется непонятным.
Я делаю игру на английском языке, т.к. этот язык де факто является международным. И это только моё дело. А то, что на форуме использую английские выражения уж извините, нравится мне так. Могу только посоветовать принимать успокоительные и антидепрессанты. =)
C помощью редактора уровней можно задавать следующие основные параметры:
1. Polygons configuration;DONE
2. Sky color; DONE
3. gibs position; DONE
4. teleports position; DONE
5. heliports position; DONE
6. Tutorial zones; DONE
7. World edges; DONE
8. kill/save plan. DONE
Пояснение:
1. Конфигурация полигонов. Задаётся расположение полигона в мире и все его вершины. Полигон должен быть выпуклый, вершины следуют друг за другом по часовой стрелке. Также полигону назначается цвет. При рендере полигона в игре этот цвет будет считаться основым и будет незначительно изменяться к вершинам.
Полигону назначается тип ground или background. Первый тип это земля участвующая в обработке столкновений, второй тип декорация заднего плана. С помощью второго типа можно делать, например, секреты и потайные проходы и комнаты.
2. Цвет неба. Задаётся массивом значений цветов состовляющих небо прямоугольников. Цвета плавно переходят друг в друга.
3. Расположение красных и синих колобков. Изначальная позиция колобков в процессе симуляции меняется, т.к. колобки могут перемещаться по полю.
4. расположение телепортов для приёма синих колобков.
5. Вертолётные площадки (начальная и конечные).
6. Tutorial zones; Зона залетая в которую, на экран выводится заданное сообщение. + настроечные параметры - сколько раз показывать сообщение и сколько времени сообщение держится на экране.
7. границы мира
8. сколько нужно убить и сколько спасти колобков для того чтобы пройти уровень.
На данный момент готовность редактора уровней: 100%
MaximYarilo
Ладно, уважительно или нет включать много английских слов в сообщения форума - это вопрос спорный. Соглашусь - не моё дело, как пишешь.
Но вот тогда полюбопытствую: хоть проект и любительский, но в него ведь будут играть. И интересно, какая доля будущих игроков русскоязычная, а какая иностранная?
За собой замечал раньше такую же особенность - писать в основном на английском. Сейчас понимаю, что в первую очередь важен русский, хотя бы на стадии разработки =)
Управление и орудия
Управление вертолётом:
Стрелка влево или a – лететь влево;
Стрелка вправо или d – лететь вправо;
Стрелка вверх или w – лететь вверх;
Стрелка вниз или s – лететь вниз;
G – выдвинуть/убрать шасси;
Правая кнопка мышки – форсаж.
Старайтесь избегать столкновений с окружающими объектами на большой скорости, т.к. это приводит к повреждению вертолёта. Запас энергии отображается в левом верхнем углу экрана. Когда энергия упадёт до нуля, вертолёт взрывается. Если пропеллер вертолёта коснётся препятствия, он моментально ломается, и вертолёт падает.
Управление орудиями:
1 – выдвинуть гарпун;
2 – выдвинуть пневмопушку;
Мышь – управление прицелом;
Левая кнопка мыши – выстрел текущим выбранным орудием.
Когда гарпун удерживает какой – либо груз управлять вертолётом становится сложнее (используйте форсаж), если же гарпун вонзился в землю вертолёт вообще не сможет перемещаться дальше чем на длину троса гарпуна. С помощью гарпуна также можно перетаскивать колобков.
Пневмопушка расталкивает объекты в зоне попадания. Будьте осторожны, не убейте пневмопушкой синих колобков. С красными напротив можно расправляться.
Прочее:
H – вывести экран помощи;
F3 – начать уровень сначала;
F4 - вывести отладочную информацию (отсутствует в релизе);
F5 - запустить следующий уровень (отсутствует в релизе);
Alt+Enter - вкл./выкл. полноэкранный режим;
Esc, Alt+F4 - выход из игры.
MaximYarilo
а нахрен ты вобще на русском управление расписываешь, напишь на международном... тут тебе чё, аборигены собрались у которых своего языка нет? Если тебя волнуют вопросы международности твоего творения то выставляйся на англоязычных сайтах.
Royal Penguin
Переведи свой ник, ты же не на буржуйском сайте.
В перспективе выкладывать игру на англоязычных сайтах + стараюсь поднимать уровень своего английского, т.к. это необходимо по работе.
kurguru
Я профессиональный разработчик игр (т.е. мне платят деньги за то, что я пишу игры) и в моей практике я локализовал более 10 игр на разные языки. И я знаю что изначально игру лучше писать на английском, я бы объяснил почему, но пропало желание общаться с агрессивными личностями, которые нихера не понимая пишут гневные сообщения( к тебе это не относится).
DedoK
ты сначала на русском научись писать без ошибок, потом указывай другим в грубой форме (хотя не советую). А где мне выставлять игру не твоего ума дела, и совета по этому вопросу я у тебя не просил.
Я создавал этот топик ( о нет, английское слово) для ответов на вопросы, так что прошу выражать свои мысли в форме вопросов, а не наездов.
Это сайт разработчиков игр, покажите мне хоть одного разработчика -программиста хорошего уровня, которые не знает хотя бы технический английский. Это смешно, господа.
Royal Penguin
DedoK
kurguru
Че накинулись то?
С языком вопрос решен, следующий может и бан получить.
Расскажу о том, как устроен уровень, и как он подгружается в игру.
Уровень создаётся и редактируется в редакторе уровней, см. пост №6. Хранится он в xml. Для загрузки и сохранения уровня из xml служит класс LevelSrc. Он позволяет создать в памяти все сущности (entity) и прочие конфигурационные параметры уровня. На основе LevelSrc создаются игровые объекты - это делает класс Level.
В редакторе используется LevelSrc, а в игре LevelSrc и Level.
Level уже хранит объекты в динамике, т.е. их текущее состояние ( в отличии от LevelSrc, который хранит инициализирующие значения). Любой объект уровня хранит ссылку на соответствующий ему src - объект. По src - данным всегда можно восстановить начальное состояние объекта или получить его конфигурационные параметры.
Level создаёт мир box2d, устанавливает различные лисенеры для него и осуществляет симуляцию физики.
Вот примерный код загрузки уровня в игре:
void Level::LoadLevel(const std::string& str) { // ===== грузим из файла уровень levSrc->setFileName(str.c_str()); levSrc->loadXML(); CreateWorld(); // создаём мир box2d, при этом внутри используются параметры уровня через levSrc // ===== позиция порта и вертолёта float xpp = levSrc->getPlayerStartX()*worldScale; float ypp = levSrc->getPlayerStartY()*worldScale; HELL::viewPortPosition.Set(xpp,ypp); // установка viewport'а на координаты вертолёта HellyCopterModel::Instance()->SetPosition(xpp,ypp); // установка вертолёта в определённые координаты // cоздаём прочие объекты // ===== create tutorial zones { // create src objects .... // create game object } // ===== создаём землю и блоки { std::vector<LevelBlock*> blocks = levSrc->getBlockList(); //src objects for(int i = 0; i<blocks.size(); i++) { if (blocks[i]->bBackground) {// земля CreateGround( blocks[i] ); // create game objects }else {// строительный блок CreateBlock( blocks[i] ); // create game objects } } } // и т.д. .... }
Если что не понятно, спрашивайте.
Тема в архиве.