Jasså, du vil lage spill?

Yetipants

Mein Gampf
Medlem av ledelsen
Så, joda, for dere som ikke gidder å lære dere C++ (noe jeg har få problemer med å forstå) kan det jo hende at noe litt enklere er greia for å få kozt seg med å mekke spill. PC Gamer har en artikkel om GameMaker, som muligens kan by på litt inspirasjon. Minner om at det stadig dukker opp dealios hvor den ubegrensede versjonen av GameMaker brått er gratis, så heng med.
 

Yetipants

Mein Gampf
Medlem av ledelsen
Bare fordi så kommer det et nytt bilde her. Det er nesten helt likt, og det har tatt meg... tjah. Femten timer? Noe sånt? å mekke det som er nytt.



Jepp. Spennende. Nei, men det er et nytt kamerasystem der. Det er da et fritt kamera du kan styre rundt med tradisjonell mouselook og WASD-forflytning. Siden den toot-orialen jeg bruker har en eksepsjonelt ræva måte å håndtere det der på (hardkodede tasteverdier og sånt), fant jeg ut at heisann jeg mekker mitt eget input-system, siden det uansett må gjøres. Jeg starta helt fra scratch, og mekka noe som minner ganske mye om systemet i Unity (siden det er gullende godt). Dette innebærer ikke bare at du kan mekke egne kontrollknapper med av/på-verdier, men også at jeg har mekka en greie som emulerer en analogakse med tastaturtaster. Som i at du må holde inne en knapp en liten stund for å få maks effekt, og at den ganske smooth ruller tilbake til nøytral posisjon. Hver akse går fra -1.0 til 1.0, så for å regne ut en forflytning kan du bare hente ut akseverdien, gange med hastighet og delta og så er Bob onkelen din. Fornøyd!

Det andre er en tekstmotor som rendrer teksten du ser øverst til høyre. Jeg hadde lyst på anti-aliased skrifttyper med full Unicode-støtte og minst mulig fiksfakseri, men å rulle en egen tekstmotor er selve definisjonen på fiksfakseri selv om jeg hadde en anelse om at jeg måtte bruke geometry shaders for å få det til. Søk på "font engine geometry shader" og finn FW1FontWrapper som er akkurat det. 100% nice. Bortsett fra at FPS-en nå ligger rundt 40 istedenfor 3000 som før jeg la inn akkurat den biten. Det er dog en ganske enkel og logisk, men døll årsak til det, så jeg stresser ikke.

Neste på lista er å snoke litt mer på DirectXCollision-biblioteket for å se om det har alle mattegreiene jeg trenger (håper det). Så går'e etter hvert an å mekke spillerfigurer og sånt, serri. Og kulere shadere. Når det gjelder å faktisk mekke 3D-geometrien som trengs for å lage spillbrett, så har jeg funnet ut at biblioteket jeg bruker for å laste inn modeller støtter Quake 3-brett. Og det, det er ganske nice, for da er det bare å legge inn Radiant. Og å lære seg Radiant. Tar nok kortere tid enn å mekke min egen level-editor.

Første spillbare alpha test i løpet av høsten? Satser på det!
 

Agradula

Ridder Jonatann
Medlem av ledelsen
Er det en slags u3redux-engine?
Neida. Det ser topp nice ut hittil og blir som kjent spennende å se hvordan det blir etterhvert. :)
 

Yetipants

Mein Gampf
Medlem av ledelsen
Ingen skjermskudd av noe græffiks i dag, men kanskje heller av noe annet drit, for nå erre jaggu your move Unreal her ass.

Nei, men en ting jeg har tenkt litt på da, det er at det er skikkelig hella irriterende å måtte ha alt av innhold du skal ha i spillet liggende og flyte i ørten småfiler på harddisken. Er det noen andre som tenker sånn, tro?

Dette er Dark Souls 2-mappa mi. Her ser vi noen svære filer, og et par mindre filer som har lignende navn. Jeg "gjetter" at de største (GameDataEbl.bdt osv.) er sammenpakka spilldata, de ganske mye mindre (GameDataEbl.bhd osv.) er innholdslista som viser hvor spillet finner stæsjet i hovedfila, ooog at de enda mindre igjen (GameDataKeyCode.pem osv.) er pøbblikk-nøkkelen som lar spillet dekryptere datafilene. Jeg skrev "gjetter" i hermetegn fordi jeg veit at DS2 har krypterte datafiler så da er dette ikke så vanskelig å komme fram til. Hvorfor kryptere dataene? Fordi atte da er det vanskeligere å mekke hæxx til onlinedelen.


Dere gjetter spillet, ikke sant? Her ser man at hver DLC-pakke og hver seksjon med spilldata igjen har sine egne datafiler, hadde jeg giddet å sette meg inn i GECK hadde jeg garantert visst hvordan dette henger sammen men akk. Alle som har modda Fallout eller Skyrim kjenner seg sikkert igjen her (inkludert i Bouncing Natural Breasts.esm-fila jeg ikke tok med i skjermskuddet). Tror ikke det er all verdens kryptering på Bethesda-filer siden de ikke har onlinemodi og mod-verktøyene er fritt tilgjengelige.


Og her da? Jo, dette er fra Spelunky sin teksturmappe. Litt blanda drops, et par skrifttypefiler, et par png-filer som brukes under innlastinga, og ikke minst en søt .WAD-fil (folk som modda Doom i sin tid nikker anerkjennende). Og en .WAD.WIX-fil. What gives? Joda, her skal du få se.


Dette er alltex.wad.wix, eller WAD Index som jeg gjetter det står for. Bare en enkel tekstfil med noen overskrifter, filnavn, og noen kryptiske tall. Jeg har ikke sjekka, men jeg lover deg at linjene med utropstegn foran angir forhåndsdefinerte grupper med filer som motoren skal se etter, filnavnene er referanser til filer som er kodet inn i spillet, og tallene etter hvert filnavn er 1) avstanden fra starten av alltex.wad til der fila begynner, i bytes, og 2) hvor stor fila er. Dette fordi det er en supersmal sak å hente ut fildata fra alltex.wad ettersom du trenger det i spillet. Så, hvordan ser all denne teksturdataen ut, da?


Sånn hvis du åpner den i Notepad++ iallfall. Uæ. Vel, jeg ser en "PNG" på toppen der, men også masse uleselige strengentiteter og tufsete tegn. Dette gir ingen mening, vel! Nei, det gjør ikke det, for dette er binærdata som Notepad++ tolker som tekst. Da blir'e krøll vettu. La oss ty til det utmerkede programmet Binary Viewer isteden:


Ethvert program med en sånn innlastingsskjerm må jo være god sort.


Så her kan man se, da. Til høyre har man ASCII-fortolkningen av fila (alltex.wad som man ser nederst), som fortsatt ikke gir særlig mening, men som i det minste er inndelt etter bytes og ikke etter hva nå enn et tekstbehandlingsprogram tror det er for noe. Det fine er at jeg kan - hvis jeg virkelig gidder - gå inn i alltex.wad.wix og finne ei fil, finne fram offset (som det heter) og markere ned så mange bytes det står at jeg skal, kopiere dataene, lime dem inn i en annen fil og lagre den med etternavnet .png, og dermed ha en brillefin kopi av teksturen slik den ser ut i spillet. Eller, hvis jeg virkelig ville gjøre dette ånkli, mekke et lite program som gjorde det for meg. Poenget er iallfall at dette er rimelig simpelt hvis du er en datamaskin.


Mitt forsøk. Akkurat som hos Spelunky er det bare en liste over teksturer, men til forskjell fra Spelunky kjører jeg dette scriptet gjennom et lite program som regner ut alt av offsets, lagrer navn og alt sånt, og plasserer det først i innholdspakkefila mi. Så når jeg starter spillet, er det bare å åpne den, lese inn alt av bildeindekser, og så laste inn teksturene ved behov. Og det funker som faen, vettu. Bare jeg klarte å se hva i faen jeg gjorde feil (det var at jeg regna feil på offsets fordi jeg er dum i hodet).


Sånn regne vi offsets der je kjem frå.


Og sånn ser ass.dat (høhø) ut. Dere kjenner igjen navnet på innholdsfila og navnene på teksturene, og nederst skimtes starten på xalpha.dds som jeg nådeløst har stappa inn etter innholdslista mi, som inneholder navnet på teksturene og offsets lagret binært. Her er det bare å plukke altså.

Så, hva er vitsen? Vel, vitsen for meg er først og fremst at jeg slipper å ha alt av innhold liggende og slenge rett i mappa, fordi da er det fort gjort at man flytter ei fil eller noe drit og så blir det krøll. Det er også at jeg får kjørt kontroll på innholdet før det stappes inn i spillmotoren, og at det går an å pakke fila sammen med .exe-fila som en såkalt Resource (Windows-begrep) og da kan man rulle et spill som bare består av en enkelt .exe-fil og det er jo GANSKE KULT DA og selvfølgelig er det fordi å mekke sitt eget filformat er en liten barndomsdrøm. Da jeg var liten trodde jeg det der var offisielle greier, at man måtte søke om å få mekke nytt filformat og sånt. Nå veit jeg bedre, nemlig at det finnes en eneste enkel konvensjon som de fleste følger og dætts itt (det er at hver fil starter med en semi-unik firebokstavers kode som er ment å være en enkel sjekk for at det faktisk er rett type fil (GJETT HVA MIN ER)).

