Page 1 of 1

DirectX eller en Game Engine?

Posted: 19 Jul 2011, 21:58
by Janman
Hej!
Jeg har programmeret i C++ i langt tid nu, og jeg er begyndt at lære DirectX 11 for at lave spil. Jeg synes at DirectX 11 er rigtigt svært, og det kommer til at tage lang tid at lære, men jeg er villig til at bruge tiden på det.

En ven sagde til mig, at jeg burde lære en Game Engine som UDK (unreal game engine) i stedet, fordi det er meget nemmere og hurtigere at lave spil i.
Jeg ville gerne være en programmør i fremtiden, ikke nødvendigvis en spil programmør, men jeg har ikke lyst til at lære noget, som man ikke kan bruge videre i spil industrien. hvad ville være bedst for mig at lære i fremtiden?

Hvad skal man kunne for at være en spil programmør?
Kan jeg få brug for DirectX ved siden af spil udvikling?
Behøver man at kunne en API som DirectX/OpenGL for at være en spil programmør?
evt. Hvilken game engine fortrækker i? (Jeg har selv prøvet Unity3D, som jeg synes godt om, men det ser ud til at andre Engines som UDK er bedre)

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 07:04
by simonmoeller
Unreal eller Unity 3D er efterhånden industry standard. Der kommer ikke til at blive brugt ret meget tid på hård tech-kodning i fremtiden imho.

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 08:16
by oliverdb
Tjaa simon, medmindre man vil kunne noget de andre ikke kan :-)

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 09:11
by ZeroHero
Spilprogrammering er et vidt begreb i dag, da der findes mange specifikke under kategorier som spilfirmaer benytter.
For at nævne nogle af dem er det: Grafik, AI-, Fysik-, Database-, Netwærk-, og Lyd-programmering. De alle høre under spilprogrammering. Langt de fleste tænker på grafikprogrammering som noget af det første, derfor er der også utroligt mange som kan noget med grafik. Hvis du vil vise et firma at du er god til programmere grafik er det vigtigt at du har så meget i rygsækken som muligt. Du vil højst sandsynligt ikke komme ind i et stort veletableret firma som grafikprogrammør uden at kende til enten OpenGL eller DirectX (med advanceret shader udvikling). Men mere vigtig er at du kan det grundlæggende vektor matematik til fingerspidserne. Mange firmaer giver programmører en matematik test eller en spørgerunde for at afteste dine matematiske kundskaber. Det vil være et kæmpe plus at du har erfaring med et kommercielt spilmotor. Ofte en som firmaet du søger ind hos bruger. Men det er ofte ikke et krav hos store firmaer. Hos mindre/små firmaer er det tilgengæld ofte et krav at du har erfaring med det specifikke motor som de end må bruge. Hvis dine matematiske evner ikke er vild gode er det en god idé at søge ind hos mindre firmaer. De andre kategorier jeg har nævnt har deres egene krav som du skal leve op til. Men fælles for dem alle er at jo mere specifik du er desto bedre er det hvis du vil søge hos store firmaer. Har du en stor 'all around' kendskab vil du nemmere kunne komme ind hos mindre firmaer.

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 11:03
by neckelmann
simonmoeller wrote:Unreal eller Unity 3D er efterhånden industry standard. Der kommer ikke til at blive brugt ret meget tid på hård tech-kodning i fremtiden imho.
På grund af ferie og generel mangel på ting at give mig til, gennemgik jeg lige "Top Sellers" på Steam for at hvilke engines der bliver brugt:

Custom engine: 9 (inkl. 2 XNA spil)
Source: 3
Gamebryo: 1
Unreal Engine: 1

(og et spil som jeg ikke lige kunne gennemskue hvad var lavet i)

Derefter gik jeg ind på "Worldwide Weekly Charts" på VGChartz for konsolspil for at se hvordan det så ud dér. Keder mig desværre ikke nok til at gennemgå dem allesammen, men af dem jeg checkede var næsten alle lavet med en in-house engine af en art, bortset fra et par Unreal Engine spil.

Lykkedes mig ikke at finde noget lavet med Unity.

Jeg ved ikke hvad man kan bruge min fantastiske ringe statistik til, men jeg tror det er et stretch at sige Unreal/Unity er industristandard.

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 11:10
by vonknut
Jeg tror at pointen var at Unreal / Unity er industri i DK.
-lige bortset fra alle dem der koder fra bunden / bruger flash self :)

Slag på tasken tror jeg at det i DK er 30% Unity, 40% andre engines (inkl. flash) og 30% egne engines (mest 2D).


M.a.o.

Så alt efter hvad du håber på at få af jobs, skal du sigte derefter.
Unreal / Direct X / open GL => Udlandet
Flash / Unity / egen 2D engine => mindre og mellemstore danske virksomheder

-antager jeg

Re: DirectX eller en Game Engine?

Posted: 20 Jul 2011, 17:39
by Janman
Tak for svar alle sammen!
Jeg tror bare at jeg ville forsætte med at lære DirectX 11, og lege lidt med Unity3D ved siden af :).

Re: DirectX eller en Game Engine?

Posted: 22 Jul 2011, 08:01
by Peter
Jeg er selv mest til DX11 da jeg syntes man kan mange flere fede ting end Unity og Unreal UDK som (endnu) ikke har DX11 support, og som derudover ikke lader dig rode rundt i maven på enginen.

Men det kan vel siges så simpelt: Vil du lave spil og er det et mål at have et færdigt spilbart produkt? Så vil jeg klart anbefale Unity3D da du ellers let rissikere at gå død i projektet. Men vil du lære at kode en engine, blive en dygtigere allround programør/arkitekt, samt til bunds at forstå teknikker som Shadow Mapping, Shaders, Audio processering (nævner i flæng), så er C++/C# og DirectX vejen frem. Men fokuser så på så demoer, hacking af SDK eksempler osv. istedet.

Personligt ville jeg aldrig vælge OpenGL da jeg syntes at det er DirectX underlegent i brugervenlighed og funktionalitet, samt at jeg har erfaring for at branchen primært bruger DirectX + konsol specifikke alternativer. Dette kan dog hurtigt blive en religionskrig, så vælg det du bedst selv kan lide.

Re: DirectX eller en Game Engine?

Posted: 29 Jul 2011, 08:54
by THadberg
Janman wrote:Tak for svar alle sammen!
Jeg tror bare at jeg ville forsætte med at lære DirectX 11, og lege lidt med Unity3D ved siden af :).
Hej Janman,

Hvis du mangler een at sparre med, så sig til. Jeg er selv nystartet med Unity, og vil meget gerne dele problemknusning på småprojekter eller arbejde på noget specifikt.
Du er velkommen til at smide en pm.

Mvh
Hadberg

Re: DirectX eller en Game Engine?

Posted: 15 Dec 2012, 12:33
by nife
Der sammenlignes pærer, bananer og appelsiner i denne tråd. De enkelte benævnelser dækker altså over både mere og mindre end blot grafik API'er (renderer) og spilmotor (engine).
Direct3D = OpenGL (groft fortalt) <> DirectX (en kategori for sig selv) <> Ogre3D (Renderer++, dvs. grafik mm.) <> Engine = Unity3D = UDK.

Der findes mange elementer inden for computerspil (plus de, som findes anvendelige inden for normale applikationer), der på ingen måde beskæftiger sig med grafik, og disse er i lige så høj grad vigtige at beherske - måske ikke til fulde, men om ikke andet så til husbehov - med mindre man vælger at specialisere sig i ét specifikt element og glemmer alt andet omkring sig.

For nu at sammenligne OpenGL med Direct3D uden at komme ind omkring de tekniske forskelle (for der er trods alt nogle stykker), så benyttes D3D hovedsageligt af AAA-spil til Windows og Xbox (selvfølgelig, når der tales om MS-produkter). Dog benyttes en specialudgave (lettere begrænset og optimeret) af OpenGL til PS3 (Linux-distro) samt "normal" OpenGL til både MacOSX og Linux. Det sjove er, hvad enten man kan lide MacOSX eller ej, så hjælper systemet med (igen, for i halvfemserne før D3D var det sjovt nok også populært) at udbrede brugen af OpenGL inden for AAA-spil, hvilket igen lover bedre muligheder for os med en forkærlighed for Linux. Steam er jo også begyndt at tilrettelægge deres strategi mod målrettet at få udbredt de fleste spil til både Windows, MacOSX og Linux (specifikt Ubuntu, men det kan jeg godt leve med, for det begrænser deres fejlsøgning til én distro). Taler man om mobilspil, hersker OpenGL også her, dog i en noget bedaget udgave (OpenGL ES).
Kort fortalt er OpenGL altid blevet brugt til mange forskellige formål (især i medicinalindustrien), medens D3D hovedsageligt har været målrettet spilindustrien på MS-platforme. Dette gør dog ikke OpenGL ringere i forhold til ydelsen, for begge API'er er optimeret til rasterisation (blandt andet opdeling af grafikken i trekanter) og optimeret (bedre/ringere, alt afhængigt af især platform, men også den specifikke applikation) af producenterne af grafikprocessorenheder.