Gå til innhold

Spillprogrammering - Hva er best å begynne med?


Anbefalte innlegg

Heisann :)

 

Den siste tiden har jeg hatt veldig lyst til å designe spill. Jeg har laget litt game maker spill men jeg har lyst til å lage noe større, noe bedre.

 

Noen som har noen tips til hvilket språk som er enklest å begynne med? Jeg vil til slutt være borte i C# og C++ men jeg vil begynne enkelt først.

 

Hva gjør C++ vanskeligere enn f.eks Javascript?

 

Ville vært veldig takknemlig hvis noen som kan noe programmeringsspråk legger igjen en kommentar som forteller hvilket programmeringsspråket de liker best og hvor lang tid det tok å lære det :)

 

Takker på forhånd for alle svar :)

Lenke til kommentar
Videoannonse
Annonse

Programmeringsspråket jeg liker best er vanskelig å svare på, da jeg bruker forskjellige språk til forskjellige oppgaver. For å automatisere helt enkle oppgaver (i linux) bruker jeg bash, litt vanskeligere og mer kompliserte oppgaver liker jeg python, ressurskrevende oppgaver bruker jeg C++ til, store oppgaver hvor fart ikke er hovedfokus kan jeg fort bruke java. Så alt avhenger av oppgaven jeg skal løse. Når det gjelder spillprogrammering ville jeg gått for C++. Når det gjelder tiden det har tatt meg å lære språkene så kan jeg ingen av språkene enda. Jeg kan nok til at jeg kan finne løsninger ved litt googling hvis jeg sitter fast på noe, men kan ikke nok til å si at jeg kan ett språk enda.

Lenke til kommentar
Programmeringsspråket jeg liker best er vanskelig å svare på, da jeg bruker forskjellige språk til forskjellige oppgaver. For å automatisere helt enkle oppgaver (i linux) bruker jeg bash, litt vanskeligere og mer kompliserte oppgaver liker jeg python, ressurskrevende oppgaver bruker jeg C++ til, store oppgaver hvor fart ikke er hovedfokus kan jeg fort bruke java. Så alt avhenger av oppgaven jeg skal løse. Når det gjelder spillprogrammering ville jeg gått for C++. Når det gjelder tiden det har tatt meg å lære språkene så kan jeg ingen av språkene enda. Jeg kan nok til at jeg kan finne løsninger ved litt googling hvis jeg sitter fast på noe, men kan ikke nok til å si at jeg kan ett språk enda.

 

 

Så uten noen erfaring så kan jeg abre begynne på C++?

Lenke til kommentar

Du kan like gjerne starte med det ene som det andre ja.

 

Men C++ er kanskje ikke det enkleste når det kommer til å raskt og enkelt skape grafisk brukergrensesnitt på skjermen.

 

Der er nok Java og C# bedre.

 

Mange vil argumentere for at ytelsen til C++ er mye bedre enn for f.eks Java, men dersom du programmerer spill selv vil etter min mening Javas ytelse aldri være noen begrensning. Da bør man heller se på de algoritmer man bruker, dersom ytelsen er et problem.

Lenke til kommentar

C# har mange optimaliseringer for ytelse, og det finnes dessuten funksjoner i C# som ytterligere kan øke ytelsen i noen tilfeller (pekere, unmanaged funksjoner og "inline" CIL, noe lignende Call absolute i QuickBasic 4.5 hvis noen husker det)

 

Etter min mening er C# temmelig perfekt for spillutvikling. Det er forholdsvis enkelt å lære og har utrolig mange muligheter.

Lenke til kommentar

Vil faktisk anbefale Actionscript. Der lærer du gode programmerings vaner, og kan fint gå over til noe mer avansert som C++ på ett senere tidspunkt. Actionscript tar ikke all verdens tid å lære og du vil se resultater helt fra begynnelsen av. Anbefaler deg å se på lynda.com sine videokurs, visst det ikke er aktuelt for deg å sitte å lese en tung bok. Å begynne med språk som C# / C++ osv. er skjelden en god idè.

