![]() |
JS4 - мой проект
Задумал оч.давно 2Д игру,в которой суть прохождения - разрушение. До того были попытки написать на Blitz3D, но провалились (больно медленный).
Сейчас пишу на C++ и B3D SDK, ибо в нем проще всего работать с 2Д картинками, а гемориться с выбором движка не хочется. В общем, что готово: Уровень - картинка. Но! 1) Матрица цветов - следит за реальным состоянием картинки, для отброса лишних ReadPixel из картинки 2) Матрица нормалей - на экзамене по дис.мату я осознал как найти нормаль к растру в точке M(X,Y) , но дисмат так и не сдал :( Итого - движущиеся по необъяснимым физическим законам, довольно приближенным к реальности, системы частиц. Не тормозит, пока что. В будущем попробую сделать физику изолированных кусков вещества (отдельные куски будут падать). Взрывы, стрельба, мины, лопата - основное оружие + смекалка и скрытность - враги очень сильно вооружены! И победить можно только закопав правильно мину, или подкопав гору, которая упадет и раздавит людишек внизу :-D PS явно в рамки конкурса не уложусь, но хотя бы движение и немного геймплея будет) |
Ответ: JS4 - мой проект
Это что то типа "МужЫка" (если кто помнит :-D)
|
Ответ: JS4 - мой проект
А он будет скрываться?
|
Ответ: JS4 - мой проект
Он должен скрываться...
|
Ответ: JS4 - мой проект
Из за ненайденного глюка с Illegal Buffer Coordinate(хотя координаты для записи пиксела тщательно проверяются), не могу сделать взрывы. Это печально:(
ПРидумал неплохой элемент для атмосферности - по небу будет летать слонышко, и карта, соответственно, будет постоянно перерисовываться с учетом освещения. Подумаю даже насчет бликов. О да, можно даже несколько источников света запилить...Тени здесь сделать невозможно, но они и не нужны :-D В общем, сейчас идет работа над красивой картинкой :) PS: ~1000 партиклов без тормозов летают и отражаются по поверхности) и это на моем полукомпе :-D |
Ответ: JS4 - мой проект
Небольшой скрин, без разрушений, но с упавшими частицами и солнышком :)
|
Ответ: JS4 - мой проект
почему "JS4"?
или название "мой проект"? |
Ответ: JS4 - мой проект
Jam Session 4.
|
Ответ: JS4 - мой проект
Стандартный фотошопный шейп на месте солнышка вызывает отвращение. Сделай лучше просто круг с полупрозрачными краями.
|
Ответ: JS4 - мой проект
это блиц, ничего не могу поделать:(
PS а от освещения придется отказаться - от всего тени я отбрасывать не смогу, получится ужасно, поэтому уже выпилил. Простые paint-уровни, с программными контурами на всем, я думаю, создадут нужный стиль. + вода в планах. |
Ответ: JS4 - мой проект
Кривое взрывание земли - сделано
Баги с Illegal Buffer Coordinate - сам виноват, пофиксил Оптимизирована физика частиц (спасибо МоКе:))теперь они отражаются не по законам синих слонов:-D темная бэк-картинка - сделано. Осталось замутить что-то типа стека, который раз в 30 кадров или при переполнении записывает пикселы, вставшие в очередь, обсчитывает нормали, контуры. Иначе 1000 частиц, летящих на землю слегка начинают тормозить комп. |
Ответ: JS4 - мой проект
Итак.
Сделано: 1) Стек (по-моему, с ним только больше тормозит :-D) 2) Контуры. В архиве 2 части: с контурами, и без. 3) Падающие блоки! Вся суть в том, что блоки, висящие в воздухе, весом не более 5000 пикселей(пока так) падают вниз. Тормозит, зато занятно наблюдать:) Управление: ЛКМ - добавить частиц. Пробел - "Взрыв". На самом деле это кусок фэйла, но им можно разрушать материю :-D Скачать Здесь жду жесткой критики |
Ответ: JS4 - мой проект
Здорово.
Тормоза конечно есть, но другого от попиксельных разрушений ждать не приходится Критика: Незнаю из-за чего но взорваная поверхность выглядит как ворс. То есть в червяках например поверхность была ровней. Как то не очень красиво. Получаются эдакие сталактиты. А так норм). |
Ответ: JS4 - мой проект
Тормоза из за моей дурной башки. (100 пискелей на кадр пишутся вполне без тормозов. А вот тормоза вызваны корявой контурной маской). Переделаю обязательно.
А вот насчет ворса я задумывался много раз. Это сложно - сделать нормальную физику частиц на растре. Частицы просто не проваливаются в расщелины! Но это поправимо. Буду пробовать. |
Ответ: JS4 - мой проект
Да, именно так.
А проваливаются они потому, что меня всегда крайне напрягали висящие в воздухе маленькие куски земли, из за которых иной раз не запрыгнешь куда хочешь. А так же висящие в воздухе деревья из майнкрафта. Это нереалистично :-D PS сделал день\ночь. Думаю как на блице реализовать звезды О_о |
Ответ: JS4 - мой проект
|
Ответ: JS4 - мой проект
Конфиг ПК на котором идёт разработка хотелось бы увидеть.
|
Ответ: JS4 - мой проект
Название ОС: Microsoft Windows XP Professional
Версия ОС: 5.1.2600 Service Pack 3 сборка 2600 Сборка ОС: Uniprocessor Free Изготовитель системы: Hewlett-Packard Модель системы: HP Compaq 6720s Тип системы: X86-based PC Процессор(ы): Число процессоров - 1. [01]: x86 Family 6 Model 15 Stepping 10 GenuineIntel ~1729 МГц Полный объем физической памяти: 1*015 МБ Доступная физическая память: 474 МБ Виртуальная память: Макс. размер: 2*048 МБ Виртуальная память: доступно: 1*990 МБ Виртуальная память: используется: 58 МБ видео: Mobile intel(R) 965 Express Chipset Family PS очень слабый комп. Даже тени хорсовые не тащит :( |
Ответ: JS4 - мой проект
Сложно быть скрытным когда ты можешь раз******ить весь уровень к чертям
|
Ответ: JS4 - мой проект
Конечно. Благо такая мощная бомба будет одна. На весь уровень. На всякий случай ;-)
|
Ответ: JS4 - мой проект
Ура. Я сделал воду) построена на юзании оператора лапласа. Ничего сложного, как оказалось))
Статья Правда, ума не приложу теперь, как визуализировать ее в блице. Походу это нереально :( В планах: Огонь, который будет сжигать все, что горит) |
Ответ: JS4 - мой проект
Уфф...
В общем, запарился конкретно. Не могу отрисовать DrawPoly на fastimage. Ну никак! Фэйлишко в том, что один из параметров - блицевый банк. Но это не главное. В FI он передается в виде простого INT, а не как указатель. Ну это фигня. Помучавшись, написал DLL специально для изучения блицевых банков. Оказалось, что: bank = CreateBank(size) bank - это указатель на банк, в котором: 0..24 байта - служебные с 8-го байта лежит int - размерность банка после него лежит невнятное число на 12 большее базмера банка. ХЗ зачем оно. Вокруг этого лежит ересь, и вот начиная с 24 байта идут сами данные. Ладно, черт с ним. Сначала была мысль подключить либу к блицу, создать нужный банк на нем, а потом сделать дамп этого банка в файл, потом загрузить в проекте и передать нужный указатель в функцию. Не делал пока, но на крайняк... Сейчас я написал недостающий в B3D SDK класс для работы с этими банками. Банки хорошо создаются, все гуд. Даже функция DrawPoly возвращает true. Даже не вылетает, если подставить адрес банка на единичку больше-меньше. НО нихера не рисует. Я уже не знаю что делать, в инете нет информации о структуре блицевых банках, никто из знакомых не знает, МихаилV недоступен вечно. PS И главное - примитивные функции работают - DrawRect, DrawLine , SetBlend, SetAlpha... Проект встал :( |
Ответ: JS4 - мой проект
Про банки
На самом деле блицевский банк очень прост: смещение 0 байт - размер банка смещение 4 байта - указатель на данные пример: Код:
sVertex data[10]; |
Ответ: JS4 - мой проект
ЕМНИП, MihailV выкладывал расшифровки большинства блитц-объектов
|
Ответ: JS4 - мой проект
Цитата:
to wolfhound512: записывал в банк байтами обычную строку, в dll принимал указатель на банк: st$ = "Lol" bank = CreateBank(100) for K=1 to len(st) ch$ = mid(st,k,1) PokeByte bank,k-1,asc(ch) next test(bank) В dll читал память по байту с этого адреса, и выяснилось что реальные данные лежат со смещением в 24 байта (если в decls оформлено как test(bank%)), иначе (test(bank*)) в dll приходит указатель на реальные данные. А воду мне все же удалось отрендерить! Блицевые банки не прокатили, поэтому я подсмотрел структуру в PureBasic, сделал так же в сях, и все заработало! как так блин, ведь в банк аналогичным образом данные упаковывал... |
Ответ: JS4 - мой проект
То что они лежали со смещение в 24 байта, это случай. Я делаю так как описал выше и все работает, этот способ мне MihailV подсказал.
Но если ты используешь версию ФИ для СДК, то вряд ли там используются блицевские банки. |
Ответ: JS4 - мой проект
Вся суть игры была на 2Д разрушаемости и физике 2Д объектов. Именно из-за разрушаемости попиксельной невозможно было привернуть какой-либо Box2D или другой физ.движок. Пишу сам, но не успею до окончания конкурса. Аминь.
|
| Часовой пояс GMT +4, время: 10:05. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot