ChrML Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Hei alle sammen! Jeg har drevet med programmering i 7 år nå og er 19 år gammel. Har vært med i Multi Theft Auto teamet og vært med å lage en av de mest suksefulle multiplayer modene til GTA: San Andreas (www.mtasa.com). Det er modulbasert, består av 7 forskjellige abstrakte moduler, server og har støtte for LUA scripting server og clientside. Har også laget en klone av Frets On Fire i friminuttene (og timene ) på skolen og laget noe småting fra tid til annen. Har alltid hatt lyst til å starte et skikkelig prosjekt, å lage en spill motor helt eller delvis fra bunnen av som er veldig fleksibel og bra basert på DirectX 10. Tenker da på motor med mulighet til å tegne realistiske verdener, med det aller meste basert på fysikk, dvs alt kan "dette ned", bli ødelagt og flyttes. Partikkelsystemer og et enkelt map system som benytter seg av et bibliotek med 3d modeller som hver har data tilknyttet om hvordan de virker sammen med andre 3d modeller og fysikk parametere som motoren benytter seg av. Med dette kanskje bygge en måte for motoren å lage et dynamisk map basert på informasjon fra en fil og et bibliotek med modeller og dynamisk scenary (omtrent som pixelmapping, bare litt mer komplisert). Tanken er å bruke DirectX 10 da denne har et programmerbart pipeline som er mye mer fleksibelt. Hele programmet må være basert på OOP C++ og ha et bra design fra bunnen av optimalisert for fart og fleksibilitet. Har ingen erfaring med DX10 enda selv, og ganske lite med DX9 (bare det grunnleggende), men har masse erfaring med C++ generellt og noen andre programmeringsspråk. Hadde vært morro å starta et prosjekt sammen med andre norske folk som kan faget godt! Leiter derfor etter noen å jobbe med som har god erfaring innenfor programmeringsspråk, må kunne C++ godt og ha god erfaring med abstrakte systemer og design, og helst litt erfaring med DX. Trenger da også 3d og 2d designere. Prosjektet er foreløpig under planleggingsfasen, men kunne tenke meg å diskutert muligheter med noen innenfor dette faget og kanskje lagt ut en plan og få begynt på det. Planen er da en close-sourced motor i utgangspunktet, mest for morroskyld og som hobby på kveldstid, så ser vi hva vi gjør med motoren/spillet om det blir en suksee. Kan treffes på msn, [email protected] eller her på PM/svar. Blir borte på Lørdag og frem til Søndags kveld. Lenke til kommentar
Giddion Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Setter du som krav at koden må være close-sourced? Tenker du å bare bruke DX10 (dvs. ikke opengl openal osv..)? Lenke til kommentar
ChrML Skrevet 4. juli 2008 Forfatter Del Skrevet 4. juli 2008 (endret) Vil helst bruke DX10 inntill noen kan overbevise meg om at OpenGL er veldig mye bedre (annet enn kompatibilitetsmessig med *nix). Er mest kjent med det og de fleste nye kommersielle motorer bruker det. Men er åpen for å bli overbevist, vil gjerne se noen sammenligninger på DX10 vs OpenGL 2.x performance, funksjoner og bildekvalitet. Hadde ikke gjordt noe å lagd den platform uavhengig, men er ganske sikker på at 99% av de som bruker dataen til å spille på bruker Windows. Tenkte på closed-source, dvs lukket innenfor teamet (privat SVN) inntil prosjektet er til en viss grad ferdig, så kan vi se hva vi gjør med det da, om vi lager en spillbar demonstrasjon og ser hva som dukker opp av interesse for et ferdig produkt (om vi får til noe veldig bra) eller bare åpengjør SVN'en for almenn tilgang om det ikke blir så heftig, men likevel har et stort potensiale for videre utvikling. Endret 4. juli 2008 av chrml Lenke til kommentar
Caene Skrevet 5. juli 2008 Del Skrevet 5. juli 2008 (endret) [...] Men er åpen for å bli overbevist, vil gjerne se noen sammenligninger på DX10 vs OpenGL 2.x performance, funksjoner og bildekvalitet. [...]Funksjonsmessig er Direct3D 10 og OpenGL omtrent like, ihvertfall etter hva jeg har lest. Grunnet extensions-systemet til OpenGL blir mye av de nye funksjonene, som f.eks. geometry shaders, lagt inn i OpenGL. Angående bildekvalitet vil jeg tro at dette går mer på kort/driver enn API. Ytelsen vil variere litt fra funksjon til funksjon, men etter hva jeg har lest er det rimelig likt jevnt over. De fleste spill som blir portet (ordentlig) til Linux/Mac kjører jo OpenGL, og har omtrent samme ytelse i forhold til hardware. Alt i alt vil jeg tørre å påstå at det beste valget er det du/gruppen kan best. Ellers er det kanskje bedre å abstrahere kall til OGL/D3D og dermed muliggjøre bruk av begge API. Mer jobb, men det er en vanlig del av en spillmotor. [...] Hadde ikke gjordt noe å lagd den platform uavhengig, men er ganske sikker på at 99% av de som bruker dataen til å spille på bruker Windows.[...] Men hvor mange av disse 99 prosentene bruker Vista? Lykke til med prosjektet! Endret 5. juli 2008 av Caene Lenke til kommentar
GeirGrusom Skrevet 5. juli 2008 Del Skrevet 5. juli 2008 Funksjoner blir tilgjengelig i OpenGL med en gang driveren støtter det. I Direct3D må du vente til neste utgave, som det som regel er flere år i mellom. Og i et Direct3D program må grafikkdelen mer eller mindre skrives om for hver nye D3D versjon. Lenke til kommentar
ChrML Skrevet 5. juli 2008 Forfatter Del Skrevet 5. juli 2008 Nå har ikke jeg satt meg inn i OpenGL API'en enda, så veit ikke hvor forskjellig den er fra DX. Problemet jeg kan se med å abstrahere er at OpenGL sannsynligvis har optimaliseringer og smarte løsninger som DX ikke har og omvendt, som gir problemer dersom dette skal knyttes opp mot et generellt og felles interface. Tenker da performance og funksjonalitetsmessig, da begge API'er har forskjellige high-level shader språk for eksempel, og å måtte gjøre ting som dobbelt-kopiering, konverte og ignorere de lure løsningene/kombinasjonene hver API gir for å øke ytelsen og funksjonaliteten. Det er ihvertfall det jeg tror kan bli et problem etter tidligere prosjekter jeg har vært del av hvor vi har knyttet to ganske forskjellige API'er opp mot et generellt interface. Dvs fullt mulig, men for mye kode og mindre fleksibilitet i interfacet. Riktignok har mange motorer abstrahert disse før oss og resultatet har blitt bra, men jeg tror det kan bli bedre og raskere ved å basere seg på en API og skrive den veldig grunnleggende delen av den grafiske delen av motoren rundt den. Godt poeng det at ikke alle har oppgradert til Vista enda og at DX10 bare skal finnes til det. Dersom OpenGL har like mange muligheter og ligger på samme nivå som DX10, bare med mye større kompatibilitet, så vil jo det å basere seg fullstendig på OpenGL være den beste løsningen da dette kan kjøre på både Windows og andre platformer med OpenGL støtte. Selvfølgelig må det skrives en grunnleggende grafisk og mattematisk del som tar hånd om all dirty-worken, som testes grundig og optimaliseres til det beste som resten av prosjektet baserer seg på. Denne grunnleggende delen må ikke dummes ned så det går på bekostning av ytelsen eller funksjonaliteten, men derimot gi et bibliotek som tilfredsstiller resten av prosjektet med alt det trenger og med mer funksjonalitet som forenkler videre utvikling betraktelig. Skal lese litt på OpenGL . Lenke til kommentar
Giddion Skrevet 5. juli 2008 Del Skrevet 5. juli 2008 (endret) Ytelse (i fullscreen) er i teorien like og blir et spørsmål om drivere. Jeg vil anta at DX10 er bedre optimalisert. DX10 er etter det jeg har hørt enklere å lage driver til også. DX10 har flere nye funksjoner enn OGL 2.1, men så har du jo extentions så på Nvidia kort er det full "dx10", men ATI/AMD er ikke så "flinke" til å lage GL driver så det er en annen historie. edit: Når det gjelder shadere i d3d og GL så har man jo CG som funkerer på OGL, DX9 og DX10. Endret 5. juli 2008 av Giddion Lenke til kommentar
GeirGrusom Skrevet 5. juli 2008 Del Skrevet 5. juli 2008 ATI har elendig OpenGL støtte, spesielt på billigkort, og for laptoper. Jeg har hatt problemer med at OpenGL proghrammer nesten ikke hgar gått rundt på laptoper med ATI Xtream eller hva det en heter. En annen fordel med DX er at de fleste funksjonene som du må skrive selv i OpenGL følger allerede med DX. I OpenGL må du skrive egne matrise, vertex og dermed også perspektivfunksjoner og lignende. Når det gjelder shaders så er det bare å bruke Cg, som er støttet av både OpenGL og Direct3D (samarbeid mellom MS og nVidia) Lurer på hvorfor de ikke har implementert GL_nv_radial_distance_fog i Direct3D, dette er noe jeg synes er helt nødvendig, men er likevel fraværende i D3D 10 etter det jeg vet. Det den GL extensionen gjør i korte trekk, er at tåken går i sirkel istedet for å være en plate foran viewporten. Der kommer egentlig den største ulempen med D3D ut: en får ikke lagt inn ting som skjermkortet støtter før neste DX versjon. Dette skjedde med shadere når det ble utviklet også, D3D lå alltid etter hva skjermkortet var i stand til å gjøre, og det er like sant i dag. Lenke til kommentar
ChrML Skrevet 6. juli 2008 Forfatter Del Skrevet 6. juli 2008 Kjenner til det problemet med ATI drivere under linux fra en tid tilbake når jeg prøvde å få diverse spill til å fungere på Wine. Fikk ikke noe til å fungere til jeg fikk et nVidia kort, da kjørte det aller meste greit. Trodde disse problemene var relaterte til at ATI ikke gadd å supporte OS'et, ikke OpenGL, men ser at det å implementere OpenGL i driveren er en del mer jobb enn å implementere D3D support som mer eller mindre wrapper kortets funksjoner. Det jeg ikke liker med OpenGL er C interfacet (10 forskjellige navn på samme funksjon pga C ikke støtter overloads ol..), men det kan man jo leve med i den lille biten av motoren OpenGL blir brukt direkte. Heller egentlig mest mot D3D 10 foreløpig pga den supporten den har for alle kort innenfor Windows, men hvis noen kan OpenGL godt så kan vi jo se hva som er mulig innenfor det å supporte begge uten at det går på bekostning av ytelsen. Noen interesserte btw? Lenke til kommentar
GeirGrusom Skrevet 6. juli 2008 Del Skrevet 6. juli 2008 Det jeg liker med OpenGL er C interfacet dette synes jeg er noe av fordelene med OpenGL, fordi det fører til to ting: - Tettere integrasjon med grafikkmotoren - C ABI støttes av de aller fleste andre programmeringsspåk. Beste grunnen til å bruke Direct3D er at de fleste ting allerede er gjort for deg. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå