Автор Тема: Shining in the Darkness Remake  (Прочитано 8214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Shining in the Darkness Remake
« : 25 Декабрь 2011, 16:02:12 »
Резервирую тему для сообщений о переделке и возрождении игры "Shining in the Darkness" на SMD.


Текущие задачи:

- Сделать в редакторе выбор текстур для поверхностей (сейчас везде дефолтные из первого уровня лабиринта).

- Добавить хотя бы одного монстрика в игру. :)

- Реализовать событие столкновения с монстрами.

Добавлено позже:
Вот небольшое видео.

Построение лабиринта в редакторе: http://www.youtube.com/watch?v=dRHjfomtXwI
Обзор построенного лабиринта (как видно, планы совпадают :)): http://www.youtube.com/watch?v=jh32Adzt6OM&context=C32d4cadADOEgsToPDskJ_S9gVLufdnUU6yqAUpb5f
Та же карта, но с тем освещением, что будет в реальности (чтобы было темно и страшно :)): http://www.youtube.com/watch?v=FIpTpZrP11c&context=C3d7f606ADOEgsToPDskImaRP6nx6TALDiciWsk_bH
« Последнее редактирование: 06 Январь 2012, 10:09:49 от sitdRemake »

Онлайн Lin

  • Пользователь
  • Сообщений: 646
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #1 : 25 Декабрь 2011, 16:05:32 »
Очень хорошо. Классно бы, если портировал потом на разные платформы игру. В частности хотелось бы увидеть на Dreamcast и Nintendo DS.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #2 : 25 Декабрь 2011, 16:41:32 »
пока ничего по сути не сделал, посмотри: unity3d.com. Ато такими темпами через пару лет сделаешь :wacko:

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #3 : 25 Декабрь 2011, 17:12:13 »
sitdRemake, выглядит интригующе. Надеюсь не забьешь посередине и доведешь до конца

Оффлайн TrickZter

  • Пользователь
  • Сообщений: 142
  • I am the bone of my sword.
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #4 : 25 Декабрь 2011, 17:34:07 »
Надеюсь не забьешь посередине и доведешь до конца
Забьёт даже толком не начав.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #5 : 25 Декабрь 2011, 17:38:30 »
Забьёт даже толком не начав.
Не, ну что-нибудь сделает. Только это "что-нибудь" будет, ничем ))). ( с точки зрения полноценной игры).

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #6 : 31 Декабрь 2011, 08:32:57 »
Очень хорошо. Классно бы, если портировал потом на разные платформы игру. В частности хотелось бы увидеть на Dreamcast и Nintendo DS.
Нет, портирования не будет. Будет только на ПК. Да я и не умею писать под вами упомянутые платформы.

пока ничего по сути не сделал, посмотри: unity3d.com. Ато такими темпами через пару лет сделаешь :wacko:
Посмотрел. Не хочется с ним разбираться. Кроме того, хочется именно под WPF сделать, иначе бы я сразу начал с DirectX, OpenGL или этого Юнити. Под WPF хочется с прицелом на Silverlight (а значит, веб и Windows Phone). Однако, в свете возможной скорой смерти Silverlight это уже не так перспективным кажется. Всё же, буду продолжать на WPF. Возможно, посмотрю в сторону XNA.

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


Из текущих задач сделано устранение прохождения сквозь стены - оказалось не так просто, как я думал. Решено заменить управление во время боя с кнопочного на мышевое - так легче и программировать и управлять игроку. Также будет изменён интерфейс. По возможности все доступные меню будут запиханы туда сразу, чтобы не приходилось по пять-семь раз тыкать кнопку, чтобы скастовыть какое-нибудь заклинание. Однако, это немного отойдёт от "духа Shining in the Darkness". Практически, от интерфейса оригинальной игры ничего не останется, кроме пиктограмм магии, предметов и собственно игрового окна. Да и внешний вид (но не структура и наполнение) лабиринта в будущем, скорее всего, изменитя до неузнаваемости.

Сейчас как раз пишу столкновение с монстрами (вероятность при каждом движении, включая повороты - 18% ;)) и создаю первого Слими Уза. :)

