Вторник, 16 Апреля 2024, 19:27

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Форум игроделов » Ваши проекты » Проекты в разработке » Несыть (Симулятор плотоядного червя [PC, C++, Lua, DirectX])
Несыть
KozinakaДата: Понедельник, 20 Апреля 2015, 22:46 | Сообщение # 1
частый гость
Сейчас нет на сайте
Всем привет! Хотел бы немного рассказать про свой проект.



Несыть — так он называется. Это симулятор плотоядного червя с экспериментальным управлением и мрачной атмосферой безудержного пожирания. Имеется возможность драки с другими червями и несколько видов живого корма, каждый со своим уникальным поведением.



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



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



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



Итого, игра является переработкой и расширением классической «Змейки»:

— Тактическая боевая система, позволяющая червям есть друг друга;
— Экспериментальное управление червём (чтобы ползти, червь должен извиваться);
— Элементы жанра "ешь или убегай": всё в игре растёт, поедает других или поедается;
— Странная музыка, ещё более странные персонажи и, конечно же, параллакс!

Впрочем, лучше один раз увидеть, чем ни разу не услышать:



Поиграть в последний билд можно скачав его отсюда: http://insatia.kozinaka.com

Поддержать проект можно добрым словом в его группе вконтакте или прямо здесь. А ещё можно в твиттере!

--------------



Недавно показывал игру на фестивале NextCastle Party 2015, накатал на хабр большой обзор об этом: http://habrahabr.ru/post/272007/


Сообщение отредактировал Kozinaka - Четверг, 03 Декабря 2015, 20:27
SaiteiДата: Понедельник, 20 Апреля 2015, 22:48 | Сообщение # 2
старожил
Сейчас нет на сайте
Kozinaka, выглядит симпатично! Сами занимаетесь разработкой? Давно? smile
KozinakaДата: Понедельник, 20 Апреля 2015, 22:54 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата Kozinaka ()
Сами занимаетесь разработкой? Давно?

Ага, давно. smile Увы, это долгосторой. Игра уже четвёртый год разрабатывается и ещё не знаю сколько их осталось впереди... sad

Начинал и продолжаю сам, но со временем оброс несколькими серьёзно помогающими друзьями. smile Вот тут список всех участников проекта: http://insatia.kozinaka.com/authors/ru

В то, что видно на скринах и видео можно поиграть: скачать альфа-версию 3.5а

Но это уже немного устаревшая тема, в данный момент мы перерисовываем червей и прочих существ, вот пример последнего рабочего видео с червями:



Сообщение отредактировал Kozinaka - Понедельник, 20 Апреля 2015, 23:09
PavelsawДата: Понедельник, 20 Апреля 2015, 22:55 | Сообщение # 4
был не раз
Сейчас нет на сайте
Хорошая реализация, мне понравилось. Сначала смутило, что червь другой стилистики, нежели окружение, но после просмотра гемплея и обновления вопрос пропал. Залипал на видео все 4,5 минут. up

Сообщение отредактировал Pavelsaw - Понедельник, 20 Апреля 2015, 22:58
TymonrДата: Понедельник, 20 Апреля 2015, 23:02 | Сообщение # 5
With OpenSource forever
Сейчас нет на сайте
Kozinaka, ух ты, какие люди! Что это ты сюда перекочевал так поздно?

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
KozinakaДата: Понедельник, 20 Апреля 2015, 23:08 | Сообщение # 6
частый гость
Сейчас нет на сайте
Цитата Pavelsaw ()
Сначала смутило, что червь другой стилистики, нежели окружение, но после просмотра гемплея и обновления вопрос пропал. Залипал на видео все 4,5 минут.

Клёво! Я рад, что тебе понравилось! На самом деле видео с новыми червями тоже уже устарело, я уже перекрутил шейдер освещения, но видева пока нет. Могу только показать модельки существ, которых сейчас перерисовываем.

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



Цитата Tymonr ()
ух ты, какие люди! Что это ты сюда перекочевал так поздно?

Привет! Я только сегодня накопал в какой-то из тем как вставить видео в свой пост. А без видео как-то не хотелось из-за парты вставать. smile
TymonrДата: Понедельник, 20 Апреля 2015, 23:16 | Сообщение # 7
With OpenSource forever
Сейчас нет на сайте
Kozinaka, может, тебе помочь чем? Надо же когда-нибудь с этим долгостроем кончать? Я вот кодить могу

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
EfimovMaxДата: Вторник, 21 Апреля 2015, 00:07 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Давно знаком с твоим проектом, и не понимал, чего это тебя на Гцапе нет biggrin
Удачи в разработке smile


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
KozinakaДата: Вторник, 21 Апреля 2015, 00:19 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата Tymonr ()
помочь чем? Надо же когда-нибудь с этим долгостроем кончать? Я вот кодить могу

Спасибо за предложение! smile Если бы для завершения проекта нужно было только кодить - я бы его уже и сам дожал. Увы, это совсем не так. Как показывает практика - чем меньше людей в команде, тем больше шансов на победу. При этом, конечно, требования к проекту со стороны автора должны выполняться. Пока я изо всех сил стараюсь ограничиться тремя разработчиками в основной команде. Но это всё равно не помогает - всё идёт смертельно медленно, я завишу от других людей, которые не настолько больны червями, чтобы, как я, выпрыгивать из штанов. Поэтому время летит, а проект ползёт. Я не готов пока брать на себя ответственность за новых людей.

Но помочь проекту конечно можно! smile Времена меняются, сделать игру, это полдела, главное - убедить хоть сколько-нибудь значимое количество людей в её существовании.

Слишком уж много вокруг талантливых разработчиков и их проектов. Если есть желание и свободные ресурсы, но вот по этим ссылочкам можно подписаться/полайкать/отметить игру и, это вообще бесценно, поделиться с друзьями:

Добавлено (21 апреля 2015, 00:19)
---------------------------------------------

Цитата EfimovMax ()
Давно знаком с твоим проектом, и не понимал, чего это тебя на Гцапе нет biggrin
Удачи в разработке smile

Спасибо! Я как-то стеснялся просто. Да и в конкурсах пока не могу принимать участие - как раз конкурсную работу про червей пытаюсь довести до ума. smile
Но всё же вылез, готов поболтать, буду выкладывать новенькое по мере появления.
TiamatДата: Суббота, 25 Апреля 2015, 01:47 | Сообщение # 10
частый гость
Сейчас нет на сайте
Отлично смотрится игра, искренне желаю удачи! С родного сайта кстати и верхней ссылочки скачать не получилось. Ну как не получилось, архив то скачался, но в нём сиротливо сидел один bass.dll smile Ссылочку нашёл уже на IndieDB
KozinakaДата: Суббота, 25 Апреля 2015, 12:20 | Сообщение # 11
частый гость
Сейчас нет на сайте
Цитата Tiamat ()
Отлично смотрится игра, искренне желаю удачи!

Спасибо! smile

Цитата Tiamat ()
С родного сайта кстати и верхней ссылочки скачать не получилось.

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

Добавлено (25 апреля 2015, 12:20)
---------------------------------------------
Ещё одна примерка моделей, на этот раз новое тело примеряют зелёные жуки:



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


Сообщение отредактировал Kozinaka - Суббота, 25 Апреля 2015, 12:21
alexsilentДата: Суббота, 25 Апреля 2015, 12:58 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
Вау! Знакомые лица! Козинака всё ещё пилишь игру, это здорово! happy
Со времён конкурса gamin заметны огромные улучшения.

Нравится стиль насекомых, теперь они выглядят больше в тему стилистики. Удачи с проектом, он становится всё больше и лучше!

PS Я тут недавно тоже решил взяться за переработку своей старой игры, которую делал для Gamin,
а то постоянно забрасываю проекты, нужно с тебя брать пример - постоянно возвращаться к проекту и допиливать его:


Сообщение отредактировал alexsilent - Суббота, 25 Апреля 2015, 13:07
SaiteiДата: Суббота, 25 Апреля 2015, 13:02 | Сообщение # 13
старожил
Сейчас нет на сайте
Kozinaka, а каким образом ты используешь скрипты в своей игре? С радостью взглянул бы на пример smile
stalker5889Дата: Суббота, 25 Апреля 2015, 14:00 | Сообщение # 14
Свободный игродел
Сейчас нет на сайте
Классная игра. Весело, интересно, стильно. Я бы купил в стиме например.

LasmelanДата: Суббота, 25 Апреля 2015, 15:56 | Сообщение # 15
Construct 2 & Classic
Сейчас нет на сайте
Отличная игра!

Мое портфолио:
KozinakaДата: Понедельник, 25 Мая 2015, 22:56 | Сообщение # 16
частый гость
Сейчас нет на сайте
Цитата alexsilent ()
Вау! Знакомые лица!

Привет! Я тоже рад тебя здесь видеть! smile

Цитата alexsilent ()
нужно с тебя брать пример - постоянно возвращаться к проекту и допиливать его

Важно выбрать тот проект, в который бросаться с головой. Конкурсы и джемы - правильный путь для выбора проекта. Но как и в случае с выбором будущей жены важно не провыбираться, а то так можно до старости джемить. smile Я не знаю, правильно ли выбрал я, и ты тоже выбрав не будешь этого знать. В этом главная подлость. Но надо выбирать, прототип сам в законченную игру не превратиться, а чем ближе к финалу тем больше требуется ресурсов, в прогрессии больше. Идея и прототип - 10 процентов готовности игры. Жизнь - боль.

Цитата stalker5889 ()
Классная игра. Весело, интересно, стильно. Я бы купил в стиме например.

Оу, даже так! smile В этом году выползем на Гринлайт. С тебя голос! Не переключай радиоприёмник! smile

Цитата Lasmelan ()
Отличная игра!

То ли ещё будет!

Цитата Saitei ()
Kozinaka, а каким образом ты используешь скрипты в своей игре? С радостью взглянул бы на пример smile

Спасибо за вопрос, он великолепен. Будет благословлён тот день, когда я окончательно расстался с логикой уровней и заданий прямо в игровом движке и встроил в проект Lua! Это просто охрененно круто и удобно!

В моей первой конкурсной демке было всего 9 уровней. Для каждого уровня у меня были захардкожены проверки выполнения задания, начальные условия, всякие рандомные создания существ по мере съедения и прочее. Это была даже для девяти уровней чёртова куча некрасивого кода не имевшего отношения, собственно, к движку игры. Когда игра стала расти, игровой движок усложняться, задания на уровнях я захотел изощрённее, а на самих уровнях появились всякие триггерные экранчики - я понял, что нужны скрипты. Долго выбирал, но остановился на самом распространённом среди игроделов - Lua.

Немного помыкался при сопряжении С++ и Lua, но это того стоило. Теперь игровой движок это модель с общими правилами игрового мира, а конкретные уровни программируются во внешнем файле не скриптах. Из скрипта можно вызывать некоторые функции игрового дивижка - например создание нового существа в конкретной точке, включение/выключение ламп, переключение управления игрока на существо с определённым именем. В самом скрипте есть набор стандартных функций, которые, в свою очередь, дёргает игровой движок - проверка победы, проверка поражение, обработка секунды времени, обработка игрового события и т.д.

Вот, типичный файл моего скрипта уровня на Lua:

Код

-- Константы
require "Levels/enums"

