it-swarm-eu.dev

Programování her: C # nebo C ++?

Rozhodl jsem se, že opravdu chci udělat programování her. Otázkou tedy je, že jako 18 letý, který se chce naučit samouk programování, jaký je nejvhodnější programovací jazyk mezi C # a C++? (Měl bych říci, že se nestarám o Unix, protože věřím, že okna budou stále nejpoužívanějším OS)

Znám základy C++, ale nic o C #. Vím, že C++ má více průvodců, dll a podobných výukových programů, zatímco C # ne, ale je mnohem snazší se naučit a používat pro jednu osobu pro vývoj programu, ale četl jsem, i když je program zmatený je snadné získat zdroj toho.

Nejprve se chci nejprve soustředit na základní, musím říci, že mám pro C++ preferenci jen proto, že mi připadá vhodnější, ale musím zvážit, že pracuji sám. Takže i když se mi to líbí, nemusí to být to nejlepší.

Opravdu si nejsem jistý, pro koho je třeba jít, četl jsem mnoho vláken na různých webech a vypadá to, že C # je stále populárnější než C++. Ale jo, to znamená, že jsem také uvedl, že chci dělat programování her. Takže potřebuji znát nějaké lepší body, než jen „C # je snazší kvůli zpracování .net paměti, zatímco C++ ne“, protože jsem to nemohl jen najít.

15
Chronix

Učím se C++ programováním hry. To byl velmi příjemný zážitek. Velmi vás vyzývám, abyste udělali totéž!

Nyní jsem však programátorem C #, vím, že bych byl mnohem produktivnější, kdyby byl v té době k dispozici C #.

C # je ideální volbou pro učení vývoje hry. Má vše, co potřebujete, od rámců k knihám a jazyk je úžasný.

Viděl jsem desítky knih konkrétně napsáno C # Programování her a Microsoft vyvíjí velké úsilí, aby vylepšil své rámce, včetně DirectX a [~ # ~] xna [~ # ~] .

