Побег некроманта [Дневник разработчика]
rpg-maker.info/forum/projects/59827-pobeg-nekromanta-vx-ace
Для чего я создал эту тему отдельно от игры?
-Разработка игры и ее этапы
-Сама игра и обсуждение того, что получилось
Сначала буду делиться планами, того что хочу видеть в игре. Потом выкладывать игру с новыми добавлениями.
А уже потом обсуждать и выкладывать пути решения и проблемы того или иного элемента игры.
И т.к. сама игра - это категория "Проекты", а путь решения - это больше к "Академии" относится, я эти понятия разделил
Почему в этой категории?
Что хочу от всего этого получить?
Ну первое: Хотел развеять все вопросы и домыслы тестеров, которые чего-то своего ждали или ждут от игры, но не увидев это, были разочарованы.
Второе: Хочу поделиться планами. И, возможно, получить пару-тройку пожеланий или советов, что и как сделать. Ну или советов, чего делать не стоит.
Третье, и самое главное: Надеюсь мой дневник поможет начинающим (а может даже и бывалым) макеристам не наступить на те же грабли, что и я. И возможно подчеркнуть что-то полезное для себя.
Ах да. Четвертое: Бесценный опыт в создании своей игры!
Понеслась…..
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Создание идеи:
Пришло время «Готв» и я искал тему для игры. На форуме активно обсуждалась тема пиратства. И я решил, что это интересно. Но т.к. JackCL проявлял к ней наибольший интерес, я понял, что эту тему подхватил он.
На тот момент читал книгу (аудиокнигу) «Рождение мага» Ника Перумова. Меня заинтересовала тема некромантии из книги. То, что там помимо трупа нужна магия тьмы. А тьма черпается из страданий и боли. И т.к. я из серии книг знал, что будет книга «Дочь некроманта». Я решил, что ГГ будет девушка (В книге ее правда не Кира зовут).
Набрал в поиске «Девушка некромант». Выпала картинка, которую я использовал в системе крафта, и я решил, что девушка будет рыжей (Да и вообще люблю рыжих).
Страсть как хотел запилить свою систему крафта в игру и посмотреть, что выйдет.
Поэтому в качестве геймплея я рассматривал две мои любимые игры:
Don't Starve
ru.dont-starve.wikia.com/wiki/Don%27t_Starve_wiki
и
Craft The World
ru.craft-the-world.wikia.com/wiki/Craft_The_World_вики
и т.к. как запилить песочницу в макере я не имел ни малейшего понятия (а вернее времени), выбор пал на Don't Starve
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Карта
Идея-фикс была в создании псевдо большего бесшовного мира(карты) со случайной расстановкой ресурсов.
Создал карту 200х200 с прокруткой в обе стороны, т.к. больше уже было перебором.
Разбил на биомы ну чисто от руки(зел. трава, сух. трава, песок и земля)
Следующей задачей было раскидать на карте ресурсы.
Ну тут сложнее. Не долго думая я создал несколько ивентов, каждый отвечающий за свой ресурс(трава, дерево, камень, железо, золото и враги)
Поставил включение "автоматически", и поставил задачу с помощью случайных чисел переместится в рандомное место на карте.
Во второй вкладке события проверялся "код местности" в котором ивент оказался.
И в зависимости от этого ивент менялся внешне или полностью. (Так дерево попадая на траву становилось зеленым, а на песок, сухим. Или враг попадая на траву, становился кабаном, а на песок - пауком. А попадая на воду они становились просто кувшинками.
Закинул на карту огромное кол-во этих ивентов, я это все протестил. И, о чудо, заработало.
Но не все было так радужно.
И здесь я совершил свой самый большой промах!
Т.к. моя ивентовая система крафта запилена на другой карте, при возвращении на основную карту все ивенты, хоть и измененные возвращались на свои прежние места!
Следующий этап:
На сл. день, отойдя от разочарования, я тупо раскидал ивенты по биомам, им соответствующим и выложил все на форум.
И это была вторая ошибка!
Оказалось, что из-за того, что я использовал все возможные ивенты на карте, игра на основной карте страшно лагала. А у некоторых на слабых машинах персонаж вообще не двигался с места.
Несколько раз я уменьшал размер карты, но помогало не сильно.
В итоге я разбил карту на кучу квадратов 50х50. С помощью встроенного генератора подземелий создал ландшафт и раскидал ресурсы вручную.
На данный момент это финальная версия карты.
На этом пока все. Я спать. Следующий элемент: Костер
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Очень крутая идея,как-то тоже рандом в свою игру пихал, но у меня всё банальнее былоpeter8031983 пишет: И в зависимости от этого ивент менялся внешне или полностью. (Так дерево попадая на траву становилось зеленым, а на песок, сухим. Или враг попадая на траву, становился кабаном, а на песок - пауком. А попадая на воду они становились просто кувшинками.
Создаешь для каждого ивента две переменных которые бы запоминали их месторасположение на картеpeter8031983 пишет: Т.к. моя ивентовая система крафта запилена на другой карте, при возвращении на основную карту все ивенты, хоть и измененные возвращались на свои прежние места!
Почему не будет? Поизучай мапинг в "долгая дорога домой" например и попробуй сделать что-нибудь похожее.Выйдет в любом случае лучше генератора подземелийpeter8031983 пишет: Так что не ждите от игры хоть какого-то нормального маппинга. Его там просто нет. И скорее всего не будет.
Как вариант - сделай набросок локации, типа "тут будет травка, тут гора, тут речка" а затем скопируй с "долгой дороги домой" подходящие "речки,горки"
А в остальном - очень радует, что тот,кто всего пару месяцев на форуме делает не обычную рпг с квестами "пойди принеси", а пытается сделать игру со сравнительно сложной ивентовой механикой.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
У меня 64 карты 50х50 на данный момент. На каждой карте минимум 10-15 ресурсов. Для каждого ресурса две переменные. Х,У. Итого - 1280 переменных минимум. Ты издеваешься?yuryol пишет: Создаешь для каждого ивента две переменных которые бы запоминали их месторасположение на карте
Но об этом позже.
В этом я не отказался бы от помощи. Ибо сколько не пытался маппить у мя все квадратное выходит. Видимо мозг у меня квадратный.Так что не ждите от игры хоть какого-то нормального маппинга. Его там просто нет. И скорее всего не будет.
Почему не будет? Поизучай мапинг в "долгая дорога домой" например и попробуй сделать что-нибудь похожее.Выйдет в любом случае лучше генератора подземелийrpg-maker.info/forum/projects/58659-dolgaya-doroga-domoj
Как вариант - сделай набросок локации, типа "тут будет травка, тут гора, тут речка" а затем скопируй с "долгой дороги домой" подходящие "речки,горки"Всё-равно в любом случае если ты вставишь генератор локации у тебя каждая таким образом сделанная лкоация будет изменена до неузнаваемости. И главное побольше тайлов деревьев/травы поищи.
И в макере я примерно пол года, кстати.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Ну зачем сразу 64 делать, можно же вполне пока учиться на 5-10 картах, сделать базовый "движок" а потом уже развивать игру,пиля новые карты и предметы. Как говорится, "сначала вглубь, потом вширь".peter8031983 пишет: У меня 64 карты 50х50 на данный момент. На каждой карте минимум 10-15 ресурсов. Для каждого ресурса две переменные. Х,У. Итого - 1280 переменных минимум. Ты издеваешься?
Если вдруг случится чудо и не заберут в армейку через недели полторы, то с радостью помогу, чем могу, и с маппингом, и с ивентами, хотя не спец ни в том,ни в другомpeter8031983 пишет: В этом я не отказался бы от помощи. Ибо сколько не пытался маппить у мя все квадратное выходит. Видимо мозг у меня квадратный.
А вернее мышление.И в макере я примерно пол года, кстати.
Давно хочу в чем-нибудь подобном попробовать но лень полноценную игру делать,а немного помочь - не прочь.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
пусть и не мастер, но мыслю не квадратно
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Да я еще и сам не понял какая именно помощь мне нужна, но за предложение огромное спасибо.DeadElf79 пишет: С маппингом могу помочь
пусть и не мастер, но мыслю не квадратно
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Костер(он же кострище)
Что я собственно хотел получить:
1. Он мне нужен был для приготовления еды (еще планируется котел, но обо все по порядку)
2. Он должен был гаснуть со временем
3. Его можно было разжигать в любом месте карты
Вроде бы такой простой элемент, но без проблем не обошлось
Первый вариант:
Сам костер(кострище) сначала крафтился. Игрок получал в инвентарь предмет "Костер" соответственно.
При использовании этого предмета вызывалось общее событие.
Делало оно следующее:
Игрок делал шаг назад (Сделано было для того, что бы костер нельзя было поставить в дерево или воду, например) --- Срабатывала анимация огня --- на место где стоял игрок до шага назад перемещалось заранее заготовленное событие, которое собственно и было костром.
--- Это событие само включалось переменной костер давало возможность что-то на нем жарить или подкинуть дров.
И он со временем тух, т.к. в параллельном событии менялась переменная, отвечающая за силу огня.
А анимации просто менялись вкладками в зависимости от переменной "костер".
Проблемы:
Первая проблема возникла такая же как и с ивентами случайных ресурсов. После выхода из крафта, костер возвращался на то же место, где был сначала.
Эту проблему я решил легко. Просто добавил еще одно Автоматическое событие, запоминающее и возвращающее костер на место где его поставили.
Следующая проблема возникла когда я стал разбивать карту на сектора.
Помимо того, что в каждом секторе нужно было ставить по костру, по запоминающему место событию. И присваивать каждому костру по переменной "силы огня". Еще и что бы общее событие по вызову работала правильно, нужно было чтобы у всех костров на всех картах совпадал ID самого события. Ибо Вызов костра перемещал к игроку то какое-нить дерево, то вообще ивент телепортации. Задача мне показалась слишком сложной и я, долго поэкспериментировав и танцуя с бубном над ивентами, решил систему костров упразднить.
Раскидал во все сектора по месту под костер.
Теперь, чтобы его разжечь вам просто требуется 3 дерева и 1 сухая трава.
Я создал для каждого костра свой переключатель и свою переменную силы огня. (Пришлось попотеть)
Но с этим связан еще один баг, о котором я знаю, но решить проблему пока не могу.
Сила огня уменьшается только когда игрок находится на той же карте, что и зажженный костер.
Так бродя очень долго, можно вернуться на старую локацию и обнаружить там горящий костер, чего быть не должно.
Можно было бы конечно вывести все в общие параллельные события. Но если их будет слишком много, игра начнет лагать.
С этим элементом пока все. Если кто-то знает пути решения проблем, пишите. Буду рад.
P.s. Следующие элементы: Ключевые показатели в игре и Ресурсы и их сбор
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
И он со временем тух, т.к. в параллельном событии менялась переменная, отвечающая за силу огня.
Сила огня уменьшается только когда игрок находится на той же карте, что и зажженный костер.
Так бродя очень долго, можно вернуться на старую локацию и обнаружить там горящий костер, чего быть не должно.
Первым делом я бы предложил полноценный скрипт, но ладно, я его уже слишком часто всюду упоминал.
Если необходимо, не сильно переделывая логику, исправить этот момент, то я бы рекомендовал не вычислять сколько костру нужно гореть, а указать когда он должен потухнуть и потом сравнивать переменную с $game_system.playtime, отвечающий за количество секунд с начала игры.
То есть, создавая костер, присваивай его переменной число [cкрипт] "$game_system.playtime + секундГорения". Потом в параллельном событии проверяй условие "$game_system.playtime > $game_variables[номерПеременной]" и, если оно станет истинным, туши костер.
upd: Если религия, пришельцы, Ктулху или что-то другое не позволяют использовать в проекте какой либо код, то можно использовать встроенную переменную, присвоив ей: Операнд -> Игровое -> Другое -> Время игры.
Только не забывай с каждой проверкой эту переменную обновлять.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Спасибо конечно, но я визуал. То есть мне нужно на это посмотреть. На слух плохо воспринимаю. Можно ли вас озадачить созданием демки?Rude пишет:
И он со временем тух, т.к. в параллельном событии менялась переменная, отвечающая за силу огня.
Сила огня уменьшается только когда игрок находится на той же карте, что и зажженный костер.
Так бродя очень долго, можно вернуться на старую локацию и обнаружить там горящий костер, чего быть не должно.
Первым делом я бы предложил полноценный скрипт, но ладно, я его уже слишком часто всюду упоминал.
Если необходимо, не сильно переделывая логику, исправить этот момент, то я бы рекомендовал не вычислять сколько костру нужно гореть, а указать когда он должен потухнуть и потом сравнивать переменную с $game_system.playtime, отвечающий за количество секунд с начала игры.
То есть, создавая костер, присваивай его переменной число [cкрипт] "$game_system.playtime + секундГорения". Потом в параллельном событии проверяй условие "$game_system.playtime > $game_variables[номерПеременной]" и, если оно станет истинным, туши костер.
upd: Если религия, пришельцы, Ктулху или что-то другое не позволяют использовать в проекте какой либо код, то можно использовать встроенную переменную, присвоив ей: Операнд -> Игровое -> Другое -> Время игры.
Только не забывай с каждой проверкой эту переменную обновлять.
Я ни хрена..... Да что за день то такой.... Совсем не понял, чем этот вариант лучше простого параллельного события с переменной, если параллельное событие для проверки переменной все равно нужно создавать?
И как бы хочу напомнить, что костер не просто тухнет, а гаснет со временем (т.е. визуально выглядит слабее). И так же можно подкидывать топливо. Дерево разжигает костер сильнее, сухая трава хуже.
И что за полноценный скрипт?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Хватай демку) Сделал немного, может, сложно, но основные моменты выделил комментариями в виде "
/
/
/=". Параллельная проверка происходит в событии, что находится на тайл выше от запускающего огонь. Надеюсь разберешься.Тем, что отсчет горения костра (при твоем варианте) всегда работает только когда игрок на карте, что ты и писал. А мой вариант сработает через нужный промежуток времени не зависимо от того куда и сколько ходил игрок.Чем этот вариант лучше простого параллельного события с переменной, если параллельное событие для проверки переменной все равно нужно создавать?
Правда стоит учесть что наш костер потухнет только тогда, когда игрок вернется на карту, если он с неё уходил
Это геморно немного и бессмысленно (на мой взгляд), но учел это в демке.И как бы хочу напомнить, что костер не просто тухнет, а гаснет со временем (т.е. визуально выглядит слабее). И так же можно подкидывать топливо. Дерево разжигает костер сильнее, сухая трава хуже.
galvs-scripts.com/2013/02/23/respawn-timer/И что за полноценный скрипт?
По сути реализовывает то что я предложил, но в более гибкой и красивой форме.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Rude пишет: yadi.sk/d/IdufrHX-d2DJf
Хватай демку) Сделал немного, может, сложно, но основные моменты выделил комментариями в виде "/
/
/=". Параллельная проверка происходит в событии, что находится на тайл выше от запускающего огонь. Надеюсь разберешься.
Тем, что отсчет горения костра (при твоем варианте) всегда работает только когда игрок на карте, что ты и писал. А мой вариант сработает через нужный промежуток времени не зависимо от того куда и сколько ходил игрок.Чем этот вариант лучше простого параллельного события с переменной, если параллельное событие для проверки переменной все равно нужно создавать?
Правда стоит учесть что наш костер потухнет только тогда, когда игрок вернется на карту, если он с неё уходил![]()
Это геморно немного и бессмысленно (на мой взгляд), но учел это в демке.И как бы хочу напомнить, что костер не просто тухнет, а гаснет со временем (т.е. визуально выглядит слабее). И так же можно подкидывать топливо. Дерево разжигает костер сильнее, сухая трава хуже.
galvs-scripts.com/2013/02/23/respawn-timer/И что за полноценный скрипт?
По сути реализовывает то что я предложил, но в более гибкой и красивой форме.
ВНИМАНИЕ: Спойлер!Если нужно, то его даже можно совместить со скриптом на внутриигровое время![]()
Отличный вариант! Скорее всего использую его в проекте.
Придется правда перековырять все 64 костра. Благо переключатели и нужные переменные к ним уже созданы.
Нужно будет еще покопаться в переменных. И что в них еще интересного можно записывать. А то я как-то упустил, что туда можно записать игровое время.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
А вернее над перерождением старой игры.
У меня нет сканера, но есть желание самому нарисовать персонажей и прочее.
Остаются только программы для работы с изображениями. Но рисовать на компе крайне гемморное занятие.
Нашел одну рисовалку онлайн.
www.newart.ru/htm/flash/risovalka_13.php
Все классно, но нельзя отменить последние действия.
Муторно совместил с Paint.net
Вот что получилось (Предполагаемый противник).
Собрал из кусков, следовательно положение ног-рук можно поменять как угодно. Можно даже какую-никакую анимацию запилить.
Саи лень было рисовать. Взял готовые.
Это пока наброски.
Поехали дальше.....
Мертвый эльф поделился со мной частичкой своих знаний в скриптинге.(За что ему огромное спасибо)
И с помощью простецкого скрипта
$game_map.data[$game_variables[4],$game_variables[5],2]=101
end
я начал работать над генератором мира.
Вот что пока получается....
Пока без рек и озер, но элементов будет больше.
Это "проба пера" так сказать.
Демка:
yadi.sk/d/gnKl9ZTfdufF7
Все это скелет для будущей игры.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
По-моему деревьев через чур много. Ходить не удобно,постоянно обруливать приходится.
Радует,что пока ничего не тупит,хотя и событий то почти нет.
С генерацией уже лучше,но я бы посоветовал использовать нестандартные тайлы, эти уже приелись.
Канал: www.youtube.com/channel/UC_dv6JJsCYtMvAkjjQwbUhw
Зловещая тень: rpg-maker.info/forum/proekty/59684-mortu...pes-zloveshchaya-ten
Phantasy Star III rpg-maker.info/forum/igry-i-roliki/60085...tory-of-orakio#79128
Phantasy star Наследие rpg-maker.info/forum/projects/60615-phantasy-star-nasledie
Доблесть воина rpg-maker.info/forum/projects/50869-dobl...na-trpg?limitstart=0
Персона rpgmaker.ru/forum/projects/61435-persona...-storona-dushi#94488
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1) Лес из "Наннингтона"
2) Сад из первой версии "Инквизитор: повелители теней"
Всего хорошего, и спасибо за рыбу
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Sypherot пишет: Примеры деревьев, которые ты просил:
1) Лес из "Наннингтона"
2) Сад из первой версии "Инквизитор: повелители теней"
На первом скрине зачетные деревья. Не знаю какой магией обладал автор, но видел их в целой куче игр и они ни сколько не надоели. Но не смогу их использовать в своем генераторе и игре по 2м причинам:
1) Слишком уж они большие. Нехилой магией нужно обладать, чтобы снести такое дерево.
2) И немного по этой причине rpgmaker.su/f26/тайлы-vx-ace-со-свойствами-тайлов-xp-2408/
Деревья на втором скрине мне не нравятся, т.к. подходят как раз таки для сада больше, чем для леса.
Скорее всего пофотошоплю с этим материалом.
Уже использовал, но в сгенерированной карте должно смотреться неплохо.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Там можно вооружиться топором и ударами по дереву срубить его. Будет правдоподобнее. Также можно вооружить кирку и долбить камни. Ставишь дереву или камню настройку объекта и все. Могу подробнее рассказать, если заинтересует.
Канал: www.youtube.com/channel/UC_dv6JJsCYtMvAkjjQwbUhw
Зловещая тень: rpg-maker.info/forum/proekty/59684-mortu...pes-zloveshchaya-ten
Phantasy Star III rpg-maker.info/forum/igry-i-roliki/60085...tory-of-orakio#79128
Phantasy star Наследие rpg-maker.info/forum/projects/60615-phantasy-star-nasledie
Доблесть воина rpg-maker.info/forum/projects/50869-dobl...na-trpg?limitstart=0
Персона rpgmaker.ru/forum/projects/61435-persona...-storona-dushi#94488
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
I_LORD пишет: А ты не хочешь добавить в свой проект боёвку Фалькао?
Там можно вооружиться топором и ударами по дереву срубить его. Будет правдоподобнее. Также можно вооружить кирку и долбить камни. Ставишь дереву или камню настройку объекта и все. Могу подробнее рассказать, если заинтересует.
Не хочу такую боевку по нескольким причинам:
1) Не люблю я бой в реальном времени.
2) Если я дам ей в руки топор или кирку - это нарушит всю задумку гемплея, где все ресурсы нужно получать магией. И она все-таки барышня-маг, а не шахтер.
3) Не уверен, что смогу натянуть боевку на свой генератор. Как я понял, настроить дерево или камень нужно через событие. Если так, то я вернусь на шаг назад, где вся карта тормозила. Могу ошибаться конечно.
С таким боем и киркой в руках - это уже совсем клон Dont Starva получится. А не хотелось бы.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
Автор темы
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
Проблема с генератором.
Команда скрипта, которую подсказал Эльф меняет один тайл, согласно выбранному ID. Но что касается закладки А с заполняющимися тайлами все гораздо сложнее. В одном квадратике их просто тьма. Даже ID земли рядом меняется.
Пример на картинке возможно объяснит лучше.
Т.е. чтобы создать даже малюсенькое озерцо, нужно проверить целую кучу условий. А если озера 2х видов?
А если травушка, да дорожки, да еще что-нить? Мозг сломать можно.
Пытался пилить скрипт по подсказке пещерного, но не могу придумать как его использовать в генераторе. Или просто не догоняю всех его функций.
himeworks.com/2013/02/tile-swap/
Короче говоря, господа скриптеры, а так же жители данного форума, видел ли кто скрипт способный создавать элементы ландшафта из вкладки А сразу подбирая тайлы?
Поможет и часть кода.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
