То-ли движок ради рогалика... то-ли рогалик ради движка...

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

То-ли движок ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 03:16

В общем страдаю попытками сделать что-нить :)...
месяца 3 уже. :)
первым делом разбирался в OpenGL около полтора месяцев.
потом несколько раз пере собирал проект с нуля :) каждый раз использую наработки прошлых сборок.

вот что имеется на данный момент :)...

Конретно этот проект начат был с нуля 17 числа грубо говоря ему чуть менее 3 дней :)
оно может бегать! :)

зачем выкладываю?
надоело варится в собственном соку...

пока имеется.
Рандомная карта (без генератора просто раскиданные стены\полы);
оно может бегать!
управление:
стрелки, доп. клавиатура при включенном NumLock и при выключенном.
TYU (вверх-влево\вверх\вверх-вправо)
GH (влево\вправо)
VBN (вниз-влево\вниз\вниз-вправо)

так-же для отработки обработчика клавиатуры извратился и сделал возможность ходить по диагонали стрелками.
Зажав alt нажатием 2-х стрелок можно ходить по диагонали (алт+вверх+вправо).
хоть это и получилось не удобно :) но работает правильно (как и было задумано).
авто повтор при зажатой клавише тоже реализовал правда надо еще поиграться с задержками пока стоят: секунда с момента зажатия до начала повтора и 0.2 секунды между повторами.

Клавишей M можно переключать авто центровку ГГ в центре экрана.

LOS даже простейший не реализован :) на нем застрял прошлый проект :) в этом пока оставил лося на потом.
-----------------------------------------------

заменил клавишу m (включение центровки) на Alt+m.
добавил Alt+o для пере генерации подземелья, и смены типа (поверхность = мало стенок колонны, типа подземелье = много стенок :) )
сорцы пока не выкладываю дорабатываю :)

тут был битый архив
Скрытый текст: ПОКАЗАТЬ
Последняя думаю версия демонстрации FOV.

Скомпилил с консолькой куда выводится справочная инфа.
и с совсем больным(маленьким) размером шрифта :)
Самая важна :) радиус FOVа и FPS.
У меня при 300 клеток радиуса дает 16-17 фпс :) думаю для рогалика нормально. учитывая что фов врядли будет считаться более чем для 10-15 клеток.
на доп клаве + и - увеличивают и уменьшают радиус ФОВа.
с SHIFT`ом по 10 единиц за раз.

последняя версия.
v0.1.556.3123a2264.zip
(30.93 КБ) 292 скачивания
исходник.
Source v0.1.556.3123a2264.zip
(49.89 КБ) 316 скачиваний
Адд: 28.07.2011 перезалил последнюю версию и исходник, которые "испортились" в каком-то из обновлений форума.

Адд: 02.09.2013 как-же долго я искал описание своего FOV человеческим языком лежит там -> viewtopic.php?p=13910#p13910
Последний раз редактировалось Jesus05 02 сен 2013, 13:00, всего редактировалось 10 раз.

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Yozka » 19 апр 2010, 04:04

Нормальное начало хорошего дня.
Выложи сюда исходники. Может покажем правельное направление.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 04:23

Выложил исходники в 1 пост. Код конечно далек от идеала, но этот получше чем прошлый :)
Собирал это все в CodeBlocks. с компилером GNU GCC compiler.

Вообще я Builder`овец :) так что код может иметь характерное форматирование :)

Аватара пользователя
XVs
Сообщения: 719
Зарегистрирован: 18 янв 2010, 15:46
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение XVs » 19 апр 2010, 05:28

Обсуждать особо нечего, попробуй сделать генератор уровней?

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Yozka » 19 апр 2010, 05:37

