shocker: (Default)
 Последний доступный компилятор без IDE входит в состав Windows SDK for Windows 7.

Качать тут: www.microsoft.com/en-us/download/details.aspx

Что бы поставить на Windows 10 придется временно поправить реестр:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version = 4.0.30319
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version = 4.0.30319

Проблема в том, что эти ветки защищены от записи, рецепт тут: www.outsidethebox.ms/10539/

После установки не забыть вернуть как было!

В итоге имеет Windows SDK 7.1 Command Prompt в котором работает cl, nmake и т.д.

Для переключения в релиз нужно выполнить "setenv /release". Разрадность выбирается так: "/x86" или "/x64"

Справка тут: msdn.microsoft.com/en-us/library/ff660764(v=vs.100).aspx
shocker: (Default)
Из коробки не работает т.к. требует гнушные тулзы.

Вот рецепт:  caia.swin.edu.au/urp/diffuse/openwrt/buildunderfreebsd.html

Если коротко, то выписываем транка или бранча OpenWRT то, что нам надо. Внутри под рутом запускаем caia.swin.edu.au/urp/diffuse/openwrt/downloads/openwrt-installer-30jan13.sh

Затем под регулярным пользователем делаем PATH=./bin-gnu:$PATH; export PATH;

И gmake menuconfig; gmake

shocker: (Default)
Эта программа является простым и переносимым UPnP медиа-сервером для осуществления IPTV трансляций в рамках домашней сети на DLNA совместимых устройствах без поддержки мультикастинга или плейлистов со списком Интернет-адресов источников контента.

Все что нужно — роутер или компьютер под управлением OS Linux и DLNA совместимый плеер/телевизор.


Полное русскоязычное описание тут: http://xupnpd.org/t/index_ru.html
shocker: (Default)
PS3Muxer простая кросплатформенная open source программа для быстрого преобразования (ремукса) MKV файлов (Matroska), содержащих HD видео сжатое кодеком H.264/AVC в поддерживаемый Sony PlayStation 3 и многими телевизорами формат M2TS без потери качества из-за транскодирования (пережатия). Данный процесс по времени соответствует процедуре копирования файла, например, на USB-носитель или NAS и никак не модифицирует видео — только смена контейнера.

Существуют версии для Microsoft Windows, Mac OS X и Linux.

Полное русскоязычное описание тут: http://ps3muxer.org/index_ru.html

Очень надеюсь на скорое появление возможности просмотра видео на PlayStation 4.
shocker: (Default)

Выписываем исходники:
mkdir openwrt
cd openwrt
svn co svn://svn.openwrt.org/openwrt/branches/backfire.

Выбираем целевую платформу:
make menuconfig

Собираем инструментарий:
make prereq
make tools/install
make toolchain/install

Легкая чистка:
make clean

Полная чистка:
make dirclean


После сборки инструментарий лежит в staging_dir/toolchain-?????, переносить в другое место его нельзя т.к. пути зашиваются внутрь бинарников.
Если хочется инструментарий для разных платформ и при этом хочется избежать конфликтов в именах директорий, то при сборке можно использовать переменную окружения DIR_SUFFIX, например: 'make toolchain/install V=99 DIR_SUFFIX=-dir825'.
Соответственно 'make tools/install' делаем один раз, а потом 'make menuconfig' и 'make toolchain/install' по разу на каждую платформу.


upd: для DIR320 с DD-WRT исходники тут: svn co svn://svn.openwrt.org/openwrt/branches/8.09.
Подробности: http://shocker.dreamwidth.org/154006.html

shocker: (Default)
mkdir ./slug; cd ./slug
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
cd optware; make cs05q1armel-target
cd cs05q1armel; make directories ipkg-utils toolchain
 
 Отсюда: mybookworld.wikidot.com/forum/t-188151/no-gcc-in-optware
shocker: (Default)
Мой новый проект - xupnpd.

Замена старому pshare.