Вообще, есть идея привязать вероятность столкновения с монстрами к значению IQ. Ну т. е. если средний айкью у вашей команды сильно больше айкью монстров, то вы с ними почти не будете встречаться (устранение досаждающих столкновений со слабыми монстрами на высоких уровнях персонажей при проходе по старым локациям), и наоборот, если захотите не по уровню взять сундучок на верхнем этаже лабиринта с помощью верёвки, то придётся биться с врагами буквально на каждом шагу. И объяснение простое - старшие враги более умны и с большей вероятностью могут вас поймать, а младшие враги - глупые и их легко избежать. Однако, это приведёт к тому, что полубоссы (кайзеркрабы, хромированные шары и пр. бесконечные полубоссы) будут встречаться с вероятностью где-то под 70-80% на каждом триггерном месте (поворот для кайзеркрабов, длинные коридоры для хромированных шаров и пр.). Вобщем, ещё подумаю над этим.

Кроме того, сделана куча улучшений, исправлений багов, рефакторинга кода (построитель переписывался уже раз десять - каждый раз менялось 20-60% кода). Переделано ориентирование всех геометрических построений из отрицательной оси Z в положительную (мне так удобнее) и соответственно переписан построитель мира.

И да, скорее всего, игра во время работы будет менять скорость повтора нажатий клавишь на максимальную, а при выходе будет возвращать предыдущее значение - иначе не могу пока избавиться от полусекундного "зависания" при начале следующего движения, не совпадающего с предыдущим (т. е., например, при переходе от движения назад к движения вперёд, от вперёд к повороту и т. д.).



И хотел бы попросить у вас объяснить значение параметра IQ у персонажей. Пока нашёл только то, что он влияет на изучение магии (персонажи учат магию не по уровням, а по количество IQ), на магические и "дыхательные" (дыхательное оружие - всякие Tortolide's hot breath и т. п. подобное) сопротивляемости и силу, и на способность сопротивляться разным плохим статусам, типа отравления и пр.:
http://forums.shiningforcecentral.com/viewtopic.php?t=15966

Это всё, что касается IQ? Кто-нибудь знает что-нибудь ещё?

Может кто-нибудь проверить это, установив с помощью какого-нибудь чит-кода для, например, Мило на первом уровне IQ под 200-300? И напишите, что произошло. По идее, у него должны появиться все заклинания.

Ещё просьба достать статусы монстров по части IQ и Luck. Все остальные статы у меня есть, а этих нет. Есть догадка, что таких параметров у монстров нет вообще. Однако, если есть возможность взломать как-нибудь игру и глянуть эти параметры, то буду благодарен вам за информацию об этих параметрах. Ну плюс и вообще все возможные параметры (не только монстров), которые можно узнать не "честными" игровыми возможностями, а с помощью читов и взлома. В частности, хотелось бы узнать механизм появления предметов в Deals у продавцов. Та же Morning Star иногда появляется, а иногда нет. Иначе придётся всё это прописывать самому. :)
« Последнее редактирование: 31 Декабрь 2011, 09:06:26 от sitdRemake »

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #7 : 31 Декабрь 2011, 15:02:01 »
Ох, Римейк, Римейк... Удачи, конечно, но глядя на текущий результат, понимаю, что это надолго.
Если параметров IQ и Luck и нет, то добавить никто не мешает - ты ж сам пишешь, так что воль на выдумку...
А по поводу отрисовки лабиринта - это самое простое из того, что предстоит сделать :)
Вот начнёшь прикручивать события и монстров - тут и начнется переделка всего и вся, в том числе и формата хранения карт. И большая вероятность того, что пока не продумаешь всех нюансов, лабиринт и редактор будут поломаны.
А потом про привязку анимаций вспомни и подумай как хранить. То есть монстры могут юзать магию -> монстры должны знать, какие вообще есть магии -> необходимо иметь список магий -> в списке будут и анимации к каждой магии -> монстров, магию и анимацию нужно как-то объединить, дабы не прописывать каждому монстру одно и то же -> класс монстра будет иметь поля для магии, а те - для анимации (даже в виде номеров можно).

Далее: карта должна знать, какие есть предметы в игре вообще (чтобы не было такого, что перс взял из сундука что-то неизвестное и чтобы в карту не пришлось пихать свойства этого нового предмета. Значит, нужно и предметы пихать куда-то в общую базу, особенно учитывая, что монстры эти предметы могут "ронять"...

В общем, наверное понятно, что я занимаюсь примерно тем же, чем и ты, но немного дольше ;)

А вот встреча монстра только по IQ это не очень - вспомни, всегда в игре можно было нарваться на монстра сильнее тебя и получить от него. Особенно в начале. Сделай, как в покемонах - привязку монстров к карте. В каждой точке будет несколько монстров, которые могут выскочить. А вот какой выскочит - это уже можно и IQ решать.