--------------------------------------
-- ДЕКЛАРАТИВНЫЕ ОПИСАТЕЛИ
--------------------------------------
Title = GetConstant("Level 2 Title")
Description = GetConstant("Level 2 Description")
BriefingDialog = "level-2-briefing"
StartingDialog = "level-2-step1"
Music = "tiny_wanderers"
Level = 2
IsTutorialMode = true
IsAdrenalineEnabled = false

BerryCount = 0
BugCount = 0
FleaCount = 0
Statistics = ""
ShowStatistics = false
Stage = "Berries"

IsWin = false
HowManyBerriesNeeded = 15
IsFlyEaten = false

--------------------------------------
-- ИНИЦИАЛИЗАЦИЯ
--------------------------------------
function Init()

   -- Сразу нужное количество ягод при старте
   for i = 1, HowManyBerriesNeeded
   do
    CreateRandomBerry()
   end

   -- Начальные состояния ламп и кормушек
   SetDisplayState("MainTrigger", NO_SOUND, INFO, "\n\n\t\t" .. GetConstant("Level 2 No berries"))
   SetLampState("TriggerLight", OFF)
   SetFeederState("BugFeeder", OFF, SET)
   SetFeederState("FleaFeeder", OFF, SET)

end

--------------------------------------
-- ОБРАБОТКА ИГРОВЫХ СОБЫТИЙ
--------------------------------------
function WatchEvent(action, actor, actorName, target, targetName)

   -- Поедание ягодки
   if  action == "eaten" and target == BERRY
   then

    BerryCount = BerryCount + 1

    CreateRandomBerry()

    RefreshProgress()

   end

   -- Поедание жука
   if  action == "eaten" and target == REDBUG
   then

    BugCount = BugCount + 1

    RefreshProgress()

   end

   -- Поедание блохи
   if  Stage == "Fleas" and action == "eaten" and target == FLEA
   then

    FleaCount = FleaCount + 1

    RefreshProgress()
   end

   -- Поздравления при поедании мухи
   if  IsFlyEaten == false and action == "eaten" and target == FLY
   then
    IsFlyEaten = true
    ExecuteDialog("level-1-fly", OPTIONAL)
   end

   -- Подсветка при срабатывании экрана
   if action == "triggered" and targetName == "MainTrigger"
   then
    SetLampState("TriggerLight", ON)

    if  Stage == "Berries"
    then
     SetDisplayState("MainTrigger", TRIGGER_SOUND, POSITIVE,
         "\n\n" .. GetConstant("Level 2 No berries on metal"))
    else
     SetDisplayState("MainTrigger", TRIGGER_SOUND, POSITIVE,
         "\n\t\t" .. GetConstant("Level 2 Welcome") .. " "
         .. GetPlayerName() .. GetConstant("Level 2 Welcome2"))

    end
   end

   if action == "released" and targetName == "MainTrigger"
   then
    SetLampState("TriggerLight", OFF)

    if  Stage == "Berries"
    then
     SetDisplayState("MainTrigger", RELEASE_SOUND, INFO, "\n\n\t\t" .. GetConstant("Level 2 No berries"))
    else
     SetDisplayState("MainTrigger", RELEASE_SOUND, INFO, Statistics)
    end
   end

end

--------------------------------------
-- ОТСЧЕТ СЕКУНДЫ   
--------------------------------------
IsDialog2Showed = false
IsDialog3Showed = false

function ProcessTick()

   Length = GetWormLength("Player1")

   if (IsDialog2Showed == false and Length > 15)
   then
    Stage = "Bugs"
    TargetName = GetConstant("Bugs")
    SetFeederState("BugFeeder", ON, TRANSITION)
    ShowStatistics = true
    Counter = 0
    Target = 5
    IsDialog2Showed = true
    ExecuteDialog("level-2-step2", OVERRIDE)

   elseif (IsDialog3Showed == false and Length > 30)
   then
    Stage = "Fleas"
    TargetName = GetConstant("Fleas")
    SetFeederState("FleaFeeder", ON, TRANSITION)
    Counter = 0
    Target = 3
    IsDialog3Showed = true
    ExecuteDialog("level-2-step3", OVERRIDE)

   elseif (IsWin == false and Length > 45)
   then

    ExecuteDialog("level-2-win", OVERRIDE)
    IsWin = true
    Win()
   end

