Jag håller för närvarande på med ett projektarbete där jag ska göra ett spel för Android. Vad jag rekommenderar står endast för mig och är absolut ingenting som behöver passa alla.
Vad jag rekommenderar är följande:
1: Använd ingen spelmotor eller dylikt. Försök hellre själv att bygga upp en spelmotor genom att hämta inspiration från andra projekt samt använda din egen kunskap. Först när du har gjort detta så har du en förståelse som krävs för att förstå ändå in i djupet i spelmotorn (om du nu vill det dvs.
).
2: Lär dig olika mönster s.k. "patterns" som gäller för spelprogrammering. Till exempel Memory Pools, Component och dylikt. När du har satt dig in i dessa förstår du strukturen i hur ett spel ska vara uppbyggt. Det kan annars vara lätt att missa detta när man använder sig av en spelmotor.
3: Ta tid på dig. Många slänger ut spel (vissa gör det bra, andra gör det inte) som säkert i sig är kul men strukturen i koden är fruktansvärd. Detta gör spelet fruktansvärt svårt att underhålla. Detta är bara ett antagande men det känns som att i alla fall 10% - 20% av alla lätta spel är ett ihopplock av olika saker. Jag har t.ex. i mitt projektarbete precis kommit till delen där själva fysiken ska utvecklas (spelet i sig) men spelmotorn är klar. Detta för att jag har tagit månader åt att förstå specifika saker (som inte bara gäller för Java/Android-utveckling).
4: Först nu skulle jag rekommendera att köra en spelmotor då spelmotorn oftast löser spelmönstersproblemen. Nu har du förståelsen som krävs (och jag lovar), den förståelsen är härlig när man förstår något ändå in i djupet.
5: Börja med Canvas-API:et om du känner att OpenGL ES är för svårt i början. Jag håller för närvarande på med OpenGL ES i både 2D och 3D där jag skiftar allt eftersom förståelsen kommer till.
Sista punkten: Om du har problem med något specifikt mönster, gör ett enskilt projekt som hanterar detta. Jag har själv gjort fyra olika "tutorials"/projekt som demonstrerar vissa "patterns"/mönster (ett Type Object-pattern-projekt och tre Memory Pools-pattern-projekt) där t.ex. de tre delarna i Memory Pools-projekten definerar en egen svårighetsgrad/användningsområde. Detta är något jag inte har lagt ut men det är något jag tänka mig dela till Swedroid forum.
Till slut, jag har inte släppt något spel på Market och jag gör det inte om jag inte känner att det blir bra. Vad jag vet är att jag har förståelsen för hur ett spel är uppbyggt och att det kan vidareutvecklas ytterligare. Det som jag tycker är kul är när man faktiskt bygger hela spelmotorn själv. Då framstår själva spelet som väldigt simpelt och att det går snabbt att göra. Att det har dröjt en längre tid för mig är för att jag själv har valt att vilja förstå det jag gör. Jag vill inte bara skapa tre, fyra klasser och kludda ihop något projekt (vilket jag kunnat göra för att "bara" få ihop till ett projekt).
Dessa ord är säkert inga perfekta utan detta är vad jag tror ger en mest kunskap långsiktigt tänkt.
Last edited: Jan 21, 2011