Endret av krokeen
Lenke til kommentar
Gjest Slettet-aNZFa3

C# med XNA funker fett for meg, men: Du må lage egen kode for brettdesign, det ligger helt sikkert templates ute fra før av som gjør dette.

Lenke til kommentar
Vil faktisk anbefale Actionscript. Der lærer du gode programmerings vaner, og kan fint gå over til noe mer avansert som C++ på ett senere tidspunkt. Actionscript tar ikke all verdens tid å lære og du vil se resultater helt fra begynnelsen av. Anbefaler deg å se på lynda.com sine videokurs, visst det ikke er aktuelt for deg å sitte å lese en tung bok. Å begynne med språk som C# / C++ osv. er skjelden en god idè.

 

Det er en god idé fordi C# og C++ er også ettertaktet i profesjonell sammenheng.

Jeg tviler på at funcom er ute etter spilldesignere som kan ActionScript, men jeg VET de er på utkikk etter folk som kan C# og/eller C++.

 

Det er teknikken som er vanskelig å lære innen programmering, ikke nødvendigvis språket.

Lenke til kommentar

Python (Lua også egentlig) og C++ er også brukt mye. Spillmotorer blir somoftest skrevet i C/C++, mens scriptingen varrierer. Noen bruker Python (Battlefield 2, Civilization 4, Mount & Blade), andre C# (Quake 4, de fleste Xbox eksklusive spill), noen bruker vel også java (The sims 1?). Men LUA er nok noe av det mest ettertraktede egentlig (World of Warcraft, Warhammer Online, Baldur's gate, S.T.A.L.K.E.R, Crysis, Far Cry)

Lenke til kommentar

Nå er det viktig å merke seg at svært få spill skrives i noe annet enn C++, men de aller fleste spill har i tillegg et scriptspråk for å gjøre utviklingen mer effektiv.

 

Lua har en temmelig lang historie innen spillindustrien, og er brukt i temmelig mange spill. Det tidligste jeg vet om er Dark Forces fra 1994 som brukte Ken Silverman sin Build engine(som er skrevet i C) Lua var scriptspråket til spillet, men Lua ble helt sikker brukt før det også.

Lenke til kommentar
Du kan like gjerne starte med det ene som det andre ja.

 

Men C++ er kanskje ikke det enkleste når det kommer til å raskt og enkelt skape grafisk brukergrensesnitt på skjermen.

 

Der er nok Java og C# bedre.

 

Mange vil argumentere for at ytelsen til C++ er mye bedre enn for f.eks Java, men dersom du programmerer spill selv vil etter min mening Javas ytelse aldri være noen begrensning. Da bør man heller se på de algoritmer man bruker, dersom ytelsen er et problem.

Det spørs hvilken type spill det er snakk om. Om tanken er å lage småspill så kan Java og C# benyttes, men det skal ikke bli serlig avansert før f.eks. Javas swing blir for tungvindt. OpenGL eller lignende i Java er bare å glemme, det er forferdelig tungvindt i forhold til å bruke det i C++. 

 

Så med mindre det er helt enkle ting som skal lages, så bør det lages i et profesjonelt språk som C++. Å få laget noe annet enn noe helt simpelt i java er et mareritt, det må gjerne så mye kode til for å gjøre en del ting. Altså java (og lignende) er greit til helt grunnleggende ting, men straks du skal programmere noe som er bittelitt mer avansert så stanger du i veggen.

 

Hvis du tenker på en ordentlig spillmotor, så må du bruke C++ eller tilsvarende, og selvsagt bruke 3D-api som OpenGL eller Direct3D. Høynivåspråk vil gi for dårlig ytelse, og spesielt java med måten det virker på.

 

Jeg har tatt både java og c++ på ntnu.

 

