Strange Wood

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

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

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 25 июн 2007, 14:00

19.06.07
Продолжаю делать предметы. Сейчас делаю рисование предметов на карте. Хочу сделать, чтобы была прозрачность. Пока не хочет рисоваться правильно. Затык с прозрачностью вокруг предметов. Все-таки если предметов несколько, то сквозь верхние должно быть видно нижние.

Стандартная дельфовая фиговина с прозрачностью нифига не работает. Заработало. Достаточно было включить в свойствах формы опцию TransparentMode.

Теперь надо перепахать отрисовку карты, чтобы всегда в качестве подложки рисовался некоторый тайл.
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 25 июн 2007, 14:00

21/06/07
Набросал примерную схему, что надо сделать с предметами. Получается примерно следующая структура:
1) предметы на карте (размещение по 1 предмету, несколько однотипных, несколько разнотипных)
2) предметы в инвентаре (просмотр, сортировка)
3а) подбирание предмета (проверка наличия предмета в ячейке карты, сколько предметов брать, добавление в инвентарь с проверкой на переполнение, убирание с карты)
3б) бросание предметов (выбор в инвентаре, сколько бросать, убрать из инвентаря, добавить на карту, проверить ячейку карты на предметы того же типа)
4) надевание и снятие предметов (проверить слот, надеть, пересчитать характеристики)
5) производство (сбор ресурсов, инструменты, станки, время на изготовление)

Еще одна мысль, пришедшая в голову, касается идентификаторов всех объектов в игре. Пусть все объекты хранятся в конфиг-файлах, причем для каждого прописан его ИД. В то же время ссылки на объекты задаются именами. Например, для предметов материал задается названием, а не идентификатором. Аналогично при описании процедуры изготовления предмета все сырье, инструменты и материалы задаются названиями. При загрузке игры эти названия во внутриигровых структурах заменяются идентификаторами. Но тогда при использовании такой схемы придется и в сохраненных играх хранить названия, а не ИД. Кроме того, становится критичным порядок загрузки описаний при старте. В частности, если загружается предмет, уже должен быть загружен соответствующий материал. Сильно напоминает БД. Пока в ближайшее время переходить не планирую. Но как вариант можно будет рассмотреть потом.
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 25 июн 2007, 14:01

22/06/07
Начал делать предметы, а в результате делаю глифы. Перестраиваю систему изображений для упрощения добавления новых или замены имеющихся глифов. В результате программа перестала работать.

Разобрался, почему не работала. В ИНИ-файле записались чрезмерно большие значения. Видимо, во время одного из сбоев некорректная информация затерла переменные, и они записались. Надо бы добавить систему проверки корректности и допустимости входных данных.

Сейчас размышляю, стоит ли все объекты на карте делать предметами. То есть например в UrW дерево можно было срубить, и на его месте оставалась равнина. Самих типов территории там немного. Я насчитал следующие: равнина, холмы, горы, болото, вода(озера). А все остальное (деревья, постройки, ловушки и т.д.) делается как предметы, только не перемещаемые. Как вариант можно сделать 2 слоя (или 2 поля в каждом тайле карты) - для подложки, и того, что на тайле находится. То есть это получается не предмет в чистом виде, а дополнительный атрибут ячейки карты. Тогда таким же способом можно сделать станки для работы. При создании станка указывается где он будет расположен.

Все-таки наверное сделаю это тайлом карты. Тогда надо будет реализовать процедуру изменения тайла (тот самый пример с деревом).
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 25 июн 2007, 14:01

23/06/07
Теперь карта рисуется почти нормально. Изменил тайлы, для всех тайлов карты добавил фон ровной местности. Теперь почти все рисуется нормально (кроме самого героя).

При рисовании героя выводится не нижележащий тайл карты, а то, что находится за формой игры. Надо с этим что-то делать. Сменить процедуру вывода прозрачных спрайтов? Сейчас у меня это сделано по-точечно. Жутко медленно. Надо переделывать. Пока саму систему менять не буду. Сначала реализую предметы на карте, затем буду переделывать вывод на экран. Может быть SDL или DirectX.
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 25 июн 2007, 14:02

25/06/07
Убрал из формы флаг прозрачности. Пока прозрачность делать не буду.

Сейчас первоочередная задача - сделать размещение предметов на карте и их отрисовку. Попутно в голове крутится мысль, как упростить поиск нужного предмета в массиве. Пришла в голову такая идея: при подбирании предмета с карты указыается клетка в виде координат X,Y. Эти координаты обрабатываются хэш-функцией для получения индекса массива. При таком подходе поиск будет очень быстрый. Вот только пока непонятно, как лучше задавать размер массива предметов на карте. Естественно, хочется прозвольный размер массива.

Предметы на карте рисуются, только неправильно. Вероятнее всего, проблемы с реализацией отрисовки в паинтере. Надо еще проверить, как они разбрасываются по карте. Вроде разбрасываются правильно. Осталось разобраться, почему при отрисовке карты после скроллинга эти предметы съезжают. Тоже видимо паинтер. Надо переработать паинтер. Выделить четко методы для рисования каждого игрового объекта. Плюс разделить координаты экранные и координаты игровые. По-моему, где то они путаются.

Поправил отрисовку предметов на карте. Теперь надо сделать, чтобы они правильно разбрасывались. Сейчас они сосредоточены практически только в верхней части карты.

Следующий шаг - инвентарь героя, а также подбирание и бросание предметов. Надевание и снятие делать пока не буду, оставлю на попозже.

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

Работает подбирание предмета с карты. Надо делать просмотр инвентаря, чтобы сделать бросание предмета. По логике - нажимаем клавишу бросания, открывается инвентарь, выбираем бросаемое, удаляем из инвентаря, добавляем на карту под героем.
Первая заповедь фотолюбителя: Проявил себя - закрепи!

v0l0sat1y
Сообщения: 59
Зарегистрирован: 11 мар 2007, 13:21
Откуда: Беларусь, Минск
Контактная информация:

Сообщение v0l0sat1y » 26 июн 2007, 17:40

Эээ...
Я конечно все понимаю, но можно где-нить дему увидеть?
А то сомневаюсь, что кто-то будет еще год читать твои логи до первой альфы ))

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 26 июн 2007, 18:24

Не нравится - не читай :)
Айв кнгенгах Йог-Сотот

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 27 июн 2007, 03:03

v0l0sat1y писал(а):Эээ...
Я конечно все понимаю, но можно где-нить дему увидеть?
А то сомневаюсь, что кто-то будет еще год читать твои логи до первой альфы ))
Как только будет что-то минимально играбельное - обязательно выложу.
В минимум входит герой с работающим инвентарем. То есть осталось уже недолго. Надеюсь к концу лета уже выложу :roll:
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 27 июн 2007, 05:06

Ээээ, ты что, инвентарь всё лето делать будешь?!
Айв кнгенгах Йог-Сотот

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 27 июн 2007, 05:30

Maelstrom писал(а):Ээээ, ты что, инвентарь всё лето делать будешь?!
Не знаю. :oops:
Это предельный срок, вероятнее сделаю раньше (в идеале - на этой неделе)

:?: Кстати: подскажите, куда можно выложить?
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 27 июн 2007, 06:03

rapidshare.ru
да и вообще так файловых серверов выше круши
Айв кнгенгах Йог-Сотот

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 27 июн 2007, 07:45

Выложил
http://www.rapidshare.ru/327479

Но рапида вроде бы не позволяет скачивать одновременно в 2-3 потока? Значит, на весь универ, идущий через проксю, можно только одну закачку?
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 27 июн 2007, 08:25

Если делаешь движение на основе wasd, то S - это вниз. а X - пропуск хода.

И скролл как-то странно работает. Лучше бы всё таки постоянное центрирование сделал.
Айв кнгенгах Йог-Сотот

Dmiry
Сообщения: 168
Зарегистрирован: 14 июн 2007, 10:32

Сообщение Dmiry » 27 июн 2007, 08:46

Maelstrom писал(а):Если делаешь движение на основе wasd, то S - это вниз. а X - пропуск хода.
Пишу в основном на ноуте, там цифровой клавы нет. При твоей схеме как делать диагональное перемещение? Вообще в программе заложена возможность настройки клавиш управления.
Maelstrom писал(а):И скролл как-то странно работает. Лучше бы всё таки постоянное центрирование сделал.
Скролл мне самому не очень нравится. С постоянным еще не уверен в необходимости, но в общих чертах как это поправить - представляю.
Первая заповедь фотолюбителя: Проявил себя - закрепи!

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 27 июн 2007, 08:50

При твоей схеме как делать диагональное перемещение?
А оно то тут причём? Оставь такое, как есть. А вот S и X поменяй местами.
Айв кнгенгах Йог-Сотот

Ответить

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

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