Вполне неплохо.
Есть только один нюанс.
Это карты. Как понимаю, у тебя одна карта, и она статическая.
ПРоблемы возникнут. Когда ты будет добовлять еще карты.
Лучше наверно карты сделать динамические. и в каждой карте сделать ссылку на следующую карту (как например ты сделал в объектах). Собственно у тебя получится список карт. Между картами будешь переходить посредствам лестниц.
лестница это тотже объект, только у него есть метот который принудительно "ассоциирует" объекты на другую карту.
--
как определить текущую карту? у тебя есть герой Protagonist, у него берешь карту. вот эта карта будет и текущей. ты ее собственно отрисовывашеь.
--

еще заметил логическую неточноть, при отресовке карты DrawDrawMap(...)
идет создание карты.
отдели мух от коклет, если функция отрисовывает, то лучше отрисовывать карту. создание карты лучше куданибудь вынести за пределы DrawDrawMap. иначе потом запутаешся. когда в проект добавишь поддержку нескольких карт.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 05:53

Yozka писал(а):Вполне неплохо.
Есть только один нюанс.
Это карты. Как понимаю, у тебя одна карта, и она статическая.
ПРоблемы возникнут. Когда ты будет добовлять еще карты.
Лучше наверно карты сделать динамические. и в каждой карте сделать ссылку на следующую карту (как например ты сделал в объектах). Собственно у тебя получится список карт. Между картами будешь переходить посредствам лестниц.
лестница это тотже объект, только у него есть метот который принудительно "ассоциирует" объекты на другую карту.
--
как определить текущую карту? у тебя есть герой Protagonist, у него берешь карту. вот эта карта будет и текущей. ты ее собственно отрисовывашеь.
--

еще заметил логическую неточноть, при отресовке карты DrawDrawMap(...)
идет создание карты.
отдели мух от коклет, если функция отрисовывает, то лучше отрисовывать карту. создание карты лучше куданибудь вынести за пределы DrawDrawMap. иначе потом запутаешся. когда в проект добавишь поддержку нескольких карт.
в DrawDrawMap (блин масло масляное :( ) создается не сама карта, а обьект DrawMap который является последним буферов перед выводом на экран, этот класс превращает карту (Map) в то что будет нарисовано на экране в будущем в этой DrawMap будет прописана вся логика по отрисовки объектов (несколько предметов на тайле, несколько монстров (если я буду это допускать))
inline DrawMapTile DrawMap::ProcessTile(Tile tile) там будет (ну возможно разобью на еще несколько инлайнов) решаться проблемы как рисовать какие ситуации.
Это делал что-бы не рисовать невидимые (заэкранные) части карты.
а карта создается в init\game\initmap.h.

пока карта статическая. но думаю это исправлю вообще изначально была идея вшить статично колличество карт сделать там 3-4 мерный массив но она с каждым разом как ее обдумываю все меньше и меньше мне нравится. (там функции расчитаны на увеличение мерности массива).

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 05:54

XVs писал(а):Обсуждать особо нечего, попробуй сделать генератор уровней?
Прошлый проект застрял на лосе :) думаешь генератор уровней легче лося? :) (я пока не занимался вопросом генерации уровней поэтому сложность не представляю).

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение kipar » 19 апр 2010, 06:08

Делай монстров :)

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

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 06:55

kipar писал(а):Делай монстров :)