Запускается на роутерах для раздачи IPTV и локального медиаконтента в локальной сети DLNA/UPnP плеерам без использования компьютера (хотя запускать на PC программу никто не запрещает).

Другими словами это легкий домашний  Медиасервер типа TVercity,  Twonky, MediaTomb и ushare.
Разница в том, что xupnpd изначально заточен под раздачу IPTV.

Поддерживаются все основные UPnP механизмы (в т.ч. уведомление плееров об изменениях), есть родительский контроль (ограничения по IP), простой Web-интерфейс и возможность гибкой настройки за счет использования Lua-скриптинга.

Телевидение работает на PlayStation 3, Android устройствах (UPnPlay + VPlayer), различных железных медиаплеерах и телевизорах с поддержкой DLNA. Кроме того, можно воспользоваться банальным Windows Media Player 11.

Обсуждение тут и тут.
shocker: (Default)
Вот не пойму откуда столько визгу с этой тесселяцией в мире PC игр.

Ведь по сути речь идет просто о высокополигональных 3D моделях. Тесселяция в DirectX 11 это способ сообщить видеокарте как из низкополигональной модели сделать высокополигональную.
Кто мешал это сделать раньше? Все упирается в возможности художников и железки на которой запущена игра и не важно PC это или консоль. Нарисовать высокополигональную модель не проблема. Проблема что бы не тормозило и памяти хватало.

Реально же это способ побырому преобразить уже существующую игру при условии наличия у пользователя новомодной видеокарты (CrySis 2). От программеров требуется сделать несколько дополнительных вызовов из нового API, а от художников - подготовить карты высот для существующих объектов (в т.ч. для рельефа, зданий и т.п.).
Еще одна приятная возможность - внешний вид можно переключать элементарно... наложили карту высот и стало красиво, убрали и сало как раньше.

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

Самое главное, на мой взгляд, что бы было интересно, красиво и не тормозило.
В общем чо далеко ходить - KillZone 3, Uncharted 2 и никакой тесселяции :)))
shocker: (Default)
Что бы не забыть :)))

if(!(year%400) || (!(year%4) && year%100)) leap_year=true;
shocker: (Default)
Ну вот и закончилось это дорогущее мероприятие.

За потраченные 15т с человека как и в прошлый раз получаешь: битком набитые душные залы без адекватной вентиляции и толпы голодных ITшников с ноутбуками в многометровых очередях за хавчиком.

Продано 700 билетов, мест 500 - народ сидит на полу или стоит в проходах.
Пожрать ни в первый ни во второй день не удалось, выход - магазинная пицца в кафешке убогого Инфопространства за 520 руб + стакан сока 0.2 за 80 руб, а 0.5 колы в пластиковой бутылке стоит 120 руб.
Свободных вешалок для одежды тоже нет.

В общем организация полный отстой, хорошо что бабки не из своего кармана.

Слушать в этот раз было особо нечего... как обычно самореклама странных коллективов и выступление "велосипедистов" из mail.ru (отчет о Highload 2008 - остерегайтесь подделок).

Положительные эмоции вызвали доклады хакера Joe Damato и канадского фетишиста и владельца fetlife.com Джеймса Гулика (James Golick, веб-сайт).

Ничего был Robert Johnson из Facebook (блин, хрен нагуглишь что-то про чела с таким типичным американским именем). Рассказывал об организации труда программистов в Facebook.

Ни одного вопроса не задали Patrice Pelland из Microsoft после его выступления :)
Усыпил всех своим монотонным докладом про очевидные вещи. Собственно и спрашивать было не чего - у них все делается как по учебнику и никаких инноваций. Главное все два раза кешировать :) Ничего другого от Microsoft не ожидал.

Ярослав Городецкий и Андрей Пантюхин из хрен знает откуда со своими велосипедами для CDN.
Первый ничего, а второй со своим Cloud Storage on FreeBSD - велосипедист еще тот :)

В mail.ru традиционные велосипеды. На этот раз они придумали свою сверхбыстрою 'no SQL' базу данных и никакие memcached с Berkeley DB им не подходят.

Ну и первый приз по праву достается комику Максиму Лапшину из evilmartians.ru со своим "сверхбыстрым" проектом для "В Контакте" на Rubby где всего 24 сервера обеспечивают обработку целых 1000 запросов в секунду! :)))))))))))))))) Колоссально.
Он умудрился заслужить самые громкие овации после того как на вопрос об утечках памяти в долгоживущих процессах Rubby заявил - "Мы ничего такого не заметили, правда каждые 3 дня все перегружали. Что теперь с проектом не знаю т.к. ушел оттуда, но они почему-то все переписали на PHP".

Интересный факт - после того как Максим избавился от memcached все заработало куда быстрее. Дай мартышке гранату, как говорится.

Респект чувак, так держать ;)
shocker: (Default)
Сразу скажу - IPTV на Sony PlayStation 3 реально, при этом без компьютера!
Достаточно иметь подходящий роутер и прямые руки.
Первым шагом делаем это: clark15b.livejournal.com/110936.html
Вторым шагом качаем мой pshare и запускаем на том же роутере рядом с udpxy.

Кому интересны подробности читаем дальше...

Подробности... )
Теперь смотрю и в комнате и на кухне с наса HD кино, а с роутера ТВ - высокие технологи :))))
И главное ничего не шумит и не греется, а роутер у меня работает всегда и готов раздавать ТВ.



(просмотр IPTV на Sony PlayStation 3 без компьютера и транскодирования)
shocker: (Default)
Захотел собрать собственную программу под DD-WRT работающем на роутере D-Link DIR-320.

Надеялся поставить gcc из OptWare прям на роутер, но gcc там не нашлось.
Пробовал когда-то собирать кросскомпилятор сам - пустая трата времени.

В итоге нагуглил рецепт под Linux.

Делаем чекаут из OpenWRTшного SVN:
'svn co svn://svn.openwrt.org/openwrt/branches/8.09'

В директории запускаем 'make menuconfig'. Если чего-то не хватает - доставляем.
В итоге запускается конфигурилка инструментария.
Там ничего не меняем и выходим с сохранением конфига.

Потом делаем 'make'.
Оно похоже сливает из Инета необходимые исходники и собирает компилятор, либы и т.д. под целевую платформу.

Если все ОК, то в staging_dir/toolchain-mipsel_gcc3.4.6 имеем компилятор (в т.ч. и C++), хэдеры и необходимые либы (uclibc).
Теперь компилим наши проги этим: 'staging_dir/toolchain-mipsel_gcc3.4.6/mipsel-linux/bin/g++'

;)

upd: статья по теме http://dipcore.com/?p=224
shocker: (Default)
Пришло письмо про то, что мой PS3Muxer включили в базу данных Софтпедии, протестировали и дали сертификат качества :)

Они даже скринов сами понаделали.

Линк: www.softpedia.com/get/Multimedia/Video/Other-VIDEO-Tools/PS3Muxer.shtml




Ну и заодно про tsDemux: www.softpedia.com/get/Multimedia/Video/Other-VIDEO-Tools/tsDemux.shtml


Текст письма... )

shocker: (Default)
Я уже писал как-то про свободные игровые движки, теперь хочется сохранить для истории список известных мне движков, используемых в коммерческих продуктах.

Unreal Engine 3 (Epic games) - Самый популярный среди разработчиков игрушек и видимо очень дорогой (цены не публикуются). Очень шустро работает на PC, XBox 360 и PS3. Epic осуществляет постоянную поддержку сторонних разработчиков и предоставляет превосходный инструментарий. Из представителей на данном движке хочется отметить: Bioshock, Borderlands, Mirror`s Edge (DICE!) и Gears of War 2 (XBox 360 only). Движок любит воду и мокрые поверхности, справляется и с закрытыми и с открытыми пространствами.

Source (Valve) - Не так популярен как UE3, но его использует не только Valve для своего произведения искусства - игры всех времен и народов Half Life 2. Движок несколько устарел и Valve постоянно пытается в него что-то добавлять в рамках новых проектов. Зато игрушки на нем очень резво бегают даже на слабом железе (PC) и выглядят достойно. Единственный недостаток на текущий момент я вижу в статичности природы - она замерла, ничего не качается, ветер не дует, не чувствуется жизни. Из-за этого в HL2 царит особая атмосфера грусти и пустоты которая так торкает. А вот для Left 4 Dead это большой недостаток. К сожалению Valve никак не освоят программирование для Cell, поэтому, к глубокому сожалению, Source Engine пока годится только для PC и XBox 360, хотя Orange Box и выходил на PS3. Качество продукта на данной платформе не на высоте - игры тормозили и не отличались качественной графикой. На MacOS производительность тоже гораздо ниже чем на PC. Самые известные проекты на данном движке: Half Life 2 со всеми эпизодами, Team Fortress 2, Portal, Left 4 Dead, Left 4 Dead 2, Counter Strike: Source, SIN. Открытых пространств не любит.

CryENGINE 3 (CryTek) - Великолепный и очень технологичный движок начиная с самой первой версии. CryENGINE 1 использовался в революционной FarCry (мне картинка нравится даже больше чем в CrySis). Оно работало даже на XBox/XBox 360 в Far Cry Instincts но на PS2 портировано не было. CryENGINE 2 использовался в революционной, но не такой интересной CrySis с sandbox геймплеем, превосходной физикой, графикой и разрушениями. Реакция на игру со стороны игроков очень неоднозначна... вроде жедевр, а вроде и играть не тянет. Эта версия двигла очень прожорлива и работала только на PC. Наконец в этом году увидит свет CrySis 2 на новом CryENGINE 3. На этот раз игра выйдет на всех 3-х платформах (PC, XBox 360 и PS3). Кроме этого приятного факта есть еще один бонус - обещают стереокартинку: gamemag.ru/news/electronic-arts-crytek-vivodyat-crysis-2-novoe-izmerenie-54013.
Поживем увидим как оно будет ворочаться на консолях и как оно там будет выглядеть. Надеюсь не разочаруют. Движок может все :)

ID Tech 5 (ID SoftWare) - Кармак никогда не переставал удивлять своими игрушками (Doom, Quake, Doom 3). Каждый проект был шедевром своего времени, но, к сожалению, после Doom 3 у них наблюдается застой. После этой игры выходил Quake 4 и Quake Wars (мультиплатформа), но особого восторга не вызывали (многим и Doom 3 не понравился). Ребята в тени и явно отстают от молодых конкурентов (как и Valve). Сейчас все с нетерпением ждут долгостроя Rage и Doom 4 на ID Tech 5. Но интереснее всего будет взглянуть на Brink от Splash Damage. В любом случае игры на этом движке будут работать на всех 3-х платформах, обещается высокая производительность на консолях текущего поколения. Открытых пространств не боится.

Jupiter Extended EX (Touchdown Entertainment) - было много версий и разновидностей, выходила масса игрушек на всех платформах в разных комбинациях. Самые достойные из того, что знаю: F.E.A.R (мультиплатформа), Condemned (PC, XBox 360), F.E.A.R 2 (мультиплатформа), Condemned 2 (XBox 360, PS3). Движок не любит открытых пространств но отлично работает со светом и тенями во мрачных коридорах. F.E.A.R произвела на меня неизгладимые впечатления в свое время, как и обещали - это интерактивное кино с киношными эффектами.

Frostbite engine 1.5 (DICE) - движок используемый только в проектах DICE из серии Battlefield. Сначала работал только на XBox 360 и PS3 в Battlefield: Bad company и Battlefield 1943, потом заработал и на PC (явно после длительной обработки напильником) в Battlefield: Bad company 2. Особенности - открытые пространства и разрушаемость строений. Выглядит достойно. Довольно шустро работает на всех платформах (на PC после релиза тормозило и было много глюков отсутствующих на консолях). До этого у DICE в серии Battlefield использовался собственный Refractor Engine. Движок более требователен чем Source. В Battlefield 2142 картинка очень достойная: динамическое освещение, тени, скелетная анимация, большие открытые пространства, физика, звук - все на месте. Недостаток - полное отсутствие разрушения строений и элементов пейзажа. Зато теперь в Frostbite этого более чем достаточно :)

Avalanche Engine 2.0 (Avalanche Studios) - новый движок пока используемый только в мультиплатформенном Just Cause 2. Студия работала только над Just Cause и Just Cause 2. Соответственно и движок создавался исключительно под нужды проектов.
Про это чудо почти ничего неизвестно, но он просто превосходно справляется с огромными открытыми пространствами (S.T.A.L.K.E.R нервно курит в стороне), очень шустро работает (по крайней мере на PS3), работает на всех 3-х платформах (на PC поддерживается только DirectX и не ниже версии 10), выдает потрясяюще красивую картинку в стиле FarCry и Uncharted 2. Кроме того там все в порядке с физикой, с визуальными эффектами, эффектами освещения (лучи света) и фриплеем. Им удалось воссоздать огромный бесшовный мир с очень высокой детализацией и дальностью обзора - и ничего не тормозит, я в шоке. При этом мы имеем динамическую смену времени суток и погоды.
Вот обсуждения на форуме: forums.eidosgames.com/showthread.php.

Naughty Dog Engine 2.0 (Naughty Dog) - про ничего не известно кроме того, что он разрабатывался специально для PS3 эксклюзива Uncharted 2. Не могу пропустить т.к. картинка превосходна.


Rockstar Advanced Game Engine (Rockstar Games) - используется в проектах данной студии, уже довольно стар, работает на всех 3-х платформах, но не отличается резвостью при не очень технологичном внешнем виде (видимо кривые руки). В GTA4 на PS3 частота кадров часто сильно приседает, на PC жрет кучу видеопамяти и для комфортной игры на максимальных настройках требует ацкого железа (CrySis и то скромнее со всеми своими наворотами). Движок задуман для отображения больших открытых пространств, но Avalanche Engine 2.0 явно в разы лучше.

Dunia Engine (Ubisoft) - специально разрабатывался для мультиплатформенного FarCry 2. Обещали динамическую смену времени суток и погоды, регенерацию деревьев, динамический огонь, игру света и теней. Говорили о нем много, вроде сделали, но FarCry 2 полный отстой и графика там убогая. Кстати движок должен поддерживать стереоскопический режим.

IW 4.0 (Infinity Ward) - мультиплатформенный движок специально для серии Call of Duty. Работает везде и очень быстро. Несмотря на отсутствие разрушений и каких-то особых инноваций смотрится очень достойно и современно. Движок является модификацией одного из ранних движков IDSoftware, скорее всего ID Tech 3 (лицензия GPL) от Quake III Arena.


Отдельно хочу отметить популярные физические движки Havok (мультиплатформа) и NVIDIA PhysX (мультиплатформа, но на PC с возможностью аппаратного ускорения видеокартами NVIDIA, например Mirror`s Edge от DICE на UE3).

Ну и экзотика - PathEngine для поиска траектории при перемещениях в игровом пространстве.
shocker: (Default)
PathEngine - игровой движок для поиска пути от точки к токе в игровом мире c динамическими препятствиями.

Наряду с Havok для физики и Avalanche Engine 2.0 от Avalanche Studios для всего остального данное чудо используется в великолепной Just Cause 2.

Цитирую:
PathEngine реализует поиск пути и движение агента в трёхмерной среде с динамическими препятствиями. Присутствует динамическое управление преодолением препятствий и автоматизация контента. Такая технология, примененная к некоторым очень большим и детализированным мирам, включает специальную оптимизацию для рельефных поверхностей (или иных поверхностей, сочетающих детализированные препятствия с хорошим обзором и большими открытыми пространствами)

Стоимость лицензии на все 3 платформы (PC, XBox 360, PS3) - 23000 евро.

Официальный сайт: www.pathengine.com
shocker: (Default)
Если решать задачу вывода изображения для двух глаз в играх в лоб, то получаем увеличение объемов вычислений ровно в 2 раза.
Отрендерили сцену с одного ракурса для левого глаза, передвинули viewport немного правее и отрендерили заново для правого.

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

Просматривая на днях фильм Битва Титанов в RealD понял что они халтурят.

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

В Аватаре, для сравнения, все было очень честно.

Вот я и думаю... может игровую сцену тоже имеет смысл разделить на слои?

Фон можно оставить как есть и там и там - он настолько далек что смещение для левого и правого глаза незначительны - ими можно пренебречь и человек ничего не поймет.
В принципе дальние объекты сцены тоже можно не трогать.

Получаем некий объем для которого необходимо осуществлять разные расчеты.
Можно попробовать отрендерить каждый объект (человека, машину, дерево и т.п.) отдельно от сцены сохранив только источники освещения (метод трассировки лучей еще не применяют для развлечений, так что вполне приемлемо).
Получаем кучу спрайтов и фон.
Строим кадр для левого глаза - битблитим во фреймбуфер фон, затем исходя из глубины объектов сцены слоями спрайты с их образами. При этом в зависимости от глубины смещаем их по оси X, возможно с простейшими преобразованиями (например, масштабирование, наклон, поворот). Тоже самое проделываем для правого глаза, только спрайты смещаем в другую сторону.
В заключении производим постпроцессинг отдельно для каждого кадра (эффект размытия, шумы и т.п.).
И вот у нас две картинки для двух глаз с минимальными затратами. Оверхед есть, но не 200%.

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

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

Ведь стереоизображение как и кинематограф в целом и так обман зрения - почему не пойти дальше?

Уверен найдутся таланты которые найдут правильные способы сократить накладные расходы.
shocker: (Default)
Обнаружил странности с QNetworkAccessManager (HTTP) в QT 4.5.0 и 4.5.2 под Win32 и Linux.

В общем вот:
- Keep-Alive работает только при использовании метода POST, на GETе клиент выдает "Connection: Keep-Alive", от сервера получает тоже самое, но рвет соединение (зато finished срабатывает);
- Событие finished срабатывает только при закрытии TCP соединения. Соответственно если хотим получать finished на POSTе надо выставлять руками заголовок "Connection: close", либо событие придет только по таймауту (15 секунд для апача);
- При взаимодействии с Web-сервером на локальной машине POST периодически зависает из-за того, что клиент выдает заголовки, но не хочет отправлять тело. В результате сервер ждет тело, а клиент ждет ответа - оба ждут, все висит пока не сработает таймаут (5 минут для апача). При этом с удаленным сервером все нормально.

В общем надо использовать GET и все будет хорошо, в противном случае возможны сюрпризы.

Сеть у них построена на мультиплексинге ввода/вывода, это круто - много параллельных HTTP запросов в основном потоке, но полагаю, глюки именно из за косяков в их стейт-машине.

Вообще QT одни танцы с бубнами, никто ничего толком не знает... проблемы решаются перестановкой строчек местами методом перебора (пока не будет достигнут нужный результат).

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

Очень нравится комплект разработчика - дают среду разработки, отладчик и компилятор MinGW под Windows, Linux и Mac.
И все это абсолютно бесплатно. Еще бы багов поменьше :)

shocker: (Default)
Собственно брать тут.

Под винду идет с компилятором MinGW.

Включает в себя QT Creator IDE.

Лицензия теперь LGPL 2.1.

Отличная альтернатива MS Visual Studio 2008 Express.

Profile

shocker: (Default)
shocker

October 2016

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 23 Sep 2017 04:00
Powered by Dreamwidth Studios