Легенды лифиана
Модератор: Jolly Roger
Легенды лифиана
Вот еще одна моя попытка создать игру, теперь семидневную. На данный момент начался второй день разработки. Здесь буду выкладывать свой дневник. За все ошибки и неудобность чтения прошу извинить меня - дневник не редактируется.
Решил сделать рогалик за 7 дней.
Начало
+ появилась идея делать семидневный рогалик.
+ идея рогалика - герой (воин) путешествуя с караваном по пустыне (он охранник) попадает в бурю. Пытаясь укрыться от летящего песка он отходит от каравана и теряется. Через некоторое время он находит маленький оазис и решает ждать любой другой караван. Но пустыня опасна. Однажды на горизонте он замечает другую бурю - самую опасную бурю пустыни которую называют местные жители просто - ход мертвецов. Внутри бури трупы оживают и следуют за бурей по всей пустыне. Любого встречного они убивают. Герой недолго думая прыгает в яму которая находится возле оазиса и попадает в древний храм - склеп. От скуки он решает иследовать давно забытый храм, вот только оказывается что этот храм не так у и забыт.
Вот план на неделю:
день 1: каркас игры, выделение памяти для карты, для героя. Дополнительно: отображение героя и карты
день 2: герой и карта, движение по карте, перемещение между картами (старые карты будут сохраняться во временные файлы), LOS. Первая карта - оазис.
день 3: монстры и предметы. Инвентарь. Генерация подземелий и заселение монстрами и предметами. Контейнеры для предметов.
день 4: Полное подземелье по которому сможет двигаться герой. Монстры еще ничего не делают. Предметы можно собирать. Ловушки. Дополнительно: можно организовать загадки решив которые игрок сможет получить холошие плюшки.
день 5: Опасности для героя - АИ и повреждения от ловушек. голод.
день 6: Сохранение/загрузка игры. Полное оформление.
день 7: окончательный баланс игры, представление общественности
Ну, начну:
* долго думал что делать с ограниченностью в 16 цветов. В конце концов решил использовать TinyCurses 1.0a. Неплохая вещь. и в отличие от libtcod не перегруженна всем тем что мне не нужно. Да и в коде записанном в двух файлах легче разобраться. И документация есть, с примерами.
Поправка: из-за незнания, как вывести русский текст, TinyCurses использоваться не будет. Вместо этого я напишу свой двиг с копированием из TinyCurses. Поправка: легче опазалось написать с нуля.
День 0
Пишу свой двиг.
Все двиг записан. Пока он может только заливать экран цветом и выводить в любой точке текст. Фон и цвет текста можно менять. Размер текста также можно менять.
День первый
+Теперь можно заняться и игрой. Начну с каркаса.
+Создал первое окно-логотип-меню. Хм, какая-то у меня любовь к такому оформлению, назовука я этот стиль "золотом в тихом море". А так прикольно смотриться, в чем-то даже архаично.
+Ну, дальше описание героя.
Навыки
Магия - улучшает магические заклинания, поможет сократить время подготовки заклинания. При высоком уровне заклинания в двое сильнее.
Атлетика - позволит перепрыгивать через ямы, плавать. При высоком уровне добавка к здоровью
Выносливость - уменьшит голод, сопротивление болезни. на высоком уровне может применяться вместо стойкости.
Лечение - позволяет эффективней использовать подручные средства для лечения. Может помочь при кровотечении. на высоком уровне, эффект удваивается.
Внимательность - позволит избежать застигнутости врасплох. Обнаружить секретные двери и ловушки, тайники. На высоком уровне, эффект удваивается.
А с картой проблемы, слишком медленно отрисовывается. Придется делать такую вещь - буфер экрана в него заносится весь выводимый текст, потом весь этот буфер отобржается на экран одной функцией. Но пока вижу проблему - как хранить текст нестандартного размера?
не такую вещь делать не пришлось, оказывается это функция SDL_Flip() тормозит, вынес ее в одельную функцию и вызываваю только тогда когда нужно показать созданный в памяти рисунок.
+карта выводится на экран. остались существа и герой
+ герой выводится и на этом можно первый день закончить
И напоследок, какой из двух меню вам нравится больше? А может есть другие идеи по оформлению? Также выкладываю исходники консоли.
Решил сделать рогалик за 7 дней.
Начало
+ появилась идея делать семидневный рогалик.
+ идея рогалика - герой (воин) путешествуя с караваном по пустыне (он охранник) попадает в бурю. Пытаясь укрыться от летящего песка он отходит от каравана и теряется. Через некоторое время он находит маленький оазис и решает ждать любой другой караван. Но пустыня опасна. Однажды на горизонте он замечает другую бурю - самую опасную бурю пустыни которую называют местные жители просто - ход мертвецов. Внутри бури трупы оживают и следуют за бурей по всей пустыне. Любого встречного они убивают. Герой недолго думая прыгает в яму которая находится возле оазиса и попадает в древний храм - склеп. От скуки он решает иследовать давно забытый храм, вот только оказывается что этот храм не так у и забыт.
Вот план на неделю:
день 1: каркас игры, выделение памяти для карты, для героя. Дополнительно: отображение героя и карты
день 2: герой и карта, движение по карте, перемещение между картами (старые карты будут сохраняться во временные файлы), LOS. Первая карта - оазис.
день 3: монстры и предметы. Инвентарь. Генерация подземелий и заселение монстрами и предметами. Контейнеры для предметов.
день 4: Полное подземелье по которому сможет двигаться герой. Монстры еще ничего не делают. Предметы можно собирать. Ловушки. Дополнительно: можно организовать загадки решив которые игрок сможет получить холошие плюшки.
день 5: Опасности для героя - АИ и повреждения от ловушек. голод.
день 6: Сохранение/загрузка игры. Полное оформление.
день 7: окончательный баланс игры, представление общественности
Ну, начну:
* долго думал что делать с ограниченностью в 16 цветов. В конце концов решил использовать TinyCurses 1.0a. Неплохая вещь. и в отличие от libtcod не перегруженна всем тем что мне не нужно. Да и в коде записанном в двух файлах легче разобраться. И документация есть, с примерами.
Поправка: из-за незнания, как вывести русский текст, TinyCurses использоваться не будет. Вместо этого я напишу свой двиг с копированием из TinyCurses. Поправка: легче опазалось написать с нуля.
День 0
Пишу свой двиг.
Все двиг записан. Пока он может только заливать экран цветом и выводить в любой точке текст. Фон и цвет текста можно менять. Размер текста также можно менять.
День первый
+Теперь можно заняться и игрой. Начну с каркаса.
+Создал первое окно-логотип-меню. Хм, какая-то у меня любовь к такому оформлению, назовука я этот стиль "золотом в тихом море". А так прикольно смотриться, в чем-то даже архаично.
+Ну, дальше описание героя.
Навыки
Магия - улучшает магические заклинания, поможет сократить время подготовки заклинания. При высоком уровне заклинания в двое сильнее.
Атлетика - позволит перепрыгивать через ямы, плавать. При высоком уровне добавка к здоровью
Выносливость - уменьшит голод, сопротивление болезни. на высоком уровне может применяться вместо стойкости.
Лечение - позволяет эффективней использовать подручные средства для лечения. Может помочь при кровотечении. на высоком уровне, эффект удваивается.
Внимательность - позволит избежать застигнутости врасплох. Обнаружить секретные двери и ловушки, тайники. На высоком уровне, эффект удваивается.
А с картой проблемы, слишком медленно отрисовывается. Придется делать такую вещь - буфер экрана в него заносится весь выводимый текст, потом весь этот буфер отобржается на экран одной функцией. Но пока вижу проблему - как хранить текст нестандартного размера?
не такую вещь делать не пришлось, оказывается это функция SDL_Flip() тормозит, вынес ее в одельную функцию и вызываваю только тогда когда нужно показать созданный в памяти рисунок.
+карта выводится на экран. остались существа и герой
+ герой выводится и на этом можно первый день закончить
И напоследок, какой из двух меню вам нравится больше? А может есть другие идеи по оформлению? Также выкладываю исходники консоли.
Последний раз редактировалось warchief 18 фев 2011, 13:47, всего редактировалось 2 раза.
- Sanja
- Администратор
- Сообщения: 791
- Зарегистрирован: 24 ноя 2006, 12:25
- Откуда: Новосибирск
- Контактная информация:
Re: Легенды Лифиана: тайна пустыни 7DRL
Второй вариант нормально. Белое солнце, жёлтый песок, синее небо. Способствует.
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Re: Легенды Лифиана: тайна пустыни 7DRL
А мне больше первый нравится. Как раз, склеп, темно, чёрный цвет.
Второй вариант навевает Adventure Island на денди
Второй вариант навевает Adventure Island на денди
Айв кнгенгах Йог-Сотот
- Sanja
- Администратор
- Сообщения: 791
- Зарегистрирован: 24 ноя 2006, 12:25
- Откуда: Новосибирск
- Контактная информация:
Re: Легенды Лифиана: тайна пустыни 7DRL
Кстати, да! Мне самому показалось, что вот-вот сбоку выбежит этот усатый удалец в кепочке.
Re: Легенды Лифиана: тайна пустыни 7DRL
День 2
+ так герой и карта уже сделаны. Значит буду делать движение героя по карте
+ движение сделано. Отказался отделить героя и теперь и герой другие существа хранятся в одном массиве.
+ структурировал структуру игры
+ добавил несколько символов которые мне нужны для оазиса
+ переписал функцию определяющую текущее событие - теперь она не ждет событие а обрабатывает текущее состояние клавиатуры. Из-за этого получил возможность анимации для воды и будущей бури.
+ с водой получилось так: вместо обычных волн (какие волны в озере?) получилось мерцание - интересно его можно считать бликами солнца на поверхности воды?
* нашел интересный способ создания карт - в граф. редакторе создал рисунок, накинул на него сетку, проставил систему координат, потом просто заливал каким либо цветом нужные клетки. А потом с помощью системы координат находил нужную клетку и в коде указывал ее координаты.
+ оазис готов.
* Гм, какого цвета сделать героя? Белый на желтом раздражает... Возникла следующая идея - в пустыне герой темно-серый, в подземелье белый - получился эффект яркого солнца.
* теперь LOS.
* Мда, полчаса тупил со старым ЛОСом взятым еще с баллад Лифиана. "Почему-то" работающий алгоритм не хотел запускаться. И только долго помучавшись я вспомнил что нужно было сгенерировать таблицы расчета cos и sin, чего я не сделал. И как я это мог забыть?
+ LOS работает и на мой взгляд он очень хорошо подходит под игру.
* осталось перемещение между картами. Нет, сегодня я это делать не буду. На этом можно закончить второй день. Ох завтра будет самый сложный день, потому как я не знаю пока как зранить описание монстров и предметов
+ блин чуть не забыл про траву
Гм, а мне оба экрана меню нравятся. Наверное сделаю возможность выбирать стиль оформления экрана, тем более это не сложно.
+ так герой и карта уже сделаны. Значит буду делать движение героя по карте
+ движение сделано. Отказался отделить героя и теперь и герой другие существа хранятся в одном массиве.
+ структурировал структуру игры
+ добавил несколько символов которые мне нужны для оазиса
+ переписал функцию определяющую текущее событие - теперь она не ждет событие а обрабатывает текущее состояние клавиатуры. Из-за этого получил возможность анимации для воды и будущей бури.
+ с водой получилось так: вместо обычных волн (какие волны в озере?) получилось мерцание - интересно его можно считать бликами солнца на поверхности воды?
* нашел интересный способ создания карт - в граф. редакторе создал рисунок, накинул на него сетку, проставил систему координат, потом просто заливал каким либо цветом нужные клетки. А потом с помощью системы координат находил нужную клетку и в коде указывал ее координаты.
+ оазис готов.
* Гм, какого цвета сделать героя? Белый на желтом раздражает... Возникла следующая идея - в пустыне герой темно-серый, в подземелье белый - получился эффект яркого солнца.
* теперь LOS.
* Мда, полчаса тупил со старым ЛОСом взятым еще с баллад Лифиана. "Почему-то" работающий алгоритм не хотел запускаться. И только долго помучавшись я вспомнил что нужно было сгенерировать таблицы расчета cos и sin, чего я не сделал. И как я это мог забыть?
+ LOS работает и на мой взгляд он очень хорошо подходит под игру.
* осталось перемещение между картами. Нет, сегодня я это делать не буду. На этом можно закончить второй день. Ох завтра будет самый сложный день, потому как я не знаю пока как зранить описание монстров и предметов
+ блин чуть не забыл про траву
Гм, а мне оба экрана меню нравятся. Наверное сделаю возможность выбирать стиль оформления экрана, тем более это не сложно.
Re: Легенды Лифиана: тайна пустыни 7DRL
Ух, тут только что появилась идея следующего семидневного рогалика, ох поскорее бы заняться им.
В следующем вы будете играть божественным аватаром. Игра будет жестокой, ваша цель - очистить город осажденой ужасными тварями (чем-то похоже на berserk). Но это ужастик - ваша сила будет зависить от числа выживших. Помните сцены в фильмах ужасов- когда люди от бестий прячуться в храмах и усиленно молятся? А бестии пытаются прорваться? Вот это и есть идея рогалика.
В следующем вы будете играть божественным аватаром. Игра будет жестокой, ваша цель - очистить город осажденой ужасными тварями (чем-то похоже на berserk). Но это ужастик - ваша сила будет зависить от числа выживших. Помните сцены в фильмах ужасов- когда люди от бестий прячуться в храмах и усиленно молятся? А бестии пытаются прорваться? Вот это и есть идея рогалика.
Re: Легенды Лифиана: тайна пустыни 7DRL
и еще, помню был сайт по созданию ASCII демосцен (кто-то на этом форуме советовал), ну там огня, еще чего-нибудь. Можете напомнить мне этот сайт? ну или другие посвященные ASCII спец эффектам, желательно с исходниками.
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Re: Легенды Лифиана: тайна пустыни 7DRL
Ты символы в форме картинок рисуешь? Просто интересно, откуда такая прикольная водичка и такие деревца.
Айв кнгенгах Йог-Сотот
Re: Легенды Лифиана: тайна пустыни 7DRL
Нет, это все богатство true type. Я использую шрифт DejaVu Sans Mono. А сами символы подбираю через таблицу сиволов.
Re: Легенды Лифиана: тайна пустыни 7DRL
Блин, я наверное не буду делать случайно сгенерированные подземелья, вместо этого буду использовать уже готовые карты
- Aerton
- Сообщения: 503
- Зарегистрирован: 11 авг 2007, 02:58
- Откуда: Новосибирск
- Контактная информация:
Re: Легенды Лифиана: тайна пустыни 7DRL
Использовать libcaca и получить ASCII art из любой картинки или видео. Хоть на лету, хоть сконвертировать заранее.warchief писал(а):и еще, помню был сайт по созданию ASCII демосцен (кто-то на этом форуме советовал), ну там огня, еще чего-нибудь. Можете напомнить мне этот сайт? ну или другие посвященные ASCII спец эффектам, желательно с исходниками.
Re: Легенды Лифиана: тайна пустыни 7DRL
У меня сейчас мозг взорвется, третий день подходит к концу а я еще свой генератор карты творю.
Никто случаем нигде не видел генераторы карты в результает которых получаем карту чем-то похожую на храм? А то первые две карты будут в храме посвященном какому-нибудь богу, делать карты статическими как-то не хочется. Не делать же стандартный карта-коридор...
Никто случаем нигде не видел генераторы карты в результает которых получаем карту чем-то похожую на храм? А то первые две карты будут в храме посвященном какому-нибудь богу, делать карты статическими как-то не хочется. Не делать же стандартный карта-коридор...
Мне чего хочется.... Чтобы на стартовом экране следующего рогалика текла кровь, то есть нужна анимация.Использовать libcaca и получить ASCII art из любой картинки или видео. Хоть на лету, хоть сконвертировать заранее.
Re: Легенды Лифиана: тайна пустыни 7DRL
Храм.
Как вам идея для следующей генерации.
Храм это здание, с одной большой комнатой по середине, по периметру - колонны, с боков небольшие комнаты - помещения, эти маленькие помещения должны быть симметричны.
Алгоритм может быть следующим
1. Карту делим на 4 части (по вертикали, и горизонтали)
2. Берем самую левую верхнию часть, далее потексут регион.
3. В регионе вправом нижнем углу делаем комнату прямоугольник с размером от половины ширины/высоты региона +-рандом.
4. оставшиесся пространство заполняем случайнми маленькими комнатами.
5. регион проецируем зерклаьно на верхнию правую область карты
6. также проецируем зеркально внижнию правую часть
7. проецируем в нижнию левую часть
-- получааем симитричную карту в центре которого одна большая комната
8. прорубаем ходы - соединяющие комнаты
9.расставляем колонны в центральной комнате.
Храмы, принадлежащие разным богам, различать можно по калоннам.
Бог 1 - колонны слева и справа
Бог 2 - одна большая колонна в центре
Бог 3 - колонный только справа
итд.
Как вам идея для следующей генерации.
Храм это здание, с одной большой комнатой по середине, по периметру - колонны, с боков небольшие комнаты - помещения, эти маленькие помещения должны быть симметричны.
Алгоритм может быть следующим
1. Карту делим на 4 части (по вертикали, и горизонтали)
2. Берем самую левую верхнию часть, далее потексут регион.
3. В регионе вправом нижнем углу делаем комнату прямоугольник с размером от половины ширины/высоты региона +-рандом.
4. оставшиесся пространство заполняем случайнми маленькими комнатами.
5. регион проецируем зерклаьно на верхнию правую область карты
6. также проецируем зеркально внижнию правую часть
7. проецируем в нижнию левую часть
-- получааем симитричную карту в центре которого одна большая комната
8. прорубаем ходы - соединяющие комнаты
9.расставляем колонны в центральной комнате.
Храмы, принадлежащие разным богам, различать можно по калоннам.
Бог 1 - колонны слева и справа
Бог 2 - одна большая колонна в центре
Бог 3 - колонный только справа
итд.
Re: Легенды Лифиана: тайна пустыни 7DRL
http://www.holyfire.org/plan1.htm#3warchief писал(а):Никто случаем нигде не видел генераторы карты в результает которых получаем карту чем-то похожую на храм?
http://ancientrome.ru/art/artwork/img.htm?id=33
http://www.architektor.ru/pics/editor/komsky2.jpg
http://www.architektor.ru/pics/editor/komsky8.jpg
Re: Легенды Лифиана: тайна пустыни 7DRL
Наверное попробую на крайний случай такой способХрам это здание, с одной большой комнатой по середине, по периметру - колонны, с боков небольшие комнаты - помещения, эти маленькие помещения должны быть симметричны.
Да, не примерные планы храмов я знаю как выглядят. Мне нужен генератор.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 38 гостей