Og før noen spør: Fem timers arbeid, klin umulig å se noen forskjell på i spillet.
 
Sist redigert:

Novastrum

Feminist-elitist
Nice! John Carmack og Ken Silverman ta dere en stor bolle.

Husker jeg drev med GRP-editing i duke3d, men det ble som regel bare ass.dat av det.
 

Yetipants

Mein Gampf
Medlem av ledelsen
Ah, mine glansdager var med Doom 2. Jeg brukte DoomEd til Windows, som (med litt fantasi) lot deg legge inn egne teksturer, lyder og musikkfiler i tillegg til nye brett. Det ble noen halv- og helpornografiske kreasjoner med satanistiske islett etter hvert, dessverre er alt tapt for mange diskkræsj siden.
 

Novastrum

Feminist-elitist
Wow, nå fikk jeg den syreflashbacken til at jeg fikk forskjellige pr0n-packs til duke3d av en i klassen min. Det var ikke mangel på hardcore så vidt jeg husker. Alle damer byttet ut med nakne versjoner, og filmloopene var det plutselig blitt 35 år grense på for å si re´ sånn.
 
Husker jeg brukte mye tid på å lære med Build-editoren til Duke3D, men det ble for vrient. Hadde derimot en editor til Quake som jeg laget egne maps med. Synd det ikke finnes like lettvinte editorer til dagens spill (eller gjør det det?).
 

Agradula

Ridder Jonatann
Medlem av ledelsen
Unreal engine virker relativt greit å jobbe med for layouts, men litt mer tricky å jobbe med ahadere og slikt (når man er vant til et HELT annet oppsett en de bruker).
 

Yetipants

Mein Gampf
Medlem av ledelsen
@sheriffen: Det spørs helt hva den "lettvinte editoren" til Quake var for noe. For: Det finnes mange måter å bygge 3D-geometri på, og som 'n Agra nevner er det ganske mange årtusener med utvikling mellom proto-3D-Quake (Carmack måtte finne opp noen hjul der, i følge Masters of Doom) og dagens 3D-motorer. Quake hadde ikke noe konsept om shadere, og det fantes bare en type 3D-geometri. Quake 3 hadde et proprietært shader-format og egne bezier-patch-geometriobjekter. Dagens 3D-motorer kan ha mye rart, pluss at man gjerne har TO sett med geometri: Ett for syns skyld som er det du ser opptegnet på skjermen, og ett som er mye mindre detaljert og som aldri vises, men som brukes for å regne ut kollisjoner og sånt rask. Og, igjen, shadere er en helt egen kunstform.

Det, pluss at det som nevnt er ulike måter å få realisert faenskapen på. Jeg synes personlig at den innebygde 3D-geometrieditoren i Unity er noe forbanna skrot, fordi det bare går an å skalere ting uniformt langs en akse, for eksempel. Jeg tror de fleste proffe spillselskaper (som ikke bruker UnrealEngine eller tilsvarende) mekker mye brett i 3DS MAX og lignende verktøy.
 

Shinra85

Spillegals effort emo
Det her fikk meg til å komme på tre-fire sessions jeg hadde med to andre fra VGS angående å lage en modd til Dungeon Siege en gang i tiden. Husker jeg skreiv en gripende quest-historie angående to gigantiske krabber som de andre likte godt, men alt kokte litt ut i kålen. Editoren som fulgte med spillet var ganske snedig og enkel mener jeg å huske
 

Agradula

Ridder Jonatann
Medlem av ledelsen
Jeg kan ihvertfall nevne at 3DS MAX er veldig greit å bruke hvis man skal lage maps til unreal engine, med tanke på den fine bruken av .fbx-formatet.

Sånn angående to sett med geometri for å regne ut kollisjoner og slikt. Det er vel strengt tatt slik i alle 3d-applikasjoner som bruker fysikkmotorer, men at i de fleste tilfellene så trenger man ikke å lage den ekstra geometrien selv som oftest. Det pleier å være, enten tickboxes, modifiers eller andre ting. Det den gjør er at den enten bruker den imaginære ytterpunktfirkanten på enhver modell, slik at det blir kun 6 polygoner å forholde seg til, eller så bruker den punktene i geometrien for å beregne alle de forskjellige stedene den kan kollidere. Det er ofte noen optimaliseringsverktøy som gjør at den sistnevnte ikke er like detaljert som hovedmodellen og det er også grunnen til at en veldig stor kule i spill ikke nødvendigvis beveger seg helt som en kule.
Men igjen, det kommer jo også an på fysikkmotoren, noen har jo egne koder for å sørge for at kuler beveger seg mer som en kule istedenfor en polyhedron som strengt tatt ville rullet mer som en d20-terning.