end

--------------------------------------
-- ИЗМЕНЕНИЕ GUI
--------------------------------------
function ProgressInfo()

   if ShowStatistics == true
   then

    Statistics = "\t\t" .. GetConstant("Level 2 Statistics") .. "\v" ..
        "\t\t\t\t" .. GetConstant("Level 2 Berries") .. ": " .. BerryCount .. "\n" ..
        "\t\t\t\t" .. GetConstant("Level 2 Bugs") .. ": " .. BugCount .. "\n" ..
        "\t\t\t\t" .. GetConstant("Level 2 Fleas") .. ": " .. FleaCount

    SetDisplayText("MainTrigger", NO_SOUND, Statistics)

   end

   return ""
end


Это обучающий уровень игры (второй). Т.к. игра локализованная на несколько языков, то все текстовые константы выдёргиваются из движка через GetConstant("Текстовый ключ"). Сначала игрок ест ягодки, которые создаются за пределами экрана, по мере поедания, их количество фиксированное. Потом для игрока воспроизводятся диалоги с персонажами, меняется задание. На экранчике посередине уровня выводится текстовое приветствие и статистика поедаемых игроком на уровне существ.

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

Короче, всем и каждому, кто использует компилируемые языки советую иметь в виду мощу скриптования логики, которая не нужна в игровом движке, но нужна в игре. Уровни, диалоги и прочее.

Добавлено (25 мая 2015, 22:56)
---------------------------------------------
Пластиковые незатекстуренные тли и разглаженный чёрный червяк.



Сообщение отредактировал Kozinaka - Суббота, 25 Апреля 2015, 22:16
TymonrДата: Понедельник, 25 Мая 2015, 23:08 | Сообщение # 17
With OpenSource forever
Сейчас нет на сайте
Как всегда все красиво и добротно!)

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
KozinakaДата: Среда, 27 Мая 2015, 10:02 | Сообщение # 18
частый гость
Сейчас нет на сайте
Цитата Tymonr ()
Как всегда все красиво и добротно!)

Спасибо! Это промежуточное состояние существ - незатекстуренные, просто раскрашенные модельки. Только-только заканчиваем моделить, дальше будем по-мелочи уже править модели и рисовать текстуры. Потом будет не так всё ярко и блестяще, придавим. А пока, вперёд, мои храбрые воины!



А это зелёный червь пришел узнать, как дела у блошек:



TymonrДата: Среда, 27 Мая 2015, 12:39 | Сообщение # 19
With OpenSource forever
Сейчас нет на сайте
Текстуры текстурами, а цвета уже выдержаны хорошо)
Кстати, по твоим словам, я так понимаю используются 3д модели? Что мешает использовать занормаленные 2д текстурки? В такой проекции ведь нет смысла в объемных моделях


Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
KozinakaДата: Пятница, 29 Мая 2015, 15:27 | Сообщение # 20
частый гость
Сейчас нет на сайте
Занормаленные текстурки и используются, ты прав! Просто для того, чтобы их сделать, нужна исходная хай-рез модель. Сейчас текстурки делаются напрямую из модели без постобработки, это я и называю "голыми моделями". А так, конечно, игра спрайтовая.

Добавлено (27 мая 2015, 12:45)
---------------------------------------------
О, я нашел подписку на уведомления!

Добавлено (29 мая 2015, 15:27)
---------------------------------------------


Форум игроделов » Ваши проекты » Проекты в разработке » Несыть (Симулятор плотоядного червя [PC, C++, Lua, DirectX])
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг