Jeg vil lage spill!

#1
Å lage spill på hobby-basis er noe jeg kunne tenkt meg å drive med, men så kan jeg ikke programmere, ellers hadde jeg nok vært i gang med et alt for ambisiøst prosjekt for lenge siden.

Så jeg trenger hjelp: hvor burde jeg starte? hvor vanskelig er det å lære seg å programmere? Hvor lang tid tar det å lære seg? Burde man i det hele tatt starte med å lære seg programmering? Må man være et matematisk geni, eller kan hvem som helst få det til?

Dette er spørsmål jeg iallfall ikke har svaret på, så jeg håper noen her har det. :)
 

Yetipants

Mein Gampf
Medlem av ledelsen
#2
Så bra! Mer sånt!

For å svare litt: Hvor du burde starte, avhenger litt av hva du har lyst til å lage, og hvordan. Si litt mer om hva du kunne tenke deg, så skal jeg prøve å hjelpe.

Hvor vanskelig det er å lære seg å programmere? Ikke så veldig, hvis du er interessert. Det er en sånn typisk aldri utlært-geskjeft da, men hvis du jobber hardt blir du fort bedre.

Burde du lære deg å programmere? Altså, det kommer veldig an på hva du vil gjøre, men jeg kommer ikke på noen måte å mekke spill på hvor det er en ulempe å kunne litt proggings. Nei, du må ikke være et matematisk geni, du trenger bare å være nøyaktig, tålmodig, og ha evne til å tenke logisk og abstrakt. Hvis det får hjertet til å synke i brystet ditt, kan jeg avsløre såpass som at du trener opp de evnene der ved å drive med programmering. Prøv det, det kan hende du liker det. Jeg veit iallfall at jeg gjør det.

Så: Gi et lite vink om hva slags spill du kunne tenke deg å mekke, så har jeg garantert et tips eller to til deg. Når det gjelder programmering, så har jeg uansett et gulltips helt fra start av: Codecademy er en gratis side hvor du lærer deg å programmere, interaktivt, direkte på nett. Forkunnskaper du trenger er evnen til å forstå barneskolematte, og at du forstår engelsk. Det er helt basic, med andre ord. Programmeringsspråket du bruker er Javascript, som jeg personlig ikke er veldig glad i, men som Buggz (som jobber som programmerer) sier jeg er en dust som ikke er glad i. Uansett er det et moderne programmeringsspråk som inneholder det meste du forventer å finne i andre moderne programmeringsspråk som f.eks. C++ (brukes i de aller, aller fleste spill som lages til PC eller konsoll i dag), Java (Minecraft er laget i Java) ActionScript (programmeringsspråket som brukes til å lage Flash-spill), C# (brukes i XNA/Unity), osv. osv. Prøv det, se hva du synes.
 
#3
Vel, jeg har ingen veldig konkrete ideer (enda) om hva jeg kunne tenkt meg å lage, men såpass vet jeg: Jeg vil lage noe originalt, noe som er simpelt men gøy og pent å se på. Så jeg kunne f.eks tenkt meg å lage noe veldig simpelt som en 2d-platformer, bare med noen vrier som ikke gjør det likt som alle andre 2d-platformere. Og da kunne jeg f.eks hatt noen få mekanikker, som hopping og løping, men å bruke mye tid på å få til de bra.

Jeg vet at det er lett å ha for store ambisjoner i starten, så å tenke realistisk tror kommer godt med. Kunne jeg tenke helt fritt hadde det jo mest sannsynlig blitt alt for ambisiøst, så jeg vil holde meg til enkle konsepter men prøve å finne på noe originalt innenfor de typene spill(derfor tenkte jeg et enkelt 2d-spill til å begynne med.

Jeg er ikke veldig god på å tenke logisk, men jeg har også den egenskapen at hvis jeg går inn for å lære noe, så lærer jeg det til slutt selv om det er vanskelig og tar tid. Så jeg har helt klart evnen til å tenke logisk, ting tar ofte bare litt tid. :p

Edit: Og ja, takk for de rådene, jeg ser på alle mulighetene du la fram der nå.
 
#7
Vel, jeg har ingen veldig konkrete ideer (enda) om hva jeg kunne tenkt meg å lage, men såpass vet jeg: Jeg vil lage noe originalt, noe som er simpelt men gøy og pent å se på. Så jeg kunne f.eks tenkt meg å lage noe veldig simpelt som en 2d-platformer, bare med noen vrier som ikke gjør det likt som alle andre 2d-platformere. Og da kunne jeg f.eks hatt noen få mekanikker, som hopping og løping, men å bruke mye tid på å få til de bra.
Bro, du trenger Klik & Play


Se på den T Rexen liksom.
 

Buggz

Jævla Buggz
Medlem av ledelsen
#8
Har du programmeringsspørsmål er det selvsagt bare å spørre. :)
 
#9
Konge.^^ Nå har jeg kommet et lite stykke uti den interaktive greia og har noen få ting jeg lurer på:

1. Hva gjør console.log?
2. Jeg går lett i surr med bruk av parantes, hva er reglene på hva man skal bruke det på og ikke?
3. Hva er fuksjonen til semikolon? Jeg har prøvd å utføre noen like koder med og uten ; og ufallet har blitt det samme. f.eks console.log("eksempel");
4. Hva kaller man noe som er inne i { }. Ett script?