Tilbake til leveleditoring. Jeg har aldri gjørt noe vettugt i noen editorer egentlig. Har vel bare prøvd å lekt meg litt, men aldri blitt noe bra, men hvis noen har en idé til et område som kan mekkes i 3d og potensielt brukes i en editor så er det bare å si fra. Jeg er ikke sånn veldig kreativ og sliter ofte med å finne på egne ting å mekke, men hvis noen har en litt detaljert idé kan jeg jobbe ut fra det.
 

Yetipants

Mein Gampf
Medlem av ledelsen
Mekk en 1:1-kopi av hele verden!!!
 

Yetipants

Mein Gampf
Medlem av ledelsen
Jadda. Nok en måned uten oppdateringer, men det er rett og slett fordi jeg har vært så bissi og fordi det er en liten sak i den 3D-motoren min som jeg sliter med å få løst (DirectX er ikke så veldig grei å ha med å gjøre når du skal finne opphavet til minnelekkasjer viser det seg). Meeeen siden vi har fått Smartboard på skolen, tenkte jeg at det måtte kunne gå an å mekke noe jåss som lar seg bruke der, og hva er det mest naturlige? Joda, det er så klart HTML5 siden det funker på det meste. Ehe. Uansett, jeg har hatt lyst til å se litt på HTML5 en god stund, for det virker som om ting har skjedd der som gir rimelig fin ytelse. Så... ja. Bruk piltastene enn så lenge. Pleier å oppdatere den sida der når jeg har fått til noe vettugt på testserveren, så det går an å smelle innom med jevne mellomrom så er det kanskje noe nytt.

Så: Bakgrunnen er bare et helt standard tilemap, men hver av firkantene er et eget draw call som altså da kjøres seksti ganger i sekundet selv på denne billige PC-en. Det er ganske imponerende. MEN: Innimellom (når? Hvorfor? Aner ikke!) dukker det opp små skjøter mellom tilesa. Jeg har planer om å cache hele tilemap-et som bilde via AJAX, men har ikke giddet å ordne det ennå OG dessuten veit jeg ikke om det er bra eller dårlig for ytelsen (det blir en fullskjermsblit seksti ganger i sekundet istedenfor mange små blits seksti ganger i sekundet), men det blir artig å teste.

Hvis noen lurer så har jeg plukka en liten kodestubb fra nett som lar meg animere jevnt og fint uavhengig av browser, resten har jeg mekka selv. Og også hvis noen lurer så liker jeg fortsatt ikke Javascript spesielt godt fordi fy faen jeg måtte gjennom en fem-seks versjoner av den ferdiglagde kodebiten med ulike bittesmå endringer i syntaks og plassering (om du setter en bestemt kodebit foran eller bak har nemlig mye å si) for at det skulle fungere. Javascript er ålreit når det fungerer, men når det ikke fungerer er det som regel noe som ikke går an å forklare på noen annen måte enn at det er en Javascript-nisse som har slått seg vrang. I mine øyne, får man føye til før Buggz slenger innom.
 

Novastrum

Feminist-elitist
Her kommer jeg igjen med noe jeg har jobbet med for moroskyld en stund.
Inkludert er en homage til sånne skjermer man fikk når man startet DOS-sharewarespill på tidlig 90-tall:


Tror jeg lar det hete GUYGUYGUY. Og håper alle synes det er like GØYT å sjekke ut som jeg syntes det var å lage.

LINK: GUYGUYGUY!!!
Kontroller: Piltaster, Space for å skyte skjermer og "R" for å restarte - F11 = Fullskjerm

Fungerer foreløpig bare med tastatur, men skal teste ut touch-kontroller slik at det vil funke på babyplattformer også.

Laget all grafikk og alle animasjoner - utenom lavateksturer og mugatu.
Stoltest av PC-skjermdestructionphysics, og skal teste teknikken i andre prosjekter..
 
Sist redigert:

Yetipants

Mein Gampf
Medlem av ledelsen
Når kommer Oculus Rift-støtta lurer jeg på.

Neiass, det var jo et par kule ideer her selv om jeg tviler på at Fysakkfysakkfysakk!!! har en lysende framtid på App Store, og jeg likte hvordan det ikke kom noen "DU VANT!"-melding eller noe som helst da jeg vant, liksom bare en dyptpløyende meta-strukturell kommentar på at livet bare går ubønnhørlig videre selv etter at du har nådd dine mål, og at du fortsatt må forholde deg til all blåsyra som lakk ut av blåskjermene dine og ødela bakken.