Programmering :O

Tags:    programmering

<< < 12 > >>
Hej igen...


Vil gerne erkende at min ønske om at blive spilprogrammør er lige kommet, selvom spil har interreseret mig for spil (MMORPG) i laaaaang tid.


Men vil høre om der er nogle bøger, hjemmesider til hvordan man programmere lidt, så jeg kan få lidt blod på tanden, eller skal jeg vente til jeg begynder min uddanelse :'( :P



13 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hvis du ønsker at programmere spil, skal du bruge C++/C, så jeg
vil anbefale dig at gå ind på libris.dk og søge efter michell cronberg, han har lavet nogle gode begynder bøger om grundlæggende C++/C programering



Jeg bruger altid bøger til at lære mere i, og de fleste findes på http://www.amazon.co.uk. Prøv at søg på "Game Development" eller "Game programming".

Min blog: http://winsor.hotserv.dk



Nu er spil jo i og for sig et vidt begreb. Vil du lave spil der kræver en grafisk avanseret teknologi, eller vil du lave spil der kan kodes i løbet af et par uger af en enkelt person! Dette er skrevet med henblik på pc spil.

Hvis du bare vil prøve at lave spil for sjovt er grænserne uendelige. Stort set alle tænkelige sprog kan bruges - selv flash ( der ikke engang er et sprog )! Ofte vil spil der tager brug af et mindre kompliseret api, eks. Win32 Api'en, udløbe i en eller anden form for tekst baseret spil eller et simpelt 2D spil. ala. kortspil, terningespil, kryds og bolle, skak osv. Der er mange forskellige grene at fordybe sig i.

Vil du derimod gerne lave spil der grafisk er mere kompliseret, kan du kigge på den berømte/berygtet api DirectX. Den er et rigtigt godt bud på at processere hurtig raster grafik. Så du kan lave spil mere ala Diablo, Starcraft osv. De fleste sprog kan også hamle op med at udnytte denne api optimalt. Dog skal du forberede dig på indlærnings kurven for DirectX api'en er væsentligt længere end Win32 api'en. Og specielt hvis vi taler om effektivt optimeret kode.

Vil du tage skridtet længere ud og lave 3D baseret spil er der to berømte api'er: Den allerede nævnte DierctX (3D komponent) og OpenGL. Begge disse to api'er er hardware understøttet og er derfor det hurtigste du kan få mellem fingerene pt. Det tager også utrolig meget tid at komme helt til bunds i disse to api'er. Det er dog kun kompiler sprog der optimalt kan udnytte disse api'er. Men til privat brug er der dog stadig mange sprog der kan anvendes. DirectX og OpenGL er som sagt store api'er at komme igennem. Oftest ville du kunne spare tid ved at vælge en grafikmotor eller wrapper der klare de mest fundamentale ting for dig som ellers ville tage dig månder at sætte dig ind i. Jeg er selv ved at bygge sådan en wrapper/motor da jeg selv er ved at være godt træt af hele tiden at skrive det samme kode for hver projekt jeg laver. Den bliver nok lagt ud som freeware en dag. Men der er allerede et hav af disse motor/wrappers lagt ud på nettet som bl;iver hyppigt anvendt. Nogle bliver supportet/dokumenteret bedere end andre...

Men det var så primært den grafiske del... De andre elementer i et spil er heldigvis ikke nær så (hardware) kompliseret at gå i krig med. Fysik, Kunstigt Intelligens osv. bliver stort set altid baseret på cpu'en. Afhængigt af hvor tungt/stort dine spil udarter sig jo stærkere et sprog kræves der. En god tommelfinger regl er at holde sig til objekt orienteret sprog - med mindre du vil lave håndholdte spil som GBA osv.

Håber det kunne hjælpe dig lidt i den rigtige retning!



Hvis du ønsker at programmere spil, skal du bruge C++/C, så jeg
vil anbefale dig at gå ind på libris.dk og søge efter michell cronberg, han har lavet nogle gode begynder bøger om grundlæggende C++/C programering


HAr lige væretinde og søge, den fandt intet resultat



Hvis du ønsker at programmere spil, skal du bruge C++/C, så jeg
vil anbefale dig at gå ind på libris.dk og søge efter michell cronberg, han har lavet nogle gode begynder bøger om grundlæggende C++/C programering


sry var lidt for hurtigt. tak får rådet :P