Ну и задержка у автоповтора нереально большая. Кстати, а чем тебя виндовая задержка не устроила? Я код еще не смотрел, но если ты обрабатываешь сообщения от клавиатуры, то они же с определенной частотой приходят, зависящей, насколько я знаю, от системных настроек автоповтора.
Клавиатуру обрабатываю через WINAPI`вскую GetKeyboardState.
сообщениями обрабатываются только ALT+F4 для выхода и пока ESC(будет убрано) тоже для выхода ну еще колесико мыши :) хотя мышь может и всю буду через сообщения обрабатывать, но клаву мне никогда не нравилось через сообщения обрабатывать, правда класс тоже значительный получился :) обрабатывающий клавиатуру :) и его еще надо будет оптимизировать и доделывать... он не до конца дописан, планируется еще функционал на него навешать.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 07:46

kipar писал(а):Делай монстров :)

Ну и задержка у автоповтора нереально большая. Кстати, а чем тебя виндовая задержка не устроила? Я код еще не смотрел, но если ты обрабатываешь сообщения от клавиатуры, то они же с определенной частотой приходят, зависящей, насколько я знаю, от системных настроек автоповтора.
Убрал дефолтовые значения, вместо них взял значения из системы :) т.ч. теперь повтор будет примерно с той-же скоростью что и повтор клавиш в винде.
Зато узнал что по настройкам винды максимальная скорость повтора примерно 30 повторов в секунду :)

Аватара пользователя
XVs
Сообщения: 719
Зарегистрирован: 18 янв 2010, 15:46
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение XVs » 19 апр 2010, 10:01

Jesus05 писал(а):Прошлый проект застрял на лосе :) думаешь генератор уровней легче лося? :)
Сложность зависит от того, насколько навороченным ты его решишь сделать, а начинать с него я посоветовал потому что это очень интересно и на готовый генератор уровней интересно потом уже накручивать шмот, монстров, FoV(я думаю, что ты именно его имел в виду, а не ЛоС) и т.п..

Аватара пользователя
BreakMT
WANDER Team
Сообщения: 933
Зарегистрирован: 27 ноя 2006, 12:16

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение BreakMT » 19 апр 2010, 10:16

Зажав alt нажатием 2-х стрелок можно ходить по диагонали (алт+вверх+вправо).
Крутой!
Как же я сам до этого не додумался :|

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 10:50

XVs писал(а):
Jesus05 писал(а):Прошлый проект застрял на лосе :) думаешь генератор уровней легче лося? :)
Сложность зависит от того, насколько навороченным ты его решишь сделать, а начинать с него я посоветовал потому что это очень интересно и на готовый генератор уровней интересно потом уже накручивать шмот, монстров, FoV(я думаю, что ты именно его имел в виду, а не ЛоС) и т.п..
:) у меня плохая Теоритическая подготовка :)
я не понимаю разницы между FOV = Field of view, поле обзора;
и LOS = Line of sight, линией видимости;

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение Jesus05 » 19 апр 2010, 10:54

BreakMT писал(а):
Зажав alt нажатием 2-х стрелок можно ходить по диагонали (алт+вверх+вправо).
Крутой!
Как же я сам до этого не додумался :|
а все равно не удобно получилось... мне не нравится. там в принципе реализовано и без альтов 2 стрелки хождение по диагонали :) тока нажать одновременно 2 стрелки не реально :) все равно одну из них нажмешь быстрее, а мой обработчик клавиатуры не имеет задержки перед использованием клавиш после нажатия (ну может введу).
а с Альтом сделано игнорирование просто стрелок. т.е. при зажатом альте только по диагоналям без альта по прямым.

Аватара пользователя
BreakMT
WANDER Team
Сообщения: 933
Зарегистрирован: 27 ноя 2006, 12:16

Re: То-ли движек ради рогалика... то-ли рогалик ради движка...

Сообщение BreakMT » 19 апр 2010, 11:08

Jesus05 писал(а):
BreakMT писал(а):
Зажав alt нажатием 2-х стрелок можно ходить по диагонали (алт+вверх+вправо).
Крутой!
Как же я сам до этого не додумался :|
а все равно не удобно получилось... мне не нравится. там в принципе реализовано и без альтов 2 стрелки хождение по диагонали :) тока нажать одновременно 2 стрелки не реально :) все равно одну из них нажмешь быстрее, а мой обработчик клавиатуры не имеет задержки перед использованием клавиш после нажатия (ну может введу).
а с Альтом сделано игнорирование просто стрелок. т.е. при зажатом альте только по диагоналям без альта по прямым.
Я так же сейчас сделал, все-равно для ноутбукеров гораздо удобнее, чем искать циферку :)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 44 гостя