XNA vs. MSDX   zodpovězená otázka

VB.NET

Dávno tomu, co zde vyšel nadějný miniseriál pro práci s DirectX prostřednictvím VB.NET. Nyní slibujete návod pro XNA, který je ale výhradně určen pro programování prostřednictvím C#.

Máme tomu rozumět tak, že z pohledu (graficky) výkonnějších aplikací (a zdaleka se nemusí jednat pouze o hry) se již VB stává jazykem neperspektivním?

Ptám se i z toho důvodu, že například poslední verze SDK pro MSDX již neobsahuje dokumentaci ani příklady k managed kódu a zájemci o tuto oblast přístupu k MSDX jsou odkazováni na starší verze SDK?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Visual Basic .NET se rozhodně neperspektivním nestává. XNA Game Studio Express je pouze IDE, nic vám nebrání pracovat s XNA Frameworkem přímo ve VB.NET. To samé platí i pro případ Managed Extensions for DirectX.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za odpověď. Předpokládal jsem, že je možno managed metody z MSDX používat i nadále (v případě XNA jsem se neodvažoval doufat :) již dle základních pouček, že v projektech je možno kombinovat části kódu z různých jazyků .NET rodiny.

Ale směřoval jsem trochu jinam. Jistě uznáte, že zvládnout jakékoliv, tím méně pak ty trochu složitější, programovací techniky bez odpovídající dokumentace je dosti nemožné. A i v případě Microsoftu je patrné, že tam, kde vidí a míní podporovat rozvoj, tam nešetří podpůrnými prostředky (ať to jsou free vývojové nástroje, hromady dokumentace či praktických příkladů), tam, kde jede již spíše ze setrvačnosti (a s ohledem na zpětnou kompatibilitu), tam tuto podporu silně omezuje.

Patrné to je třeba u toho DirectX, kde od verze 8 již aktivně nepodporuje např. DirectDraw, což se projeví ne tím, že by nefungoval a nebylo by ho možno použít, ale tím, že se o funkcích této knihovny prakticky NIC nedočtete (v MSDN si všude jen přečtete několiřádkové povídání o tom, že funkce již není podporována a na konci jen jednořádkové vysvětlení, k čemu měla sloužit (což ale ve stejném rozsahu bývá zřejmé i z názvu) - žádná přesnější specifikace parametrů, o příkladech použití (jak jsou běžné u "živých" funkcí) ani nemluvě.

No a o dalším kroku tohoto vývoje jsem již psal minule (úplné odstranění dokumentace managed extensions z posledního SDK). A přesně tam jsem směřoval svůj dotaz, nakolik je v představách MS VB.NET perspektivní i pro tyto "náročnější" oblasti a nakolik bude do budoucna i pro tento jazyk poskytovat či neposkytovat podporu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

XNA je vlastně nástupcem Managed DirectX. Jinak XNA samotné je připraveno hlavně pro použití v jazyce C#, samozřejmě ale knihovny můžete využívat i z prostředí VB.NET, ovšem má to jistá omezení.

Krásnou věcí na XNA je tzv. Content Pipeline, kde všechny textury, 3D modely, shadery atd. zakomponujete do EXE souboru a můžete je načíst na jeden řádek. Je to také jediný způsob, jak to zařídit, aby pak hra fungovala i na konzolích XBox 360. Content Pipeline je ovšem doplněk pro Visual Studio, který je obsažen v balíčku XNA Game Studio Express, a tudíž lze využívat pouze z prostředí Visual C#. VB.NET tedy nemůže používat Content Pipeline, což je poměrně velká škoda, ale naprostá většina ostatních funkcí již funguje bez omezení (textury, 3D modely atd. se dají načítat i jinak, ale není to už tak elegantní). V současné době zvažujeme, jestli náš seriál napíšeme o využití v jazyce Visual Basic .NET nebo v C#.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji Vám oběma.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě k Vašemu rozhodování. Alespoň za sebe bych se přimlouval buď za ten VB.NET (přece jenom jsme na podobně nazvaných stránkách), nebo, pokud byste to časově byli schopni zvládnout, rozšířit záběr Vašeho serveru a vytvořit sesterské stránky "csnet.cz" (bohužel na této doméně už někdo dřepí) a udělat pro nás "začátečníky" osvětu i v tomto sesterském jazyku (samozřejmě by bylo lepší nechat to jako součást jednoho webu, protože 75% informací se bude shodovat, rozdíly by byly většinou pouze v konkrétní syntaxi).

Přiznám se totiž, že VB jsem v době svého rozhodování zvolil hlavně díky Vašemu Webu, protože jsem pro C# nic podobného na NETu nenašel. Bohužel projektů zaměřených na C# je na internetu celkem dost, ale velice málo se záběrem i pro začátečníky, a i v rámci C# fór se "začátečník" většinou dočká pouze pohrdavých reakcí "velkých" programátorů.

Dokonce pan Linhart a pokud si dobře vzpomínám i pan Jecha v některém ze svých článků již část osvěty pro C# vykonali, pročež by možná nemuselo být od věci pozeptat se i ostatních přítomných, nebylo-li by i pro ně zajímavé trochu důkladnější nahlédnutí do světa C#.

Pak bych ale doporučil, nebylo-li by možno upravit Váš seriál "začínáme" i pro C#, resp. udělat z něj takový průřezový materiál, který by vypíchl spíše ty rozdílnosti (filozofie a logika zřejmě zůstane, takže se jedná hlavně o syntax - jinak řečeno článek pana Linharta v praxi), no a pak by již nic nebránilo vrhnout se na to XNA přímo v tom C#. Bylo by to lepší hlavně z důvodu, který jsem popsal minule, kdy lze sice většinu funkčnosti XNA využít prostřednictvím VB, ale aby byl člověk schopen seskládat i něco sám a ne toliko opsat Vámi předložený příklad, musí mít možnost pracovat s dokumentací k celému tomuto frameworku, která se ale k VB nezná. Takže uživatel by se stejně tu syntax C# naučit musel, no ale pak už ale není zas až tolik důvodů lámat to zpátky ve VB.

Vím, že je to pro Vás hodně práce navíc, že se to jaksi zpronevěřuje samotnému názvu tohoto Webu, ale některé články zde uvedené již s touto dvojakostí počítají, výuka programování je z převážné míry výukou "programátorského myšlení", které je pro oba jazyky takřka shodné, a když i Vy sami se dostáváte k podobným úskalím výběru vhodného nástroje - možná takovéto doplnění webu by Vaše dilema mohlo vyřešit.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to docela problematické, hlavně v dobách, kdy .NET framework začínal, vsadil Microsoft na Visual Basic. Téměř všechny příklady v dokumentaci bývaly ve VB.NET a byly to skvělé časy. Dnes je věk C#, jeho syntaxe jistě vyhovuje většímu množství lidí, já také dost věcí píši v C#, i když stejně si na spoustu věcí nezvyknu a budou mě štvát.

Co se týče tutoriálů, asi to napíšu pro VB.NET. Stejně jsem přemýšlel, že bych o XNA výhledově napsal knihu, která by určitě byla pro C#, tak ať alespoň tady je VB.NET.

Máte pravdu s tím, že všude v dokumentaci a na fórech je v XNA použit C#, ale na druhou stranu když něco programujete a hledáte, tak je stejně nejlepší se podívat, jak se to dělá, a napsat si to sám. Poskládat hru z bloků vykopírovaných z fór stejně moc dobře nejde. A jinak existují i online konvertory kódu, takže stačí nakopírovat kód v C# do okna na stránce http://labs.developerfusion.co.uk/conver... a ono vám ho to převede do VB.NET. Podíváte se, jak co funguje, a můžete jej použít.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přimlouvám se za C#

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback