понедельник, 29 апреля 2013 г.
Бесконечный Биошок.
вторник, 5 февраля 2013 г.
Ну вот и всё. XNA мертво: тут
А очередное обновление интерфейса блоггера превратило его в говно какие то.
среда, 22 августа 2012 г.
XNAnimation на WP7
- Выкидываем все кастомные шейдеры и модели. На выходе должна быть стандартная модель и стандартный SkinningEffect. Надо будет вырезать весь код который занимался собственным классом модели на стороне процессора и игры.
- Информацию про анимации и скелет помещаем в отдельный класс. Класс помещаем в Tag модели. Делаем соответствующий ContentTypeWriter и ContentTypeReader.
пятница, 24 февраля 2012 г.
Использование особенностей C# в материалах.
Итак, задача. У нас есть куча эффектов с разными параметрами. Надо в них загнать данные, много, разных. И надо чтобы всё было в более-менее одном месте. Тут вылезает чудная возможность C#, в C++ отсутствующая. Мы можем на ходу спросить объект "ты вот такой интерфейс реализуешь?" и получить ответ. И тут же смотрим в стандартные эффекты XNA - там уже есть интерфейсы вроде IEffectLight, IEffectMatrices. Далее делаем наш эффект реализующий нужные интерфейсы (и ещё добавляем своих), при рендере просто спрашиваем "у тебя такой интерфейс есть? А такой?" и передаём через них все данные. Всё, можно делать кучу сложных вещей. Можно делать ещё интерфейсы типа "рендерюсь в карту теней" откуда доставать предназначенную для этого технику. Назначение эффектов и установка неизменяемых параметров с текстурами спокойно делается в простеньком расширении Content Pipeline.
Код рендера будет все эти новые эффекты подхватывать сразу. И спокойно жить как с нашими так и с стандартными шейдерами. Менять что либо надо только если появились новые интерфейсы. Скорость - в профайлере на тяжелой сцене не вылазит вообще, мусор тоже не генерирует.
И чтобы я когда либо вернулся на плюсы после таких ништяков.
И важный момент, не совсем в тему. Frustrum.Intersects медленный, не используйте на каждый объект, проверяйте большими блоками.
вторник, 18 октября 2011 г.
Сборка контента через msbuild
Идея игры получается какой то не очень. Жечь зомби слишком однообразно, придётся придумывать что то новое.
А я разобрался как собирать контент для XNA без использования студии. Для этого надо проделать такое:
- Взять msbuild (он в /Windows/Microsoft.NET/..., не в Program Files.
- Добавить в contentproj
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.ContentPipelineExtensions.targets" /> - Запустить msbuild с ключами /p:XNAContentPipelineTargetPlatform=Windows /p:XNAContentPipelineTargetProfile=Reach
- Сжатие контента: /p:XNACompressContent=true
И на выходе в папке bin будет собранный контент. Если собирать проект весь, не только контент, то достаточно запустить msbuild в папке где лежит csproj игры.
Теперь дело за малым - интегрировать всё это с контролем версий, чтобы игра собиралась автоматом при заливании изменений. Автоматизация, хо!
пятница, 7 октября 2011 г.
Ну вот и всё
http://forums.create.msdn.com/forums/t/91616.aspx - будущее XNA туманно. Оно не будет жить на WinRT, скорее всего не будет поддерживать планшетники и WP8. Официально рекомендуется использовать WinRT/C++/DX11 для планшетов. Пока я сделаю игру под WP7 (анонс чере пару недель, следите за эфиром) и скорее всего начну делать крутой Ъ-фреймворк для игр на DX11 и с поддержкой WinRT в уме. А C# такой приятный язык.
воскресенье, 21 августа 2011 г.
Jamestown
Казуальное непотребство. Играть можно с любого открытого уровня, сложность ниже Divine следует считать изимодом. Divine не крут - любой уровень сдаётся максимум с первого-второго десятка попыток. Более-менее весело только на Judgement.
Но всё это по меркам жанра, на фоне типичных нынешних игрушек тут хардкор.
понедельник, 15 августа 2011 г.
CLRProfiler и XNA
Если вдруг CLRProfiler стал падать при запуске XNA-игрушек то надо запускать его из командной строки из той же папки где лежит exe. Причина - XACT не очень хорошо дружит с определением рабочей папки, не может найти звук и кидает исключение.
четверг, 28 июля 2011 г.
Оживить торрент.
Достаточно простой но неочевидный способ сделать мёртвый торрент живым. Для этого достаточно взять хэш, найти трекеры на которых торрент ещё был выложен и добавить их. Искать можно даже в гугле. В природе есть огромное количество трекеров о которых никто не слышал, если повезёт - то на одном-двух окажутся живые сиды.
вторник, 14 июня 2011 г.
Flash вообще и AS3 в частности говно лютое, всех кто его использует по собственной воле следует физически уничтожить, они не люди вообще. Тех кто придумал - растворить заживо в кислоте с прямой трансляцией в стерео на весь мир. Пидараса что не сделал опцию "я ебал ваши вектора, скейлинг-хуельник и прочее говно, хочу чтобы было M на N пикселе и всё было в них" вообще больно-больно убивать, потом вылечить, потом снова убивать и так пока не дойдёт до абсолютно нелечибельного сосотояния.