hvis du har prøvet at kode før kan du kigge lidt på denne side,
den skulle vist nok være god
http://www.gamedev.net/



For det første kan han benytte ETHVERT sprog, det skal bare lige fastslås, før jeg fortsætter ;) Der er jo ingen grund til at binde ham til et enkelt sprog, blot fordi mange andre bruger det, for der er jo muligheder med stort set alle sprog.
For det andet benytter langt de fleste firmaer (grundet deres eksisterende mængde kode) C/C++, men der er også begyndt at opskyde firmaer, der enten benytter C# eller Object Pascal (det, mange kalder Delphi), så derfor kan jo af gode grunde anbefales at vælge et af disse (navnlig C++, da dette er industriens foretrukne for tiden).
Der findes også en hel del firmaer efterhånden, der benytter en form for .NET til deres udviklingsværktøjer, mens selve spillene programmeres i C++.

Der findes en masse ressurser på nettet, heriblandt mine foretrukne:
http://www.gamedev.net (her løber du aldrig tør for stof, det er derfor også min primært besøgte side)
http://www.flipcode.com (siden er godt nok blevet nedlagt for kort tid siden, men dens arkiver indeholder en masse gode idéer/kode)
http://www.gamasutra.com/php-bin/article_display.php (tja, tag et enkelt kig og bliv ganske enkelt forundret over mængden af kvalitets materiale!)
http://www.gdcmobile.com/archives/ (arkiv af præsentationer fra Game Developer Conference op gennem årene)
http://www.google.dk til resten ;)

1101110100010110000101000001

Killers don't end up in jail - they end up on a high-score!

[Redigeret d. 13/12-05 16:50:08 af Nicolai Lyster Fersner]



okay må godt nok indrømme at jeg ikke vidste man kunne bruge delphi til at skrive spil i, troede at C/C++/C# var den eneste løsning på det problem, men hvor meget bliver det brugt, hver gang jeg ser nogle tråde om spil udvikling ender det altid med at det er C++ der er det bedste, som regel grundet afviklings hastigheden



Faktisk er Object Pascal cirka lige så hurtig som C++ (det ene er hurtigere på nogle områder og vice versa), der er blot flere faktorer, der gør, at C og C++ er blevet en hel del mere udbredt, og jo nærmest gjort til standardaliseret sprog, inden for spil udvikling.

Faktum er, at utroligt mange sprog, herunder C/C++/Object Pascal/.NET/VB/Java er blevet "udbygget" (dvs. der er blevet lavet libs/plugins) med grafik-API'er (Direct3D/OpenGL) og lyd-API'er (DirectSound/DirectMusic/OpenAL), hvorfor man rent faktisk kan formå nogenlunde (hvis ikke helt præcist) det samme med de forskellige sprog rent grafik/lyd-mæssigt (hvilket jo netop kan være et spil). Selvfølgelig er der hastighedsforskelle og syntaks forskelle, men i bund og grund kan de rent faktisk alle sammen bruges til spil, idet de kan forbindes direkte til grafik og lyd.

I øvrigt er C++ teknisk set langsommere end C (bemærkede lige, du skrev C/C++/C# og at C++ blev valgt pga. hastighed), hvis man benytter nogle af C++'s mere avancerede egenskaber, som fx virtuelle funktions kald, men dette kan som reelt ikke mærkes på afviklings-hastigheden (ved virtuelle funktions kald skal der kun tilgås en ekstra adresse i den virtuelle funktions kalds tabel for hver enkelt klasse, for at finde funktionens reelle adresse, i stedet for at tilgå denne direkte, men det vil jeg ikke gå nærmere ind på her).

Det er som altid en kamp mellem produktivitet vs. afviklingshastighed (C vs. C++ og C++ vs. C#), og platforms afhængighed for C#'s vedkommende (idet konsollerne for øjeblikket ikke kan afvikle .NET, og ikke-MS konsoller formentlig ikke vil komme til det i fremtiden), og det er svært at skulle kunne sige, hvad fremtiden bringer.

1101110100010110000101000001

Killers don't end up in jail - they end up on a high-score!

[Redigeret d. 13/12-05 22:12:34 af Nicolai Lyster Fersner]



Tak for den lille gennemgang, jeg har lært noget nyt i dag Hurra det er rart at vide at der ikke er monopol på dette marked.



<< < 12 > >>
t