[~ # ~] update [~ # ~] : možná vás bude zajímat i toto . Je to nedávný blogový příspěvek od Miguela de Icazy .

UPDATE 2013-02-22 Společnost Microsoft plánuje končit podporu XNA .

21
user2567

Většina herních společností používá C++, možná s python skripty nebo jiné jazyky běžící na pozadí. Moreso, protože vazby pro OpenGL a DirectX jsou zaměřeny na C++ (altho jsem si jistý, že dokážete udělat tolik) Direct3d věci v C #), ale pro programování her, C++ je HLAVNÍ jazyk.

I když vám dám spravedlivé varování (a nenechte se odradit), ale 3D grafika se může stát velmi komplikovaná. Nový Direct3D je o něco jednodušší, než tomu bylo dříve, ale stále je to dobrý matematický (což může být docela matoucí) a právě samotné knihovny mohou být matoucí.

Nejdříve bych začal s něčím velmi jednoduchým. pro 2d věci SDL (Simple Directmedia Layer) je mnohem jednodušší použití (pro něco, jako je hra shora dolů), jakmile se dostanete do 3D I OSOBĚ si myslím, OpenGL je snazší se učit (ale to je všechno názor). MS má ve své dokumentaci DirectX SDK několik pěkných výukových programů/ukázek, takže stojí za to se na ně podívat. Nehe návody, i když trochu zastaralé, jsou stále pěkné.

ale ano, abych odpověděl na vaši otázku, všechny se obvykle dělají v C++.

12
user6791

Nejprve budete chtít nastavit některé priority. Chcete si nejprve udělat hru a pak se dozvědět o pokročilejších aspektech programování později, nebo naopak. Oba přístupy mají své klady a zápory, ale podle mého názoru jsou oba legitimní.

Pokud chcete začít dělat hry, doporučuji naučit se C #. Pokud již znáte základy C++, pak byste neměli mít problémy s vyzvedáváním C #. Vytvoření C # vašeho nástroje má výhody. Je to snadné naučit se jazyk (ve srovnání s C++) a jedná se o „spravovaný jazyk“, což znamená, že automaticky provede instalatérství paměti (něco, s čím má mnoho začátečníků v C++, a dokonce i nezačátečníci, potíže s ). Rovněž vám poskytuje přístup k XNA Framework společnosti Microsoft, který pro vás dělá ještě více únavné instalace. To vám umožní soustředit se na věci, jako je herní cyklus a design, aniž byste se museli starat (příliš mnoho) o to, aby to fungovalo. Je pravda, že všechny instalatérské práce mají své režijní náklady, což znamená, že pravděpodobně nebudete vyrábět 3D hry v průmyslovém měřítku, ale právě se chystáte do programování her, takže pochybuji, že příští Halo provedete na několik prvních pokusů . :)

Zde je posmrtný příspěvek od člověka, který vyvinul úspěšnou hru XNA (Weapon of Choice). Podrobně popisuje, jak mu použití C #/XNA ušetřilo čas na vývoj, na rozdíl od nutnosti používat C++. http://www.gamasutra.com/view/feature/3899/postmortem_mommys_best_games_.php

Jak již bylo řečeno, měli byste investovat nějaký čas do alespoň vědět, jak věci fungují na pozadí. Jak by to programátor C++ udělal. Naučit se dělat hru v C++ může usnadnit připojení k jinému týmu pro vývoj her (protože většina z nich pracuje v C++), pokud chcete získat základ v herním průmyslu. Ale i když nakonec nepoužíváte C++, vědět, jak interní práce, vám může pomoci udělat lepšího programátora, bez ohledu na to, jaký jazyk používáte.

8
System Down

Syrové programování her vás nechá docela chladné. Práce s nízkoúrovňovými grafickými hovory v C # nebo C++ je malá noční můra a opravdu nechcete znovu vytvářet kolo vykreslování 2D skřítků, natož 3D modely. Protože jste sami a chcete se naučit programování, nejlepší je najít rámec, který vás může trochu posunout vpřed.

Vzhledem k tomu, že máte nějaké znalosti jazyka C, měl bych navrhnout nity 3D pohled. Nejen, že zažívá nějaké vážné přijetí v adopci z komerčních herních obchodů, a má některé zajímavé možnosti platformy (včetně PC, Android, iPhone a webových runtime), ale také má bezplatnou verzi, která se velmi snadno používá a spoustu tutoriálů ukázat vám, jak přejít od konceptu k implementaci. Nejlepší ze všech (IMO) jedním z podporovaných skriptovacích jazyků je C #.

3
Jacob Proffitt

Velmi podporuji C++ pro vývoj her. Existuje několik dalších překážek, s různými klady a zápory, jedním z nejlepších důvodů je přenositelnost.

S C # se v těchto dnech můžete vyvíjet o dost více, a tam jsou určitě úžasně skvělé motory naprogramované v něm určitě. Oba tyto jazyky jsou dobrým jazykem pro programování her. Pokud cílíte pouze na platformy Windows/Xbox, budete mít zvláště důvod naklonit se k C #.

Jazyk, který si myslím, že byste se měli učit, by byl OpenCL nebo CUDA, nějaký jazyk GPGPU. Osobně dávám přednost OpenCL, protože se zdá, že vydrží a dále roste, je to v podstatě jen styl C. Existuje OpenTK , což je pěkný obal pro C++ nebo C #.

Vždycky jsem přemýšlel, co Ruby herní programování by bylo jako s hardwarovou akcelerací ...

3
Garet Claborn

Udělal jsem hru pro třídu před dvěma lety (tehdy mi bylo také 18) a udělali jsme to v C #. I když pozoruji, že velké programy C # obvykle pracují pomaleji než velké programy C++, C # také vyžaduje mnohem méně práce na vašem konci. Správa paměti se provádí automaticky a pro první hru je to dost rychlé. (Naše hra je plnohodnotnou 2D multiplayerovou hvězdnou hvězdou typu RTS.)

Byl bych root pro C #, protože by mělo být snazší spravovat. Pokud se však chcete stát profesionálním vývojářem her, nezapomeňte, že funguje pouze na platformách Microsoft. (Přesto, C # může být dobrým odrazovým můstkem do C++, a kdybych se musel naučit oba jazyky, pokusil bych se nejprve C #.)

2
zneak

Hlasoval bych pro C++ - především proto, že to může být multiplatformní (v závislosti na tom, jak píšete kód, samozřejmě) a také proto, že si myslím, že vám dává více znalostí o správě paměti - protože potřebují starat se o to. Ale protože se nestaráte o linux/unix, pokud chcete nechat paměťovou složitost na okamžik, proč nezaostřit v C # právě teď a pak se učit C++ taky?

1
Mauren