название: хирург ниндзя качок полтора жанр:3д слешер\стратегия от первого лица с продвинутой и сложной боёвкой и системой развития, кучей мяса, динамической расчленёнкой и с лютым психоделом. предполагаемая дата релиза: 1 января 2021 разработчик: Puksus (тобишь я один, на мне код, графика, звуки, музыка, сюжет, геймдизайн и т.д. и т.п.) инструменты разработки: Visual Studio 2013(c++), DirectX11, OpenAL, lua, luaBridge платформа: Windows и только виндоус. системные требования: пойдёт на относительно слабом железе.
Игра будет представлять собой лютый слешер со сражениями. Упор будет воспроизведён на динамичный геймплей, сложную боевую систему и сложных врагов (опасность будет заключаться в их умениях и способности блокировать\проводить хитрые приёмы, а не в горе здоровья или урона. Будут убиваться за пару ударов, но при этом убиваться будут тяжело. Сеттинг будет мрачным и психоделическим. Наш герой - Хирург Ниндзя Качок, является образцом добра, тупости и наивности, он лечит (или думает, что лечит) пациентов, кидая в них скальпели. Суть игры - спасти мир от злых козней Слизняка Вовы - брата близнеца Хирурга Ниндзи Качка, однако, сий слизняк очень хитёр и вечно вынашивает планы по захвату мира. Графон в игре будет стилизирован под чтото типа первого квейка (но всётаки чуть более полигонально). Врагов будет много и можно будет в самом прямом смысле завалить уровень кишками под самый потолок <Да, да да, мы сможем завалить уровень трупами так, что сможем добраться до недосягаемых изначально областей или наоборот наглухо забить трупами выход> А также в игре можно будет отрубать всем вокруг конечности. Так-то.
Касательно боевой системы, игрок сможет использовать оружие ближнего боя, метательного и дальнего боя (скальпелемёты); также будет магия. Персонаж сможет бить оружием под любым углом, и блокировать также под любым углом. Враги тоже смогут так делать. Можно будет совершать отскоки, подпрыгивания и приседания, бить ногами. Оружие и броня будут со временем ломаться. Броня состоит из множества частей. Отдельно шлем, нагрудник, каждый наплечник отдельно и т.д. Также можно будет одеть что-нибудь под низ лат. Магия будет понижать психику игрока (аналог маны, но не совсем). Чем меньше у игрока осталось психики - тем более хардкорной становится игра, поэтому магией надо пользоваться очень осторожно. Автоматически восполняться психика будет медленно, кроме того, можно будет жрать успокоительное и вкачивать специальные перки для восстановления психики. При низкой психике графический интерфейс будет плавать по экрану (не факт), экран будет переливаться цветами радуги, а персонаж будет вести себя всё менее адекватно, а враги будут становиться всё более лютыми. Также психику смогут понижать некоторые враги и события. Получение любого вреда здоровью ТАКЖЕ понижает отчасти психику.
Прокачать игрок сможет 3 основных навыка: 1) пациент - медработник - врач - хирург 2) плоскостопный - кривоногий балерун - обречённый каскадёр - ниндзя 3)дрыщ - не дрыщ - недостаточно качок - качок Навык хирурга определяет нашу психику, способности к магии, а также разные технические вещи вроде взлома замков, цен в магазине и т.д. Некий аналог "интеллекта" в рпг играх. Навык ниндзи определяет нашу способность бить лёгким оружием (чем выше навык качка - тем более тяжёлое оружие считается лёгким), скорость боя, точность стрельбы и метания, приёмы ближнего боя, приёмы скрытности, трюки, прыжки, увороты и т.д. Аналог "ловкости" в рпг играх. Навык качка определяет количество здоровья и урон тяжёлым оружием. Чем выше навык качка - тем более тяжёлую броню сможет надевать персонаж без потери подвижности. Каочк меньше шатается при получении урона, однако, он весит больше и, например, под качком вполне может обрушиться какой-нибудь мост)
С улучшением определённого навыка, будь то хирург, ниндзя или качок, нам также откроется целая гора опциональных перков, которые мы сможем покупать, а сможем и не покупать. Эти перки вовсе необязательно будут нести полезные изменения. Иногда они будут давать не только определённые бонусы, так и вместе с тем, определённые штрафы. Таким образом, мы сможем подогнать перки под конкретно свой стиль игры.
Понятия опыта в игре не будет - то есть при убийстве врага никакая полосочка опыта не будет ползти вверх. В игре всё развитие происходит за игровую валюту - за скальпели. Эти же скальпели можно метать, используя как метательное оружие. За скальпели мы сможем покупать предметы в магазинах, изучать заклинания, прокачиваться. То есть, игрок сам определяет, развить ли ему персонажа или купить крутой меч. Система прокачки будет выглядеть следующим образом - игрок должен будет найти специальное место(тренера? качалку?), чтобы поднять навык. Поднятие любого навыка с каждым разом становится всё дороже и дороже. То есть, допустим, первое улучшение навыка стоит 1000 скальпелей, то второе улучшение будет стоить 2000 скальпелей (подобная система есть в игре Аллоды-Проклятые Земли), причём неважно, стоит ли это улучшение в той же ветке, что и первое или нет. Перки мы также покупаем за скальпели.
Готовность (версия 0.0.13) код 60% контент 0%
что уже сделано - рендер движок - каркас системы игровых объектов и их взаимодействия - вывод звуков и музыки - GUI - поддержка луа скриптинга
что делается прямо сейчас - доработка использования скриптинга в движке
что планируется сделать в ближайшее время - загрузка и отображение скелетных мешей, воспроизведение, смешивание скелетных анимаций. https://vk.com/beezoya
Сообщение отредактировал puksus - Понедельник, 10 Декабря 2018, 00:28
Что-то типа "Joe & Mac: Caveman Ninja" или "Chuck Rock" будет?
Не, геймплей будет более динамичным. Я вообще ни на какие другие игры не ориентировался, поэтому сложно сказать, на что будет похожа. Скорее будет ближе к Nidhogg, Okinawa Rush в плане геймплея, но всё равно это не то.
Добавлено (20 октября 2017, 15:08) ---------------------------------------------
Чот сообщение жирное стало из-за добавлений, удалю его содержимое т.к. вся важная инфа которая в нём была, есть и в шапке. Всё равно горы текста никто читать не будет.
По делу: Проект пока что на паузе т.к. появилось огромное количество срочных дел. Однако, я умудрился втюхать преподу эту игру как дипломный проект, поэтому работа в любом случае будет продолжена. Кроме того, я тут хочу почитать про паттерны и про многопоточку и перепотрошить движок на использование вышеуказанных фич как положено. Но в ближайшее время проект на паузе. https://vk.com/beezoya
Сообщение отредактировал puksus - Пятница, 20 Октября 2017, 15:08
Samchik, какая частота обновления твоего монитора - столько и будет. В настройках сделаю возможность отключить вертикальную синхронизацию. Сама по себе игра будет нетяжёлой, достаточно будет слабого компа. https://vk.com/beezoya
Сообщение отредактировал puksus - Пятница, 20 Октября 2017, 21:09
Глюк, а так, что раньше я эту тему не трогал. Соответственно, в моих играх сейчас только расчёт освещения был распараллеленым, а всё остальное выполняется последовательно. https://vk.com/beezoya
puksus, Просто, когда я писал на яве. Там без многопоточности далеко не уедешь даже при отрисовке графики и одновременном просчете чего-то, нужны потоки) Мой проект Drunk West! (заморожен) https://gcup.ru/forum/9-99264-1
Глюк, мне кажется, что сначала выполнить игровую логику, а затем последовательно отрисовать результат на экран - очевидное и простейшее решение в лоб) Всё равно рисовка может обращаться к данным объекта (например, получить позицию юнита) в тот же момент, когда эти данные меняются. Эти коллизии надо решать. Понятное дело, что тут не всё так просто, поэтому раньше я на всё это забивал и просто делал однопоточный код и распараллеливал только отдельные задачи, если получалось. Но, думаю, пришло время немного "поразвиваться".
И пишу я на с++, он намного быстрее жабы, поэтому тут можно позволить себе больше вещей) https://vk.com/beezoya
Сообщение отредактировал puksus - Пятница, 20 Октября 2017, 23:35
puksus, Не осилил я плюсы, не мое это)) Ну, удачи в разработке. Может из этого всего отпочкуется движок для 2D игр Мой проект Drunk West! (заморожен) https://gcup.ru/forum/9-99264-1
Добавлено (22 октября 2017, 12:01) --------------------------------------------- На чём я пока что остановился: https://my.mail.ru/video/embed/1787807981232979969 персонаж управляется с клавиатуры, физически взаимодействует с уровнем, можно надевать разную эккипировку. Начата работа над боевой системой. https://vk.com/beezoya
Сообщение отредактировал puksus - Воскресенье, 22 Октября 2017, 12:03
Ну в общем, передел пока что идёт успешно. Многопоточка благополучно работает, зачатки системы компонентов для создания игровых объектов сделаны и вродь работают. Также я расширю систему анимаций. До этого у меня можно было только вращать кости относительно базовой. Сейчас можно будет ещё и масштабировать каждую сторону спрайта отдельно (то есть, верх, низ, лево, право спрайта масштабируются отдельно). Будут внедрены скрипты на lua с использованием luaBridge - так что большАя часть логики врагов и предметов буде вынесена в скрипты (отсюда вытекает возможность создавать модификации).
Учитывая, что некоторую часть кода я просто вставляю с правками(синхронизация или просто совершенствование) из старой версии проекта, то дело идёт быстрее, чем если бы писал с нуля. Через месяцок-два догоню то, что было, только всё будет качественнее и лучше. Встроенный редактор анимаций тоже перепишу, во-первых, под новые возможности, во-вторых, он и сейчас кривее некуда.
Добавлено (10 Апреля 2018, 00:20) --------------------------------------------- Так кароче. Воды много утекло, я успел найти работу, полностью перейти с 2д на 3д. Но игру не бросал. Удалил всё что было связано с 2Д и вполне успешно пилю свой 3д движочек для игры. Тока свободного времени мало. Игра как и предполагалось, буде юзать многопоточку и скриптовый язык LUA
Значт так, сделал каркас для системы объектов и компонентов и систему обмена сообщениями между сущностями. Реализовал и отладил графический конвейер на DirectX11 на основе инстансинга (ну короче у меня за 1 раз рисуется много объектов. Позволяет в несколько раз повысить скорострельность игры). Реализовал полностью и отладил систему освещения. Начал работу над текстурированием.
Ожидаемое время разработки 2 года.
По поводу геймплея у меня есть мегаопупенные безбашенные идеи, которые я на 100% уверен, что знаю как реализовать.
Графон в игре будет стилизирован под чтото типа первого квейка (но всётаки чуть более полигонально). Врагов будет много и можно будет в самом прямом смысле завалить уровень кишками под самый потолок (я даж знаю как буду реализовывать). <Да, да да, мы сможем завалить уровень трупами так, что сможем добраться до недосягаемых изначально областей или наоборот наглухо забить трупами выход> А также в игре можно будет отрубать всем вокруг конечности. Так-то.
Возможно, при разработке придётся нанять себе за плату моделёра\художника. Я допускаю такой поворот событий.
Ну и небольшой скрин. Ничо интересного, просто инстансированные освещённые кубики с закостыленной (пока что) текстуркой
sfabrikan, ты не давал чёткого однозначного ответа, будешь ли помогать или нет. И если будешь - то мне нужна будет реальная помощь, а не по мелочи 2 раза в месяц. Если готов - пожалуйста. С тобой я готов по честному поделиться процентами от дохода, если оный будет. В работу будет входить моделирование, текстурирование, и отчасти анимирование. Ну а если поможешь со звуками ещё - будет отлично. Ну и возможно, под моим руководством, луа скриптинг объектов тоже сможешь делать. Если сделаешь весь графон, полностью поможешь со звуками и поможешь со скриптингом и если меня будет всё устраивать - дам 40%.
На мне будет висеть создание музыки и написание движка, и все окончательные решения принимаю я.
Добавлено (12 Апреля 2018, 00:51) --------------------------------------------- Актуализировал шапку. В принципе, относительно общих идей геймплея изменений почти нет. Так что особо ничего нового там(в шапке) не появилось.
Добавлено (17 Апреля 2018, 21:23) --------------------------------------------- Сделал свой генератор карт нормалей, настройки для него загружаются через простенький скрипт, для которого забацал парсер. С настройками можно играться и получать разный результат. Считаются нормали, в принципе, в лоб, так что до серьёзных программ не дотянет. Но зато свой!
(чото имгур убил качество картинки в ноль)
+ прикрутил кавити - это короче штука, которая прибивает спекуляр. Ищется в точках, где нормали смотрят друг на друга, образуя "ямы". Ну типа в этих ямах будет прибиваться освещёнка. На скрине это белые точки (ибо для кавити юзается альфа канал - чтоб зря не пропадал)
Добавлено (21 Апреля 2018, 01:12) --------------------------------------------- поддержка карт нормалей прикручена
Добавлено (21 Апреля 2018, 18:28) --------------------------------------------- прикручена трипланарка (на кубиках незаметна) и селфиллюм
Добавлено (22 Апреля 2018, 23:35) --------------------------------------------- С текстурированием полностью закончено. Также был починен инстансер (оказалось что он крашился при > 1 типе геометрии) + мелкие изменения в движке.
Следующая цель: - система частиц - вывод текста - поддержка нескольких языков
Добавлено (09 Мая 2018, 22:57) --------------------------------------------- короче система частиц. Делятся на 2 типа: экранные без теста глубины и мировые с тестом глубины Каждый тип делится на 4 подтипа: непрозрачные с простейшим альфа тестом, прозрачные сортируемые по дальности, аддитивные прибавляющие цвет и антиаддитивные, отнимающие цвет (да, в игре будут затемняющие источники света и частицы; мне кажется, с помощью этого можно будет достичь забавные эффекты)
следующий этап - написание системы гуйни и реализация текстовой гуйни. Ну хотя бы чтоб фпс вывести на экран)
Добавлено (28 Сентября 2018, 11:35) --------------------------------------------- Прогресс с предыдущего поста: 1) Куча правок улучшений и доделок рендер движка 2) Поддержка нескольких языков 3) Улучшение системы частиц. Частицы теперь анимируются конечным автоматом с вероятностными переходами 4) Система вывода звука на основе OpenAL 5) Вывод музыки. Музыка состоит из слоёв. Каждый слой играет одну и ту же мелодию, но по разному. Первый слой - спокойная музыка, второй - неспокойная, третий слой - боевая музыка и т.д. Слои переключаются между собой плавно и грузится в отдельном потоке. 6) Сиситема GUI. Гуйня в проекте немного нестандартная. Пока что реализованы: 6.1.1) Текст. Ну текст как текст, можно задавать размер шрифта, цвет, отдельные слова автоматом переносятся по строкам. 6.1.2) Иконка. Может находиться в нескольких состояниях (имеет несколько кадров). При приближении курсора мыши начинает рычать, краснеет и дрожит 6.1.3) Кнопка. убегает от курсора мыши и орёт при этом как резаный негр 6.1.4) Чекбокс. Плюётся в направлении курсора мыши мерзкой жижей, издавая неприятные звуки 6.1.5) Инпутбокс. Когда пользователь вводи буквы начинает злиться - краснеет, начинает испускать пар и начинает вышибать буквы прямо из середины введённого текста. Осталось реализовать: 6.2.1) Ползунки, вертикальный, горизонтальный, горизонтальный с набором фиксированных строковых значений; полоска здоровья. Ползунки будут регулярно заклинивать и испускать при движении искры 6.2.2) Раскрывающийся список. Элементы в раскрывающемся списке будут самовольно меняться местами 6.2.3) Фрейм. Служи для группировки других гуёв между собой. Можно вкладывать внуртрь других фреймов и перетаскивать мышой по экрану
В ближайшее время буду: -доделывать гуйню -реализовывать интеграцию lua скриптов в игру.
Hobo_Gus, пасибка. Ну, ждать ещё навскидку ~ 1.5 года надо. Но это не точно.
Добавлено (19 Ноября 2018, 08:24) --------------------------------------------- Короче, я тут немного ленился, но время от времени чото поделывал. В общем: Закончил писать код по GUI (ну или почти закончил, мелкие правки и доделки буду реализовывать по ходу дела).
А ещё, начал внедрять в игру скриптовый язык Lua. Я уже даже загрузил конфиг игры на луа скрипте! Сейчас разрабатываю модульную систему. Игра будет загружаться помодульно, модули будут загружаться в определённом порядке, порядок будет прописан в отдельном луа файле. Проще говоря, модуль = мод. Пользователи легко смогут создавать свои моды. В системе, которую я придумал, возможности по моддингу будут не хуже, чем в игре CortexCommand (и даже лучше). В луа скрипты будет вынесен почти весь высокоуровневый геймплейный код, а в движке будет такой контент, как, например, обобщнный алгоритм поиска пути, рейтрейсинг, обнаружение и расчёт столкновений, обобщённый функционал для обработки ИИ и т.д. Короче, в движке будут реализованы нетривиальные и сложные задачи, которые нужно решать быстро (каким бы шустрым ни был интерпретатор луа, всё равно он будет работать в 10-100 раз медленнее кода на с++). Взаимодействие с объектами будет осуществляться с помощью колбеков. Например, ударили гоблина, вызывается колбэк из луа типа obj_goblin.getHit(selfId, damageSourceId, attackerId, damage) Все скрипты будут работать в глобальной видимости. Чтобы убрать коллизию имён, все колбэки, относящиеся к определённому объекту будут иметь свой "класс" (obj_goblin, gui_testButton, ...). Хранить все скрипты в глобальной видимости нужно для того, чтобы не плодить все утилитные глобальные луа функции для каждого луа стейта, а то жирно будет для каждого объекта инициализировать свой отдельный луа стейт со всеми приблудами!
И ещё - этот проект будет фигурировать в моей магистерской дисертации, а тема диссертации - ИИ в играх. То есть придётся сделать врагам хороший качественный ИИ. А раз так, то будут внедрены элементы стратегии. Игрок не только будет рубить всё подряд, но и сможет управлять своими отрядами, а враг будет также формировать свои отряды и координировать их действия для того чтоб задавить игрока по-умному. Но игра вовсе не будет заставлять вас использовать свои мозги. Не хотите - будет куча режимов игры для чистого мочилова.
Добавлено (01 Декабря 2018, 15:27) --------------------------------------------- Реализовал модульную загрузку игры через луа, теперь буду пилить взаимодействие с луа в рантайме А ещё вот эта статься вдохновила меня на создание травы в игре. https://habr.com/company/pixonic/blog/431340/
И у меня появилась пара мыслей насчёт системы здоровья. В общем, здоровье будет ключевым фактором. Чем меньше здоровья - тем медленнее мы двигаемся, тем ниже наш урон и тем хуже мы блокируем. Максимальный уровень запаса сил не сможет быть больше, чем процентное количество оставшегося здоровья (как в игре kingdom come). Также магия будет тратить запас сил. Чтобы восстановить здоровье - надо будет грызть бинты, а если мы хотим поддержать запас сил - будут специальные конфеты с укропом, дающие заряд бодрости! Ну и добавим к этому, что, повредив определённые конечности или лишившись их, мы получим дополнительные штрафы к эффективности действий. Например, если нам отрубили голову (а как известно, мозг ХНК находится несколько в ином месте), мы потеряем способность видеть. Чтобы восстановить потерянную конечность - можно будет воспользоваться подорожником.
Добавлено (10 Декабря 2018, 00:09) --------------------------------------------- Текущая версия игры: 0.0.13, движок в целом реализован на 50-60% (без учёта шейдеров и луа скриптов) С прошлого момента сделано:
Главное меню - отдельный игровой режим, меню выбора уровня - отдельный игровой режим, каждый игровой уровень - отдельный игровой режим. Каждый игровой режим имеет свой lua код, в частности функции, вызывающиеся при входе и при выходе из игрового режима, а также функции, вызывающиеся каждый кадр. Всё взаимодействие с движком будет через игровые режимы.
Каждый игровой объект И текущий игровой режим смогут слать и реагировать на любые сообщения в любой момент выполнения программы, передав в качестве аргумента таблицу произвольной топологии. Подпиской на реагирование на некоторое сообщение является наличие соответствующей функции с с подходящим именем в таблице объекта. Пример: Убили игрока? Игрок при уничтожении шлёт сообщение, которое ловится всеми врагами - и они начинают танцевать от счастья. Или например оно ловится игровым режимом - и тот меняет игровой режим на чёрный экран с надписью красными буквами "Он ушёл, но обещал вернуться"
Ну а также луа скрипты были присобачены к гуйне. Нажали кнопку - выполнился скрипт. Сдвинули ползунок - выполнился скрипт. Через луа можно создавать и уничтожать объекты и гуйню.
в версии 0.0.14 будет собственно реализовано главное меню, генерирование тестовой сцены, окошко настроек и т.п. ЧЕРЕЗ луа скрипты, попутно будет доделан необходимый для этого байндинг с движком, которого пока не хватает. То есть, движок избавится от всего тестового хардкода.
в версии 0.0.15 будет куча мелких правок. Ничего нового скорее всего добавлено не будет, цель - просто почистить двигло, привести всё в порядок и решить непонятки. Возможно, разве что, запихну bsp деревья. А может, и не запихну. Щас у меня сцена бьётся на области фиксированного размера. Короче, обдумаю вопрос.
затем пойдёт версия 0.1.0. С этой версии начнётся работа над скелетными мешами, скелетными анимациями, смешиванием и генерированием анимаций...
ТСа зобанили за хорошое поведение. По этому я тут буду за место него отписываться, но считайте что это он.
Добавлено (15 Января 2019, 13:51) --------------------------------------------- Мутит что-то с сетями. Опять заново переписывает движок. Все как обычно.