edit: Ett par til: har bruk og ikkebruk av mellomrom noe effekt?
eksempel: er (25 === 5*5) og (25===5 * 5) identiske?

Og hvis du gidder å ta deg tid til å se på denne.

if (2 > 2 )
{
alert("Let's go down the first road!");
}
else
{
confirm("the condition was false!")

}


Har jeg gjort den riktig? det var jo kode nr. 2 som ble utført men jeg fikk ingen knapp for å trykke meg videre til neste test.
 

Buggz

Jævla Buggz
Medlem av ledelsen
#10
1. console.log() skriver ut ting til konsollen til browseren. Et talltips er å smelle inn web developer til chrome eller tilsvarende til browseren du bruker (og sier du IE nå, da.... DA!). Med chrome kan du trykke F12 for å få opp web developer, der har du en tab som heter console. Man bruker det mest for debugging.
2. Parentes betyr i praksis "utfør dette", dvs kjør funksjoner. Alt inni parenteset sendes med som argumenter. Det brukes også for logiske operasjoner, dvs du kan gjøre slikt som (2 + 3) * 5 for å fremtvinge noe som skal beregnes først. Det brukes også for if statements og loops (for, while, foreach).
Kode:
// definer en funksjon
var showProduct = function(number, multiplier) {
    alert(number * multiplier);
};
 
// kall funksjonen, åpner et lite vindu med produktet av de to tallene, kaster en exception om man ikke supplerer minst to tall
showProduct(2, 8);
3. Semikolon avslutter et statement. jfr. testkoden over. Det er det som forteller en compiler/interpreter når et statement slutter og neste begynner. At du kan bruke det smått lemfeldig og likevel få ting til å fungere i javascript har en historisk bakgrunn og browserne gjør sitt beste for å skjønne hva du mener. Til syvende og sist: bruk det.
4. Kode inni en {} kalles en (kode-)blokk. Hvis du leser litt om scope til variabler er dette litt viktig å vite om. Variabler som defineres inni en kodeblokk er ikke tilgjengelig utenfor. Eks:
Kode:
var myFunction = function() {
    var x = 2;
    alert(x); // 2
};
 
alert(x); // undefined
5. Mellomrom har ingen annen effekt enn at du bør bruke det for å gjøre ting leselig. Det er vanlig å ha mellomrom før og etter operatorer som +,-, =, etc.
6. Hva skal jeg se på? Hvis det som står i if-parenteset er sant utføres alt i første blokk, ellers kjøres ting i else-blokka (hvis du har en, det er valgfritt). Siden 2 ikke er større enn 2 kjøres ting i else-blokka.


Disclaimer: jeg har ikke testa en dritt av den koden jeg har skrevet her. Og jeg har tatt noen pils.
 
#11
Hva er galt med denne koden?
Kode:
var greeting = "Ahoy";
var greet = function();
{
    console.log(greeting);
 
};
 
greet();
edit: semikolon etter den definerte funksjonen er feil, ja... hvorfor?

edit2: vent litt, tror jeg vet det! er det fordi funksonen ikke er definert ferdig før etter kodeblokken?
 

Buggz

Jævla Buggz
Medlem av ledelsen
#12
Fordi blokka er en del av deklarasjonen. Du definerer hva funksjonen skal gjøre.

Kode:
var greeting = "Ahoy";
var greet = function() {
    console.log(greeting);
};
 
greet();

En ting til, i javascript er det vanlig å ha åpningskrøllparenteset på samme linje. Jeg tror det er noen eldre javascriptmotorer som ikke takler så bra å ha de på neste linje.

EDIT: EDIT2 er helt rektig.
 
#13
Her stoppa det litt opp for meg. :sukk: Går det ann å forklare hva return gjør og hva man bruker det til enklere enn det som står der?
 

TheNormalGeek

også kalt Anders
#15
Det finnes en annen side jeg bruker, hvis du er lat så kan du bruke denne istedet for å lære programmering.
omga.me
 

kakarlsen

Høyere yrkesfaglig
#17
Ja, hvem er disse folka som lager lettvinte løsninger?!?!?
 
#18
Hva skal jeg laste ned for å kode i windows og ikke i webbrowseren? Det er vel det man må hvis man faktisk skal lage noe?

edit: Nå jeg fått en forsmak på hvordan Javascript er, jeg forstår det mest basic greiene som funksjoner, strings, variabler, conditionals(if/else), så jeg kunne tenkt meg å prøve ut c++ nå og se hvordan det går. Buggz eller Yetipants, eller andre som har peiling, noen ideer til hvor jeg burde starte for å lære c++?
 

Buggz

Jævla Buggz
Medlem av ledelsen
#19
Å lære seg c++ er ganske hardcore, jeg vil heller anbefale deg å prøve ut C#. Visual C# Express er gratis, .NET er et veldig bra rammeverk å jobbe med og XNA (også fra Microsoft) er igjen et gratis rammeverk for å utvikle spill til xbox og PC. Jeg vil anbefale deg å starte med noen grunnleggende C#-tutorials for å lære seg hva klasser, objekter, interfaces og slikt er, før du beveger deg ut på dypere vann. Det er grunnleggende begreper man må ha på plass for å få til noe større enn Hello World.
 
#20
Takk for tips, C# skal sjekkes ut. Jeg har hørt om både C og C++, er C# og C det samme, bare at det er vanlig å droppe #-en?