>> Inget internet på en vecka = mycket gjort, inga bloggrapporter <<

Har varit i Stockholm i en vecka och suttit på ComHems bredband. Skaffa _ALDRIG_ ComHem. Men nog om det... Eftersom jag inte haft tillgång till internet så har jag kunnat arbeta ostört (:P) men tyvärr inte kunnat skriva om det. Skall försöka dra i korta drag vad som hänt:

1. Huvudbas. Som det ser ut just nu så är det bara en fyrkant av modell större. Skall dock ta och göra det till en ordentlig spriteanimering senare. Eftersom jag just nu enbart har "enkla" former som ritar ut direkt genom matematiska uträkningar så måste jag ta och hitta ställen där jag kan ha lite mer "riktiga" sprites.

2. Enhetsproduktion. Om spelaren markerar huvudbasen så dyker "Cr"-alternativet upp i knapprutan nere till höger. När man klickar på denna knapp dras en kostnad av från spelarens resurser samt en mätare i mittenrutan visar hur lång tid det är kvar tills enheten är redo. Det går även att stacka hur många enheter som helst i en kö. När enheten är redo så kommer det ut "ut" huvudbasen och placerar sig på en rallypoint vars position än så länge ej går att ändra på.

3. Resurshantering. Runt om på kartan finns det olika områden som från början är neutrala. Dessa fält representeras som ett "bubbligt fält" där ringar uppstår i ett slumpartat mönster. När någon av spelarna har enheter i något av dessa fält så börjar denna spelaren långsamt ta över området och ringarna skiftar färg från den neutrala vita färgen till spelarens egna färg. Denna färg går även att se på minimapen. Ju mer kontroll en spelare har över ett fält, ju mer resurser drar spelaren in från detta fält. Dock äger spelaren ej fältet för evigt, utan en motståndare kan komma och ta tillbaka fältet när som helst, men så länge fältet är ohotat så tillhör det ägaren även om denna ej har några enheter i fältet. Ju fler enheter en spelare har i ett fält, ju snabbare går det att ta över det.

4. AI. Har beslutat att lägga MultiPlayer-planerna lite på framtiden. Kraven för de olika betygen för kursen har kommit upp och jag kommer istället lägga tid på t.ex. mapeditor, fysikmotor, partikeleffeker och användandet av shaders. Detta innebär att jag kommer behöva en godtyckligt bra AI som det går att spela mot istället. Som det är nu så går det att spela en match mot datorn, dock är det grymt obalanserat och så länge man enbart använder sig av fyrkant-enheter så är det ganska omöjligt att vinna, men så fort man börjar byta form på enheterna så vinner man ganska enkelt. AIn funkar på ett ganska enkelt vis; när den skapar enheter placeras den i en "grupp" av enheter vars syfte är att antingen ta över energifält, attackera fiendebasen eller försvara huvudbasen. Men det går att genomföra en match iaf.


HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

(Klicka på bilderna för att få en mer högupplöst version)



>> GUI, HUD & Events <<

Var lite klurigt men nu är allt på plats. Hanteringen av events var inte så smidig som man är van vid från t.ex. Java. Men tillslut funkar allt som det ska, dels med avlyssning från knappar i GUIt samt vid mer komplexa situationer som att t.ex. lyssna på saker som blir aktiverade i HUDen i spelet. Det smidigaste sättet att komma igång med events ansåg jag vara att göra en enkel startmeny med knappar. Därmed finns det nu en startmeny med knappar för att antingen starta spelet eller avsluta det direkt. Väl inne i spelet så kan man nu klicka på knappar för att ändra formen på de markerade figurerna.


HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

>> Mer ögongodis <<

Var för trött för att sätta mig in i något avancerat, men ville ändå inte släppa projektet för kvällen. Det slutade med lite mer ögongodis. Partiklar flyger nu iväg när ett skott träffar något, fixade även till "uppdateringsanimeringen" ytterligare så att den nu är en liten "svans" som följer kanterna av figuren runt runt. Svårt att se på bilden dock, lika svårt att förklara i ord. :P Tanka gärna hem och testa. ^_^


HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

>> Former, skada och ögongodis <<

Nu går det även att byta form på enheterna, detta innebär även att man ger olika skada på olika fiender. Enheten fortsätter även skjuta på en intilliggande fiende om den nyss beskjutna fienden skulle dö. Jag ville ju ha en s.k. "sten-sax-påse"-balans mellan enheterna, då kommer såklart fråga: Vilka enheter borde ge mer skada till någon annan enhet? Vad känns mest logiskt? Jag beslutade mig för att: fyrkant slår trekant, trekant slår cirkel och cirkel slår fyrkant. Varför? Fyrkanten har fler kanter än trekanten (större), trekanten är spetsig och sticker hål på cirkeln (farligt), och cirkeln..ehm...är.. rundare än fyrkanten? :P Säg gärna till om ni har någon annan kombination som känns mer logisk. Kommer nog behöva ha en liten bild med "kretsloppet" någonstans i GUIt, är ju tyvärr inget system som spelaren är van vid och finner naturligt.

I övrigt så fixade jag så att de "aktiva" enheterna får en ljusare färg samt har en "uppdateringsanimering" som kan behövas för att få den grafiska stil jag vill ge spelet. Vidare så har jag lite olika saker att välja mellan. 1. Fixa en "explosion" när skotten träffar något. 2. Ett GUI för att ändra formerna, stoppa eldgivning m.m. 3. Börja kolla på nätverk och fixa stöd för två spelare.


HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

>> FIRE! <<

Har inte hänt jättemycket som syns i spelet. Man kan skjuta på fiender, that's it. Även om det nu går att skjuta så ger skotten ännu ingen skada, men de försvinner dock när de träffat något. Jag har däremot snyggat till och fixat en hel del kod som har med bl.a. movement att göra. Tog hjälp av detta foruminlägget för att få det riktigt snyggt. LinAlge-kunskaperna lyste dock med sin frånvaro när jag läste inlägget, borde ta tag i det. :P Läste även på en del om "out" och "ref" i C# och det jag kom fram till var mer eller mindre att C# är absolut snyggare än Java, men oj vad man saknar många C++saker däremot. :( Nåja, inget att göra åt, bara att jobba på med C# istället.
HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

>> Units on the run <<

Nu har jag placerat ut ett gäng units som man kan markera och flytta på med de traditionella RTS-kontrollerna. Jag kommer till en början bara ha "squareunits". Kommer nog inte implementera stöd för att kunna byta shape innan jag fått igång något sorts GUI. Bakom kulisserna så har jag implementerat en ResourceManager som kursen tog upp i en videolektion som kom igår. Det är en ganska trivial manager som helt enkelt ser till att man inte ladda in resources i minnet mer än nödvändigt osv.

I övrigt så har jag inte sett något smidigt sätt att sköta utritning av enklare former så som cirklar, arcs, polygoner and stuff like that, i XNA. Har dock inte läst på om det, skall ta och göra det innan jag yttrar mig ytterligare. Nu skall jag få mina units att attackera fiender.
HÄR kan man nu ladda hem den senaste versionen av spelet. OBS! XNA Redistributable 3.1 behövs för att köra spelet.

>> Namn & Grundläggande grafik <<

Min idé? Ett strategi-spel som har gameplay som kan beskrivas med Heroes of Newerth möter ett "vanligt" strategispel och grafik där Geometry Wars möter Darwania. Vad innebär detta lite mer konkret?

Namn
Namnet ja, detta är en svår fråga. :P GeoWars är det som jag fastnat för mest, dock är det ju läskigt likt Geometry Wars som är min största källa för inspiration på grafikfronten vilket inte är helt bra. Har haft ett gäng med andra förslag i mitt huvud: GeoBattle, ShapeWars, S.H.A.P.E ("Shapes Has A Painful Enemy" eller något annat nördigt). Kom gärna med andra förslag, kör med GeoWars tills vidare.


Gameplay
Grunden är väldigt enkel, varje spelare har en huvudbas, dör din huvudbas så har du förlorat! Denna huvudbas kan sedan producera en enda sorts enhet som blir dina kämpar. När dessa enheter sedan är byggda så kan du dock välja att göra dem till fyrkanter, trianglar eller cirklar. Dessa tre former fungerar sedan som "sax-sten-påse"-mekanik mot varandra. Du som spelare kommer alltså inte behöva bry dig om att bygga byggnader eller uppgradera dina enheter på olika sätt. Det du däremot kommer göra är att på olika sätt förtjäna experience (på vilket sätt kommer jag att förklara i senare inlägg) som sedan kan användas för att köpa olika abilities. Dessa abilities kommer du att kunna använda på spelplanen eller på dina/motståndarens enheter på olika sätt. T.ex. så kan du göra enheter inom ett område snabba/långsamma, tvinga motståndarens enheter att ha en viss form under ett visst tidsintervall, eller teleportera enheter för ett överraskningsanfall. Detta är iaf de tankar jag har kring designen för spelet än så länge. Troligtvis kommer dessa att ändras beroende på tid/nya idéer/feedback/random.


Grafik
Som jag skrev innan, en blandning mellan Geometry Wars och Darwania. Tanken bakom detta är att jag inte villägna allt för mycket tid åt att göra snygga och tidskrävande sprites utan lägga mer tid på snygga effekter och ge en känsla av att det händer mycket saker, överallt, hela tiden. Har inte en aning om den vackra bild jag har i huvudet kommer blir lika vacker när den väl hamnar på skärmen, men jag håller tummarna för det.


Ett första utkast
HÄR kan man nu ladda hem den första körbara versionen av spelet. Jag gjorde den mest för att se hur snabbt
XNA kunde bearbeta uppdateringen av de stjärnor som ses i spelet. Har även fixat enkelt kamerahantering. OBS! XNA Redistributable 3.1 behövs för att köra spelet.


>> En sommar, ett spelprojekt. <<

I sommar läser jag 15hp Spelprogrammering från Högskolan på Gotland (hgo). I denna kurs skall man göra ett spel samt en rapport. Vad kan då vara bättre än att starta en blogg kring utvecklingen av detta projekt? Framför allt så kommer bloggen hjälpa mig att sammanfatta hela utvecklingsprocessen medans jag arbetar så när det är dags för rapportskrivande så borde jag ha ganska klart för mig vad som skall skrivas ner. Samtidigt så hoppas jag kunna få feedback på spelet från er läsare så att jag kan förbättra spelet hela tiden. Jag kommer att lägga ut nya versioner av spelet så fort jag känner att det finns något nytt att visa, så se er gärna som speltestare. ^_^

Spelet kommer att kodas i C# och XNA (XNA's Not Acronymed) som är Microsofts egna Framework för spelutveckling. Jag har tidigare gjort ett ganska stort projekt i XNA så jag ser denna kursen som ett sätt att gräva djupare i XNA. Därför kommer jag försöka skriva om både problem som dyker upp i XNA samt saker jag anser vara fördelaktiga. OBS! För att kunna köra spel som är utvecklade i XNA så krävs: 1. En Windows-burk (doh!). 2. Microsoft XNA Framework Redistributable 3.1 som finns att ladda hem gratis HÄR.

Detta var allt för nu, kommer skriva mer om själva spelet samt idéen jag har i nästa inlägg. Tills vidare får ni nöja er med min 90-tals-banner som ändå säger något om känslan i mitt spel.

RSS 2.0