Spil programmering

Tags:    diverse

<< < 12 > >>
Hej :D
Jeg har sat mig for at jeg vil lære at lave simple spil, på ren hygge niveau. Mit største problem lige pt. er dog at finde ud af hvilket sprog jeg skal lære. Jeg holdt længe på C++, da det ligner er robust og stærkt sprog. Lige nu hælder jeg dog mere mod Java. Men kan man godt lave spil i Java der køre ordentligt? Eller kræver Java for meget maskinkraft, til at det reelt kan lade sig gøre?



Hvis du bare skal lave det på et hygge niveau, så er java så rigeligt kraftigt. I gennemsnit er eksekverings hastigheds forskellen på Java og C++ ikke så stor, og til projekter hvor maskinens kapacitet er kritisk losses det meste alligevel over på GPU'en gennem det samme interface. Vi kan med andre ord udnytte GPU'en ligeså effektivt. Tilbage er der så AI, lyd og fysik simulering til CPU'en. Fysik kan være tungt, men ellers er det relativt simpelt arbejde, hvor CPU'en sagtens kan være med.

Personligt har jeg ikke rigtig forstået folks begejstring for C++ i spiludviklings verdenen, og når man så endelig spørger dem så svarer de bare "jamen det bruger alle andre også", hvilket jeg synes er lidt tyndt.

Ellers så er der i den lettere ende sproget Lua (det er lært på et par timer, det er nemlig ikke ret omfattende) kombineret Löve frameworket.
se:
http://love2d.org/
og et par kom i gang video tutorials
http://www.vimeo.com/1506931
http://www.vimeo.com/1628621

I genren for "grafisk programmering" er der værktøjerne The Games Factory (der siden jeg var på din alder er kommet op i version 2...), samt dens storebror multimedia fusion, disse programmer koster desværre penge :( (dog forærer de version 1 væk, men den er efterhånden temmelig gammeldags).

At dømme ud fra din profil og det du skriver i dit indlæg, så vil jeg anbefale lua/löve løsningen, fordi:
-du er igang med det samme, i modsætning til c++ og java hvor du skal kode en krig for overhodet at få noget frem.

-det du lærer i forbindelse lua/löve løsningen kan du senere tage med dig, da måden löve gør tingene på egentlig er meget typisk.

og et par råd
-Lad vær med at skyde over målet!!
Start med noget pingpong/arkanoid agtigt

-3D grafik er svært!!
Lad vær at sætte næsen op efter det for hurtigt, for hvis det skal gøres ordentligt så skal matematikken virke rigtigt. matematikken er som sådan ikke så svær når først man får lidt følelse med det, men den falder desværre uden for både folkeskole og gymnasie pensum.

-Øvelse gør mester.
Så gå bare til den.


Jeg håber det hjalp, ellers må du spørge igen.

//Troels



Jeg vil give Troels ret langt hen ad vejen.
3D grafik er svært hvis man ikke har en rimlig forståelse af vektor grafik. 3D grafik er også kompleks i forhold til udviklingstiden. Det tager lang tid at lave 3D grafik. Først skal der modelleres, sættes tekstur (texture) og evt. animeres. Alt det tager RIGTIGT lang tid. Hvis man så oven i købet vil starte fra bunden med en spil/grafik motor tager det bare ENDNU længere tid. Der er utrolig mange ting man skal sætte sig ind. Ikke mindst er det interessant.

Hvis du forventer at starte fra bunden og havde et spil klar i løbet af et par måneder, der kan konkurrere mod kommercielle titteler, kan du godt tro om igen. Det er derfor vigtigt at gøre op med dig selv om det er spilprogrammering eller spilværktøjer du vil lave.

1) Spilprogrammering er selve programmeringen for et specifikt spil (gameplay).

2) Spilværktøjer er programmering til værktøjer til at lave spil så som spilmotor, med blandt andet en fysikmotor, grafikmotor, AImotor (Kunstigt intelligens) o.s.v.

Hvis det er fordi du har et specifikt spil (Gameplay) du gerne vil realisere, skal du stærkt overveje om det virklig er værd overhovedet at lære et objekt orienteret programmeringssprog så som C++ og Java (eller et andet). Ville det ikke være bedere at finde at finde en spilmotor der kan modificeres af scripts, så som Unreal enginen, Oblivion enginen, Farcry engininen o.s.v.? Der findes et hav af kommercielle spilmotor der tillader dig at modificere et spil.

Du kan også overveje om det overhovedet behøver at være 3D grafik. Hvis ikke findes der utrolig gode værktøjer så som Flash, der relativt hurtigt kan hjælpe dig i gang med spændende 2D titler. Der er også alternativer så som GameMaker, der hovedsageligt beskæftiger sig med 2D spil.

Held og Lykke
Søren Klit Lambæk