C# med XNA funker fett for meg, men: Du må lage egen kode for brettdesign, det ligger helt sikkert templates ute fra før av som gjør dette.
Her er vel skillet mellom en ordentlig spillmotor og et halvfabrikat. Fordelen med sistnevnte er at det er raskt å lage noe som er greit for enkle spill, og greit til å leke litt med, men det er ikke slik ordentlig spillutvikling foregår. Å lære hvordan spillmotorer lages tar mange år.

 

-----

 

 

 

Ja SDL kan være et greit API til både små og større spill.

 

 

 

Mvh,

 

efikkan.

Lenke til kommentar

Hvilket språk du bør begynne med avhenger helt av hvilke ambisjoner og mål du har. Dersom dette er noe som muligens kan bli noe du ønsker å satse på karrieremessig vil jeg anbefale deg å gå den hardeste veien gjennom å lære deg et språk som C, C++ eller C#. Dersom dette bare er noe du har lyst på å ha som en hobby, noe som er mest trolig siden du bare har laget spill i Game Maker, så kan du godt starte med noe enklere, i allefall hvis du ikke har så mye programmeringserfaring fra før.

 

Selv prøvde jeg i starten utallige game makere. Dette egentlig for å øke motivasjonen for å lage spill. Dersom du ikke føler deg helt klar for å starte med programmering enda kan du jo bare prøve å finne flere slike programmer, men begrensingene er veldig store.

 

Personlig valgte jeg å lære meg Actionscript 2.0 og lage flash-spill, det vil si slike spill som man spiller i nettleseren og finner blant annet på spillportaler som 123spill og 1001spill. Jeg er ingen ekspert enda, noe som kanskje skyldes at jeg i begynnelsen brukte mye tid på å lese "tutorials" på internett. Dersom du har lyst å lage flash-spill er mitt beste råd at du kjøper deg en bok om Actionscript 3.0 programmering (programmeringsspråket som brukes i de nyeste versjonene av Flash). Du lærer mye mer av en bok enn 100 "tutorials". Dette gjelder uansett hvilket programmeringsspråk du skulle bestemme deg for å lære. Den største fordelen med Flash er at det går relativt raskt før man kan få opp noe som ser relativt bra ut. Den største ulempen er prisen. Flash er et veldig dyrt program (et par tusen kroner), men det er mulig å prøve programmet i 30 dager først. Selv bruker jeg fremdeles Flash 8 (den nyeste versjonen heter Flash CS4), siden programmet koster mye både å kjøpe og oppdatere.

(Neste år får jeg prøvd ut Flash CS3 og Actionscript 3.0 da jeg skal ha det som et skolefag :) Så det blir gøy).

 

En annen mulighet er å lære seg BlitzPlus. Denne pakken, som koster 60 USD, dvs. i underkant av 400 NOK, kommer med et eget IDE og du lærer deg et programmeringspråk som er direkte rettet mot spillutvikling. Jeg har ikke prøvd dette programmeringsspråket selv, men hørt masse godt om språket. Jeg vil anbefale deg i det minste å prøve det ut (demo finner du på nettsiden).

Ved å lære seg BlitzPlus lærer du å programmere uten å miste all motivasjon for spillutviklingen. Deretter kan du senere begynne med mer avanserte programmeringsspråk som C++ dersom det skulle være ønskelig. Det vil også være mye lettere senere da du nok vil kjenne igjen deler av syntaksen og har forstått prinsippet bak programmering.

 

Eneste grunnen til at jeg ikke begynte med BlitzPlus må være at jeg ikke oppdaget det før lenge etter jeg hadde begynt med Actionscript. Personlig har jeg tenkt å lære meg C++ og en dag muligens lage spill i det ved hjelp av SDL, Allegro, OpenGL eller DirectX. :dribble:

 

Det er bare til å stille spørsmål dersom du lurer på noe.

Uansett hva du velger å gjøre så lykke til! :thumbup:

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...