Плюс, посмотри редактор первого Шайнинга от Рубикса и поймёшь, как организовать данные. Лично я остановился на "файле игры" - что-то вроде БД (на самом деле бинарик с записями о ВСЕХ монстрах, предметах, анимациях, эффектах, портретах и т.д . и т.п.  Тогда твои карты смогут пользовать ресурсы из этого файла, а сами содержать только необходимую инфу о самой карте + номер события (если скриптованием события будешь делать) или захардкоженные события (не советую).

В принципе, готов поделиться идеями, взамен того же ;) Пиши в личку или у меня на хомяке, если что ;)
Удачи и всех с новым годом!!! (Который уже почти наступил ;))
 :drinks: :drinks: :drinks:



Вот пруф, что лабиринт - это быстро)
http://www.youtube.com/watch?v=036pSIyMuyU&feature=youtu.be
Смотреть с 1:00 - обрезать было некогда ;)
« Последнее редактирование: 31 Декабрь 2011, 16:40:44 от Чайман »

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #8 : 31 Декабрь 2011, 16:47:27 »
Так, нашёл библиотеку для C#, аналогичную плагинам hqx http://code.google.com/p/hqx-sharp/
Теперь буду текстурки монстров и прочего в шестнадцатикратном размере (см. вложения ниже)!

Добавлено позже:
Чайман
Насчёт хранения карт - пока обычный текстовик, включая привязки событий к клеткам. Так же и библиотеки монстров, предметов и прочего. Текстуры и изображения - в виде картинок в папках. При загрузке игры всё это будет считываться и инициализироваться. Пока так проще, чтобы не разрабатывать схему, как в бинарнике всё хранить, и тем более не создавать базу данных на полноценной СУБД. Более того, можно будет руками править текстовики и подменять текстуры в папках. В принципе, на это и рассчитано поначалу - минимизировать сложность как создания, так и редактирования ресурсов. Соответствие предметов, анимаций, монстров и прочего скорее всего будет либо по номерам, либо по названиям.

Кроме того, те же анимации буду, наверное, хранить в XAML (текстовик) и при загрузке игры парсить его (вся инфраструктура для этого уже есть в .NET Framework), так что даже анимации можно будет в текстовике редактировать.

Вообще, идея этакой текстовой "базы данных" неплоха, на мой взгляд. Такое же было, по-моему, в ПК играх C&C:Tiberian Sun и RED Alert 2 - именно поэтому к ним наклепали кучи радеаторов, что формат данных там был проще некуда. Тем более, что данных немного и всё это загрузится очень быстро при старте игры. Карта 30х30 будет весить примерно 100 кБ. Это, конечно, не тот уровень сжатия, что в бинарнике SMD, но всё же я не гонюсь за демосценой - мне до них как до Луны.

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

Насчёт магии задумка вообще грандиозная (для уровня SMD, конечно :)). Например, думаю прикрутить к той же магии Freeze к каждой снежинке свой источник света, так что эффект освещения будет не простым миганием фона, как в оригинале, а сама магия будет его создавать - т. е. будут блики на стенах гулять под свет магии. По крайней мере, так в голове у меня крутится всё это.
« Последнее редактирование: 31 Декабрь 2011, 17:12:05 от sitdRemake »

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #9 : 01 Январь 2012, 15:58:01 »
и тем более не создавать базу данных на полноценной СУБД.
БОЖЕ упаси использовать в игре реальную СУБД))

Соответствие предметов, анимаций, монстров и прочего скорее всего будет либо по номерам, либо по названиям.
То есть если один человек добавит монстра с номером 3, и второй сделает тоже, то два монстра будут "конфликтовать"? В смысле, вот кто-нить сделает более-менее полноценную игру, а потом выяснится, что кто-то сделал ещё одну хорошую версию. И для обьединения наработок прийдется перенумеровывать всех монстров, эффекты и т.д.?  Хотя, если подобное совмещение "встроить" в редактор, то очень даже мб :)

А по поводу того, что все ресурсы - внешние файлы и отдельно будут храниться - это не важно. Важно, чтобы людям руками не пришлось потом править эти самые текстовые конфиги. Это ж прочитать надо, что написано, понять, и заменить своим по смыслу :lol:

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

Ещё раз удачи! :)

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #10 : 06 Январь 2012, 11:54:07 »
На данный момент разобрался с сортировкой прозрачных моделей. Без этой сортировки всё выглядело так, как в изображении во вложении (сейчас уже всё нормально :) - эта картинка из тестов) - т. е. монстры спереди закрывали своей прозрачной частью монстров сзади. Ибо WPF не умеет смешивать полупрозрачные треугольники в произвольном порядке - ему этот порядок надо задать. (Кто-нибудь может сказать, как получать прямую ссылку на картинку не тогда, когда она будет загружена через вложение, а во время редактирования поста? И ещё чтобы не использовать сторонние хостинги картинок.) Ну и так как у меня плоские модели, то можно было ограничиться не сортировкой десятков тысяч треугольников, а всего лишь сортировкой моделей (одна стена - одна модель, один монстр - одна модель). Ещё, кстати, надо будет поработать над тем, чтобы объединить модели с одинаковыми текстурами в одну - чего-то там в МСДН пишут, что так производительность лучше будет. Но это потом. У меня для производительности прорисовка ограничена радиусом в 6-7 клеток лабиринта. Да и дальше "факел" игрока не достаёт.

Кстати, в игре, похоже, никакой трёхмерки нету. Ну или там на каждый кадр своя текстура для стены. Вобщем, освещение там - просто заранее подготовленная текстура. У меня же освещение реальное, так что эффект жёлтого пятна на стене, когда стоишь к ней вплотную, получается "бесплатно". Ну так вот, факел игрока светит на расстояние где-то 5-6 клеток с квадратичным затуханием. Ну а ещё плюс "бесплатного" освещения в том, что факелы на стенах, которые в оригинале были просто спрайтами, будут трёхмерными и также давать естественный свет (прикручу к ним свои источники света). Так что можно будет издалека их увидеть - картинка будет гораздо интереснее, чем в оригинале.

Пришлось попотеть, чтобы монстрики появлялись на случайном месте, но ИМЕННО НА КЛЕТКЕ СПЕРЕДИ. Т. е. не будет такого, как в оригинале, когда монтры появлялись прямо на той клекте, где стоял игрок, так что можно было драться даже повернувшись вплотную к стене. Ещё, кстати, там такая выходка в и гре, что когда игрок поворачивается, то он находится в центре клетки, а когда стоят прямо, то его отодвигает немного назад. Именно поэтому при утыкании в стену виден пол и потолок и монстры могут напасть и прямо у стены. У меня монстры смогут напасть только если спереди игрока есть свободная клетка.

Так как каждый монстр - прямоугольник из кучи полигонов с текстурой, то пришлось на каждую ориентацию игрока прописать эту ориентацию прямоугольников.

Остался один баг - из-за случайного места появления монстра на клетке, эти монстры могут налепиться в кучу - т. е. один почти на месте другого. Как это обойти пока не придумал, ибо простое "расталкивание" не поможет - надо учитывать мой алгоритм построения прямоугольников этих монстров и их размещение в зависимости от ориентации игрока (в какую сторону повёрнут). Что-нибудь попозде придумаю, может быть. Игре это не мешает.

Теперь работаю над редактором монстров и дорабатываю редактор карт по части выбора набора монстров, которые будут появляться в каждой клетке.

Из-за особенностей обработки всей трёхмерной модели в WPF, похоже, что полупрозрачных стен (типа стёкол, которые я хотел ввести) или не будет, или будет очень мало (одна-две-три на уровень). Все полупрозрачные объекты приходится сортировать (т. е. либо менять их координаты, либо удалять их и создавать их же, но уже на новом месте) по удалённости от точки обзора камерой игрока, а т. к. эта камера постоянно в разных местах, то придётся сложный алгоритм выдумывать, да и сортировка будет время отнимать. А полупрозрачные стены в SitD - это как минимум решётка, тестура которой должна иметь прозрачные области между прутьями.



Кстати, я не знал, что Cell Key может открывать бронзовую дверь.



HQx алгоритмы решил перенести из игры в редактор, т. к. они ресурсоёмки и лучше "укрупнять" текстуры при создании карты и монстров в редакторе, чем в реальном времени в игре. Т. е. в редакторе нужно будет выбрать текстуру с маленьким разрешением, а редактор сам уже укрупнит её и положит в игру с большим разрешением. Игра же будет загружать уже готовую текстуру без всякой обработки.

Добавлено позже:
Вот пруф, что лабиринт - это быстро)
http://www.youtube.com/watch?v=036pSIyMuyU&feature=youtu.be
Смотреть с 1:00 - обрезать было некогда ;)
Я бы там не спешил с выводами. У вас лабиринт просто в 3Д-редакторе нарисован (Блендер, Макс) или генерируется на лету по какому-то алгоритму? У меня генерирование всей модели уровня идёт от уровня вершин, треугольников, нормалей, направлений обхода (для обозначения внутренних и внешних поверхности треугольников), расстановки источников света и текстурирования - т. е. я не рисую в Блендере лабиринт по готовым кирпичикам. Чего я не делаю, так это не рендерю модель - это делает WPF и Direct3D за меня.

Естественно, если у вас есть готовые библиотеки отрисовки трёхмерных тайлов (у меня тайлы - это стены, потом на уровень выше идут клетки из шести стен), как я для себя написал, например, то процесс дальше идёт быстро. Но эти библиотеки надо же ещё написать и отладить.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #11 : 06 Январь 2012, 12:13:44 »
да сгенерить лабиринт по такой схеме которая у тебя в редакторе - сможет школьник занимающийся программированием.

Оффлайн -Chaolan-

  • Пользователь
  • Сообщений: 98
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #12 : 06 Январь 2012, 12:34:44 »
А мне некогда не нравилась эта часть Шайнинг'а...возможно потому что я фанат 2й части :)
и все равно удачи с ремейком

Оффлайн Lomax

  • Ушел с форума
  • Сообщений: 3191
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #13 : 06 Январь 2012, 13:05:58 »
Дык это и не часть тактической rpg) это другая серия игр, хоть и под одной вселенной. А игра хороша, я почти прошел, доходил до последнего этажа, и там заплутал))) Продолжение на Сатурн тоже очень понравилось, я тоже ее недопроходил, сложная

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #14 : 06 Январь 2012, 23:05:07 »
Цитата
У вас лабиринт просто в 3Д-редакторе нарисован
...
т. е. я не рисую в Блендере лабиринт по готовым кирпичикам.
С чего такие утверждения? Просто "обосрать"? Тогда фи на вас, для этого у нас апельсинка на форуме есть - вроде и обосрёт, а всё ж по делу и поделом, как ни крути (хотя мог бы и промолчать иногда).
...
Да и никто в блендере и не рисует <_<
В блендере сделаны лишь блоки  - угловой, туннелем, развилка и только с потолком и полом. А потом всё это просто подгружается и собирается в зависимости от наличия прохода в соседних ячейках.
Кто-то просто не стал заморачиваться и спрашивать "а как?", но вместо этого сделал неверное предположение.
Можно подумать я знаю как именно происходит загрузка молели или вывод её на экран в выбранном мною движке - я только позицию элементу назначаю и поворачиваю на нужный угол. Всё.  А вот захочет кто СВОЙ блок вставить - да хоть с решеткой, хоть с чем - сделал модельку и всё. Хоть трубы канализационные рисуй. А вот учёт
Цитата
...уровня вершин, треугольников, нормалей, направлений обхода...
- всё это для несведующих сложно и непонятно, да и отталкивает. Ближе надо быть к тем, для кого редактор делается. (Спасибо Кэпу)

ЗЫ: А школьников таких раз-два и обчёлся в каждом заведении (спорить бесполезно, ибо в приёмной комиссии работал, БД вёл с недоучками:( ).
« Последнее редактирование: 06 Январь 2012, 23:10:14 от Чайман »

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #15 : 07 Январь 2012, 00:32:14 »
А школьников таких раз-два и обчёлся в каждом заведении
Просто никто не занимается.

Как стену поставить - да легко!)
1) 4 вершины разные поставить - каждый сможет.
2) на два треугольника можно разбить после этого после первого же запуска и увидив косяк
3) нормаль можно и посчитать )
4) если нормаль не туда, получилась, значит порядок обхода треугольника не тот

осталось определить где нужно стены поставить - а это просто две смежные клетки должны быть "разными" (стена / пустота).
текстурные координаты тоже не надо много ума сбацать.

Вот я понимаю не каждый сможет сгенерить icosahedron sphere

ибо это мозговынос.

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #16 : 07 Январь 2012, 02:18:00 »
Цитата
Просто никто не занимается.
И это тоже. Хотя те, кто занимаются легко обходят соперников из ВУЗов на олимпиадах - наблюдал воочию :)

Цитата
ибо это мозговынос.
И вот этот "мозговынос" очень легко делается, если пользовать модельку, сделанную в 3д редакторе заранее - всё равно у товарища текстуры отдельно лежат. Тогда и с решёткой проблем не будет. Ну, хочешь плоскую - пусть будет плоская, не суть, ресурсов жрать меньше будет, а объём текстурами домутить (вспоминаю PS Generations). 
Но можно, конечно и повыносить мозг, пытаясь на чистом директиксе или опенджеэле сворганить, но так точно тридцать лет и три года будешь делать ;)  Да и всё-таки не демка для сцены, а игрушка создается. Хотя, есть кригер...
О! Пусть еще и текстуры генерятся кодом при старте игры!  :jumpy:

И напоследок... Пусть мну простят за непробиваемость, но вот ей богу чаю не пойму, зачем пользовать движок, если всё равно по точкам строить плоскости приходится? :?

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #17 : 07 Январь 2012, 10:20:09 »
Вот я понимаю не каждый сможет сгенерить icosahedron sphere
Выделил ключевое слово.

О! Пусть еще и текстуры генерятся кодом при старте игры!  :jumpy:
Используют, и называется это "процедурные текстуры". Кроме того, часто шрифт в игре на OpenGL или DirectX - это сгенерированные текстуры из системных шрифтов.

И напоследок... Пусть мну простят за непробиваемость, но вот ей богу чаю не пойму, зачем пользовать движок, если всё равно по точкам строить плоскости приходится? :?
Ну, движок не только треугольники подгружает (массивы вершин, индексов), но и прозводит очень ДОФИГА всякого разного менеджмента: подгрузка выгрузка текстур, выбор порядка в котором рендерить (это очень важно например когда используешь прозрачные объекты), и прочее.

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #18 : 07 Январь 2012, 13:13:22 »
Цитата
Выделил ключевое слово.
Собственно никогда не спорил и даже написал об этом, имея ввиду, что там, где мозговынос начинается, можно и модельки использовать, а не упорствовать. Может просто непонятно написал? Так это у меня бывает :lol:

Цитата
Используют ... шрифтов.
Я в общем в курсе, что это такое. И про шрифты тоже. Более того, именно такие у меня шрифты по началу были везде. Потом встал вопрос "красивости" и для заставок был нарисован свой шрифт, а для текста оставлен сгенеренный.

Цитата
прозводит очень ДОФИГА всякого разного менеджмента
Истину глаголишь, но:
Цитата
генерирование всей модели уровня идёт от уровня вершин, треугольников, нормалей, направлений обхода (для обозначения внутренних и внешних поверхности треугольников), расстановки источников света и текстурирования
- т.е. человек САМ занимается тем, что делал бы за него движок. Ну как еще написать, чтоб суть моих постов увидели?
Или я опять не так понял?
Просто если за меня это делает движок, то я, например, вообще нигде не буду упоминать те вещи, которые делает движок, а напишу так, как написал - беру блоки и "кручу-верчу, комп повесить хочу". Ибо как не крути, а движок-то, как раз, мои модельки по вершинам и строит, после загрузки из файла, заботясь об обходе и текстурировании и хрен еще знает чем. Я же ему только картинку текстуры скармливаю, подгружая чем-то вроде Texture.Image.LoadFromFile(и тут имя файла). Или вообще ничего не скармливаю - сам знает, где брать, т.к. в модели относительный путь прописан.

r57shell, то что ты в игростроении шаришь, я не сомневаюсь. Мне интересно ответ sitdRemake услышать по поводу движка и того, зачем он занимается рутиной, которой должен заниматься движок?  :-\

Убрался восвояси, покуда тема не скатилась во флейм.

Go! Go! Jet!
Go! Go! Car! Remake!
« Последнее редактирование: 07 Январь 2012, 13:18:21 от Чайман »

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #19 : 07 Январь 2012, 20:48:10 »
С чего такие утверждения? Просто "обосрать"?
Да неее, я же спросил.
В блендере сделаны лишь блоки  - угловой, туннелем, развилка и только с потолком и полом. А потом всё это просто подгружается и собирается в зависимости от наличия прохода в соседних ячейках.
Ну вот и отличие - у меня начиная от вершин и полигонов всё собирается, плюс текстурирование ("маппинг") "ручками" (все координаты точек текстуры рассчитываются программно), а у вас - с готовых "кубиков". Всё же, мой уровень немного пониже будет. Тут можно поспорить, а нужен ли такой уровень глубокий и не проще ли грузить готовые модельки. Возможно, ответ в том, что я просто не знаю так хорошо Блендер, а другие программы 3Д-моделирования вообще не знаю. В Блендере я сделал всего лишь развёртку сферы для панорамного сферического видео для WPF и больше с ним не работал.
Цитата
А вот захочет кто СВОЙ блок вставить - да хоть с решеткой, хоть с чем - сделал модельку и всё. Хоть трубы канализационные рисуй. А вот учёт
Цитата
...уровня вершин, треугольников, нормалей, направлений обхода...
 - всё это для несведующих сложно и непонятно, да и отталкивает. Ближе надо быть к тем, для кого редактор делается.
Да, всё же, другие, более сложные модели, я буду делать в Блендере. А чужие модели должны будут вставляться из внешних файлов. Но я вообще думал, что другие будут только текстуры на моих стенах менять, а не прямо кубики, из которых стены сделаны. Пока именно такой функционал и замышляю. С заменой моделей - это надо в движке или редакторе контроль делать этих моделей. Понимаете, я тут со всякими байндингами и самосообщающими о своих изменениях коллекциями запутался при построении простого редактора с текстом и циферками (то, что пользователь вводить будет) и валидацией этого же текста, а как заморочиться придётся с валидацией трёхмерных моделей - это вообще призадуматься заставляет. Так что вставка своих моделей пока отменяется у меня.
Цитата
2) на два треугольника можно разбить после этого после первого же запуска и увидив косяк
У меня не два треугольника. У меня разрешение в треугольниках задаётся произвольным. Это нужно из-за особенности обработки освещения в WPF. Оно у него вершинное, никакого попиксельного нету. Так что два треугольника дают отвратную картинку. Опытным путём было установлено, что мне надо 16 квадратов (каждый из двух треугольников) по каждой стороне. Итого на одну стенку (16*2)^2 = 1024 треугольника.

Я понимаю, что ничего хорошего в этом нет и хвалиться не стоит, но вот из-за такой особенности WPF мне приходится это делать. Но я бы не сказал, что прямо всё плохо - научился создавать универсальные алгоритмы для построения одной стены для произвольного количества треугольников. Просто хорошенько поработал с циклами. )  Ну вот, например, построение стенки:

  

Вот текстурирование:


Согласен, практического смысла, особенно для конечного пользователя, немного. Но зато голову поломал в своё удовольствие. )

Цитата
осталось определить где нужно стены поставить - а это просто две смежные клетки должны быть "разными" (стена / пустота).
Неверно. Вы всё упрощаете. А если проход по толщине больше, чем одна клетка? А если это одна гигантская комната? У меня всё это обработано - смотрите первое видео про редактор. У меня могут быть любые по толщине коридоры, с базовой (минимальной) толщиной - одна клетка.

Цитата
И напоследок... Пусть мну простят за непробиваемость, но вот ей богу чаю не пойму, зачем пользовать движок, если всё равно по точкам строить плоскости приходится?
Из всего движка в WPF только рендерер - т. е. он готовую модель проецирует на некоторое плоское представление и больше ничего сам не делает. Фактически, движок создаю я, а рендерер использую готовый. Да и то, те же шейдеры сам для себя пишешь, ибо готовых ещё найти надо. Кстати, зачем всё же нужен WPF:
Цитата
If you have experience programming with some other 3D API such as OpenGL or Direct3D (upon which WPF is built, by the way), you are probably accustomed to thinking of 3D stuff as very distinct from other stuff.  Simple things like getting a 3D graphic to appear in the same window next to a listbox can require all kinds of gymnastics.  WPF doesn't have those sorts of boundaries.  If you want to put an animated 3D scene as the graphic for a toolbar button, you can.
http://www.ericsink.com/wpf3d/3_Bitmap.html

Ну т. е. трёхмерка на заднем плане какой-нибудь кнопки, или ваш ваш обычный "офисный" интерфейс с кнопками, списками и гридами, но замапенный на изогнутую трёхмерную поверхность? Причём замапенный не просто картинкой, а когда всё работает - нажимается, редактируется и вообще всё? - В WPF это игрушки. Достаточно глянуть видео на Ютубе.
« Последнее редактирование: 07 Январь 2012, 20:51:26 от sitdRemake »

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #20 : 07 Январь 2012, 23:07:36 »
осталось определить где нужно стены поставить - а это просто две смежные клетки должны быть "разными" (стена / пустота).
Может это я так плохо выражаюсь, но это следует читать вот так:
"Осталось определить, где нужно стены поставить.
Как же это сделать?
А просто!
Две смежные клетки должны быть "разными" (стена / пустота)
Это и есть условие, что между двумя клетками - стена."
А куда она смотрит, и прочий stuff - уже был описан выше.
Если не согласен с этим алгоритмом, то найди хоть одну стену, которую ты ставишь между одинаковыми клетками, или наоборот, где между разными клетками, ты не ставишь стену. Такое определение местоположения стен, позволяет генерировать твои большие комнаты.

Но нынче, меня например не возбуждают "клеточные" локации. Темболее когда есть возможности, сделать и сломанные стены, и дырки и окна и прочее.

