Х-СOM The last hope

Журнал

25 авг 2011

picking спрайтовых объектов

решал сегодня задачу - узнать в какой объект ткнулась мыша

было два с половиной варианта
1. проверять boundsrect у всех спрайтов в кадре, если точка клика попадает в него то проверять пиксель спрайта на прозрачность, если не прозрачный то в кандидаты на ближайший к камере.
в конце цикла выдать ближайший к камере спрат в который мы ткнулись.

посчитал геморным то что надо выделять память под битмап каждой текстуры, потом удалять память и всё негативное связанное с этим.
выделить 16 метров просто под текстуру макс размера 4096х4096 - жалко 16 метров. Это на PC 16 метров ниачем, а на планшетнике у меня 512 метров ОЗУ.

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

2. рисовать всю сцену в монотонных цветах. каждому спрайту задать свой уникальный цвет. затем брать цвет пикселя экрана и таким образом понять куда ткнулись
вот так выглядит сцена при этом:
openxcomd_2011_09 | picking спрайтовых объектов

вобщем реализовал этот метод как самый простой и шустрый. пока доволен.

Ссылка

25 авг 2011

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

но сейчас на распутье и вот каком:
спрайт, анимация, модель и эффект не имеют общий класс от которого бы они наследовались.
а вот на карте когда оно все рисуется удобнее было бы работать с объектами через единый инерфейс. назвал я его MapObject
но пока не прикрутил наследование всех описанных выше классов от MapObject а каждый спрайт или анимацию или модель оборачиваю в новый MapObject через который рисую их на карте и сортирую тоже.

вобщем мысль такая -  может плюнуть на универсальность и заунаследовать спрайты, анимации, эффекты и модели от MapObject и работать спокойно с ними, потому что к примеру в другой игре этот интерфейс будет как 5е колесо в телеге
или же не трогать движок и лепить оболочки для каждого используемого в движке класса который может рисоваться на карте?

но тогда у меня в MapObject будет указатель на спрайт анимацию эффект или модель которые зааттачены в объекте и надо хранить 4 функции отвечающие на вопрос isSprite isAnimation isModel isEffect

хз. пока не решил как лучше

Ссылка | Комментарии [2]

24 авг 2011

три проблемы с сортировкой спрайтов. ( upd: решено )

опять вылезла проблема с сортировкой спрайтов
OpenXcomd 2011-08-24 20-32-25-35 | три проблемы с сортировкой спрайтов. ( upd: решено )

причина очевидно в неверном порядке отрисовки элементов в тайле
20-32-25-35 | три проблемы с сортировкой спрайтов. ( upd: решено )

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

OpenXcomd 2011-08-24 20-32-27-54 | три проблемы с сортировкой спрайтов. ( upd: решено )
OpenXcomd 2011-08-24 20-33-06-09 | три проблемы с сортировкой спрайтов. ( upd: решено )

эта проблема решена. юнит стоящий на лестнице рисуется из  верхней клетки
openxcomd_2011_08_25_20_43_06_09 | три проблемы с сортировкой спрайтов. ( upd: решено )

Ссылка | Комментарии [18]

23 авг 2011

X-COM скриншоты с игры

вот такая вот атмосферка вокруг земли в игре.
сделано по материалам отсюда: http://petrocket.blogspot.com/2010/04/atmosphere-shader-update-an… reegrass.html
реализовал GvM за что ему огромный респект.
я шейдерную часть на GLSL так и не смог корректно перетащить.

скриншот 1
OpenXcomd-2011-08-23-11-53-02-49 | X-COM скриншоты с игры

скриншот 2
OpenXcomd-2011-08-23-11-53-08-19 | X-COM скриншоты с игры

реальный размер 1024х600 ( под экран планшетника Galaxy Tab )

вот такой вот baseview у меня. аутсорсер нарисовала. мне не очень нравится. потом буду перезаказывать когда уже финально все ясно станет
OpenXcomd-2011-08-23-11-53-15-81 | X-COM скриншоты с игры


ну тут немножко спрайтов боевой части

просто склад. ящики взяты из TotalInfluence да простят меня хозяева но у них самый лучший арт. его использую на стадии разработки. Потом естественно все свое закажу. Так что копирайт может спать спокойно 
OpenXcomd-2011-08-23-11-53-55-48 | X-COM скриншоты с игры

просто кусок городского парка. там даже юнитов нет
OpenXcomd-2011-08-23-11-54-01-17 | X-COM скриншоты с игры

один юнит шмальнул лазером в другого
OpenXcomd-2011-08-23-11-55-14-53 | X-COM скриншоты с игры

юниты все 3Д модели. сейчас md2 но человек мне скелетку реализовывает. надеюсь скоро модельки из той же TotalInfluence подцеплю

Ссылка | Комментарии [5]

1 авг 2011

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

интерлюдия или с чего оно собственно начинается... год какой то там дцатый. хронологически примерно вторая половина игры X-COM 1, поняв что порабощение землян затягивается, а то и вообще скоро бравые хлопцы высадятся на марс и размажут коваными берцами нежеые тушки пришельцев по марсианской пустыне, лиды решили воспользоваться старой как Галактика тактикой: разделяй и влавствуй. Были подкуплены президенты трех стран США Франции и Англии, входящих в коалицию, - в обмен на технологию омоложения тела они вышли из всех международных организаций и прекратили поддержку проекта X-COM. Но этого мало... по всем базам находящимся на подконтрольной территории был нанесен ядерный удар. На зарубежных базах были срвершены хорошо спланированные диверсии приведшие к полному уничтожению всей документации и технологий. К счастью во время одной такой диверсии костяк команды был на вылете и избежал гибели. Пасуя перед могуществом тройки, все страны отказались финансировать проект и дать убежище команде Х. Только Россия Индия Китай и Германия остались верны проекту и дали понять что будут тайно продолжать финансирование борьбы. Новую базу можно строить только на территории России Индии или Китая. Германия оказалась слишком мала и слишком близко расположена к Франции и Англии которые примкнули к пришельцам


Basescape mode режим в базе. тут есть уже реализованные мной фичи:
1. реактор. не знаю почему в оригинале не подумали откуда база берет энергию. У меня от реактора. Каждый модуль потребляет энергию, если энергии мало, то новый модвль не постпвить. Модули можно отключит на время ( при этом он перестает фунционировать и его ресурсы невозможно использовать ). При старте энергии в обрез. хватит на пару лабораторий и все. Размер базы не изменял. Так что введение реактора и энергетического ресурса это однозначно усложнение. надо будет потом балансить.
2. покупка. оказывается не все было утрачено во время разгрома баз XCOM в тороовом разделе можно купить плазменные витовки... правда на черном рынке и с огромным риском -  за пару миллинов переквпшики найдут вам пару образцов. не более. Имеется также энергоброня, так же безумно дорого и всего один экземпляи. вообще на черном рынке время от времени всплывают интересные артефакты. естественно очень дорого и не более 1-2 штук.
3. коротко про исследования - исследовать сразу можно все. после лазерного оружия можно попроьовсть начать изучение плпзмы или энергоброни но без работающего образца пара тысяч человеко-лет на исследования. Исследованную технологию можно продать странам спонсорам. за это они ежемесячро будут платить роялити за патент. но вы лишаетесь права самостоятельно производить оружие на проданной технологии. зато качественные но дорогие образцы появятся на рынке.

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

4. производство. можно производить продукцию на исследованных тезнологиях. продавать ее. но чем больше единиц продано тем дешевле цена на рынке. прекратив продажи можно дождаться роста цен - это произойдет примерно за 1-2 месяца. Но китай не спит. чем дольше вы продаете продукт тем больше шанс что на рынке появится его клон. спачала с немного худшими характеристиками а затем лучше вашего. бороться с этим ну никак. надо исследовать новую технологию и зарабатывать на новом продукте. Так каждый лазерный пистолет можно исследоаать до 10 раз с каждым разом улучшая его характеристики и получая фактичесаи новое изделие. после чего есть 3-4 месяца пока китайцы раскачаются

Ссылка | Комментарии [3]

1 авг 2011

наконец то появилось столько свободного времени когда уже просто не знаешь куда его девать. Решил таки осуществит мечту... нет Мечту дедства - написать хороший клон уфошки. Чтобы было все как в первой части но с клевой графикой и эффектами.

Итак что планирую: полный клон первой уфо но в HD качестве, с сетевым мультиплеером как в тоталинфлюенс может и лучше получится.
Опыт разработки серверов игровых 3 года. Опыт разработки казуалок 5 лет. Бюджет 50 тыров. Если на финальной стадии будет видно что игра получается хорошей - то вложусь финансово серьезно в моделлинг и арт. А пока буду юзать все что стилистически подходит под концепт.

Ссылка

Архив