Hej :D
Jeg har sat mig for at jeg vil lære at lave simple spil, på ren hygge niveau. Mit største problem lige pt. er dog at finde ud af hvilket sprog jeg skal lære. Jeg holdt længe på C++, da det ligner er robust og stærkt sprog. Lige nu hælder jeg dog mere mod Java. Men kan man godt lave spil i Java der køre ordentligt? Eller kræver Java for meget maskinkraft, til at det reelt kan lade sig gøre?


Kan du programmere i forvejen ?
Hvis ikke, vil jeg anbefale dig at starte med Java.

Det er det vi bruger på www.komogvind.dk og jeg har i min fritid også leget med 3D og fysik gennem Java (http://www.jmonkeyengine.com/ ).

C++ kan alt det samme som Java (og lidt mere), men er også noget mere komplekst at arbejde med, og giver mere obskure fejlbeskeder, når man gør noget, man ikke må.

Så Java er et godt begyndersprog.



Hvis det bare er på hygge niveau er managed kode fint... og hvis du kan lide C/C++ kan du sikkert også godt lide C# bakket op af XNA game studio...

DL Visual C# express og XNA.. det er gratis og hvis man er en lille hyggefætter som jeg selv er og bare prøver at lære noget programmering og design patterns er C# fint.

Jeg startede selv med C++ men jeg er kan nu godt lide managed kode for så kommer ens mor og ryddr op efter en :P

PS XNA og C# kan let smides ud på en XBOX 360 også... det kræver bare du vil ofre penge på at blive premium member hos Microsoft Creators Club.

Håber det giver lidt inspiration... Ved ikke noget om Java men går ud fra der ikke er meget forskel på det og så C# da de begge kræver en runtime at køre overliggende på...

MEn flaame hvis jeg ikke har ret i hvad jeg siger nu... men synes jeg har læst et par steder efterhånden at managed kode er fremtiden... selv for store og komplekse spil...



Jeg vil faktisk give Kent ret. Jeg havde egentligt ikke tænkt på C# og XBox muligheden. Det er en interessant mulighed Microsoft har givet amatør programmørene. Jeg har dog ikke selv arbejdet med XNA så jeg kan ikke sige om det er så fedt som Microsoft har lagt op til, men der vel kun en måde at finde ud af det på. Angående managed kode og fremtiden er det nok ikke helt forkert. Da hardwaren bliver hurtigere og hurtigere vil mangaed kode få mere og mere indpas i spilindustrien, da managed kode er nemmere og mere elegant at arbejde med. Store spilvirksomheder så som Lionhead har da også af den grund C# som krav hvis man vil søge job hos dem. Mon ikke mange andre firmaer går samme vej? :)



Jeg bruger selv C#, men det er dog ikke med XNA, her bruger jeg Tao (Så kører det også på linux).

Jeg har dog kigget lidt på xna også, og det virker ikke helt dumt, og der er et hav tutorials på nettet, hvilket bestemt er en god ting.

men hvis man stortset aldrig har programmeret før, så kan det måske godt være en lidt stor bid (det er selvfølgelig individuelt), og derfor anbefalede jeg löve/lua løsningen.




Hej Simon,

C baserede sprog giver ofte bare lidt flere muligheder...

... Java er glimrende, og hvis du vil starte fra bunden har Java sin egen version af OpenGL.
http://opengl.j3d.org/

De C baserede sprog giver dog ekstra muligheder for optimering og platforme. Og så kører spillene lidt bedre end Java's gør.

Mine argumenter for at du bør vælge et C basseret sprog er, DirectX og XNA. C# er ganske glimrende.

Hovedargumentet til at vælge et C baseret sprog er; de kører bedre og på flere platforme.

Og afviklingshastigheden, smadrer man langt bedre ved ikke at lave koden optimalt alligevel :)

Ret mig endelig hvis du kan få Java til Xbox, Wii, PS mm.

Med venlig hilsen
Ieet



Indlæg senest redigeret d. 16.02.2009 11:30 af Bruger #12836

Ret mig endelig hvis du kan få Java til Xbox, Wii, PS mm.


Well...man kan jo bundle et Java Runtime Environment med sit spil.





Hej Robert,

Eksisterer der sådan et til de pågældende platforme? Kan du guide mig igennem til at få en enkel Java calculator over på en af de pågældende platforme?

Med venlig hilsen
Ieet







Hej Robert,

Eksisterer der sådan et til de pågældende platforme? Kan du guide mig igennem til at få en enkel Java calculator over på en af de pågældende platforme?

Med venlig hilsen
Ieet



Det kan jeg ikke, for jeg har hverken XBox eller noget andet, men det er vel bare en 64 bit windows (32 bit ?), så find den rigtige JRE på Suns hjemmeside.

Jeg mener, at jeg engang fandt en beskrivelse af bundling af JRE med éns applikation engang, men kan ikke huske hvor. Sikkert hos Sun selv.



<< < 12 > >>
t