Оно у него вершинное, никакого попиксельного нету. Так что два треугольника дают отвратную картинку. Опытным путём было установлено, что мне надо 16 квадратов (каждый из двух треугольников) по каждой стороне. Итого на одну стенку (16*2)^2 = 1024 треугольника.
Выкинуть сразу на помойку такой движок, когда на плоскую хрень нужно потратить 1024 треугольников.

Но зато голову поломал в своё удовольствие. )
Не буду спрашивать неудобные вопросы, сразу отвечу
1) если лет >20 то я бы сразу уволил за такое развлечение: геморой извлекать из воздуха )))))))
2) если <=20 то правильно, набивай шышки, пока наконец не захочешь поменьше думать.

Оффлайн edgbla

  • Пользователь
  • Сообщений: 503
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #21 : 08 Январь 2012, 14:14:46 »
Хех, какие злые люди, да пусть делает как делается, для нынешних видюшек 1024 полика на стену это нет ничто... зато освещение.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #22 : 08 Январь 2012, 14:20:41 »
для нынешних видюх, на плоскую стену больше одного полика не надо.
и будет он выглядеть вот так

Оффлайн edgbla

  • Пользователь
  • Сообщений: 503
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #23 : 08 Январь 2012, 14:27:29 »
Во-первых жутко ненавижу эти "мокрые" стены, лажа.
Во-вторых что-то не особо я тут освещение вижу, так, бликает что-то.
Незачёт. :)

P.S.
Да и рисовать 1024 полика не обязательно в одну плоскость.. ничто не мешает там нагенерить неровности стены...
« Последнее редактирование: 08 Январь 2012, 14:32:54 от edgbla »

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #24 : 08 Январь 2012, 14:35:58 »
такую жесть можно нарисовать одним поликом:

Оффлайн sitdRemake

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #25 : 08 Январь 2012, 19:07:46 »
Ребята, я понимаю, что вы приверженцы всего самого ультранового и современного, но в WPF по дефолту только Гуро - никакого Фонга и бамп-текстурирования нету. Если программист сможет сам это как-то прикрутить (не факт ещё, что это возможно), то пожалуйста, как говорится. А для Гуро единственный выход - множить треугольники.

Цитата
Да и рисовать 1024 полика не обязательно в одну плоскость.. ничто не мешает там нагенерить неровности стены...

Спасибо, кстати, за наводку. Хотя, для 32 треугольников на линию этого мало для имитации неровностей, чтобы вписаться в рисунок текстуры, которая у меня есть, но в принципе, если задействовать обрезку дальности прорисовки, то у меня вполне и с несколькими десятками тысяч полигонов на стенку работает, если на весь экран не разворачивать. Я проверял - мой компьютер (класса лоу-энд) тянет один-два миллиона освещённых и текстурированных треугольников при где-то 20 кадрах в секунду на этом самом WPF.

Цитата
Может это я так плохо выражаюсь, но это следует читать вот так:
"Осталось определить, где нужно стены поставить.
Как же это сделать?
А просто!
Две смежные клетки должны быть "разными" (стена / пустота)
Это и есть условие, что между двумя клетками - стена."

Хмм, посмотрел щас свои алгоритмы - да, у меня примерно так и делает. Этот код я не видел полмесяца всего, а уже подзабыл, чего там и как.

Цитата
Выкинуть сразу на помойку такой движок, когда на плоскую хрень нужно потратить 1024 треугольников.

Только для "непараллельного" освещения, т. е. для всяких точечных и направленных конусных источников. Для рассеянного и направленного параллельного можно и двумя треугольниками обойтись.

Как я сказал, я больше ничего не знаю - никаких Юнити и Опен Джи Элей. Я читал, что WPF не для игр, но я хочу попробовать.

Добавлено позже:
Цитата
1) если лет >20 то я бы сразу уволил за такое развлечение: геморой извлекать из воздуха )))))))
Могу только перефразировать товарища Сталина:
"Товарищ r57shell, если вы будете увольнять всех, кто допускает малейшую оплошность, то с кем вы будете работать?" ))

Оффлайн edgbla

  • Пользователь
  • Сообщений: 503
    • Просмотр профиля
Re: Shining in the Darkness Remake
« Ответ #26 : 08 Январь 2012, 19:43:50 »
sitdRemake,
да не обращай внимания, в одиночку в этой плоскости можно делать три вещи:
* вечно писать двиг;
* вечно писать инструменты;
* вечно писать игру;
так что лучше сконцентрировать все силы на последнем, чтобы добиться хоть какого-то результата.))
С прозрачностью неясно что за проблемы, сначала рисуй все непрозрачные, потом отсортируй прозрачные и рисуй, детский садик же.))