Jeg er ved at forberede mig til at deltage i Ludum Dare 29 som starter om en lille uges tid (kl. 03 natten til d. 26. april).
Det bliver mit første "game jam" og jeg blev ekstra motiveret til at deltage af at Sony Mobile i Lund i Sverige har valgt at indbyde 100 udviklere (først til mølle) til at sidde hos dem og arbejde hvor de tilbyder gratis catering og holder en lokalt vurderet konkurrence på LD29's tema men med det lille ekstra krav at resultatet skal involvere en mobil enhed på én eller anden måde og Playstation kontroller og/eller Sony SmartWatch 2. Læs mere her:
http://developer.sonymobile.com/hackathon/
Der er lukket for tilmelding til Sony i Lund, men selve den globale konkurrence er åben helt frem til deadline, så vidt jeg har forstået, så det kunne være sjovt hvis der var andre herinde der også ville være med.
Jeg går efter at lave et bidrag der kan gøre sig gældende både i den lokale sony konkurrence og i den globale LD 48 timers compo, hvor sidstnævnte har det yderligere krav at man arbejder alene.
Derudover er der en mindre restriktiv "jam" konkurrence hvor man kan arbejde i hold og har yderligere 24 timer (72 i alt) til at blive færdig i.
Læs reglerne for LD compo og jam her:
http://www.ludumdare.com/compo/rules/
I mine forundersøgelser af hvordan man kan opnå success i LD virker det til at være afgørende at sørge for at det man laver kan spilles i en webbrowser. Det skyldes at konkurrencen er er peer-reviewed og at der sidste gang var over 2000 indsendte bidrag, så hvor lettere man kan gøre det for sine "med dommere" at komme til at vurdere det man har lavet.
Så kravene til det jeg skal lave er:
- Skal arbejde alene (LD 48 compo krav)
- Skal involvere en mobil enhed på en måde (lokal Sony konkurrence krav)
- Skal involvere Playstation kontroller og/eller SmartWatch 2
- Alt (kode, grafik, lyd, musik) skal laves i løbet af de 48 timer (faktisk 39 timer i Lund), medmindre det ligger til fri afbenyttelse på nettet i forvejen (mere om det længere nede)
Sony konkurrencen bliver scoret på følgende kriterier:
Difficulty
Graphics
Originality
Fun factor
Estimated user base
Ludum Dare 48 Compo bliver scoret på følgende kriterier:
Overall
Innovation
Fun
Theme
Graphics
Audio
Humor
Mood
Det ser ud som om "vinderen" af LD bliver afgjort af "Overall" alene men jeg skal ikke kunne sige om denne er udregnet på baggrund af de øvrige eller er givet som selvstændig karakter.
Hvis jeg skal vælge går jeg mest efter den lokale Sony konkurrence da der kun er op til 100 (sikkert færre) konkurrenter, mod forventet over 2000 i den globale konkurrence, Sony Mobile tilbyder en del præmier og Sony i det hele taget er et firma jeg gerne vil gøre mig lidt lækker overfor ;-)
Med hensyn til de ting man kan forberede på forhånd, så sidder jeg de næste 4-5 dage og arbejder på et framework i Qt 5.2 (
http://en.wikipedia.org/wiki/Qt_(software) ) som giver mig mulighed for at skrive koden én gang og så kompilere den til én af de 3 mainstream styresystemer windows, linux og OS X og til de 2 største mobile styresystemer iOS og Android.
Med hensyn til senere at porte koden fra Qt til HTML 5, så kan jeg satse på et subset af OpenGL der svarer til funktionaliteten i WebGL og så bruge "Emscripten" til at oversætte min C/C++ spil-logik kode til javascript (der er en fyr der skriver mere om dette her:
http://www.toonormal.com/2012/04/27/nook-and-emscripten-a-technical-look-at-c-gamedev-in-the-browser/ ). Jeg vidste faktisk ikke at der var en velfungerende oversætter fra C/C++ til javascript før jeg begyndte at researche til LD.
Der er 2 alternative veje jeg kan gå.
Mobile enheder har lidt svingende understøttelse af WebGL, men Qt har sin egen indbyggede browser man kunne køre køre HTML 5 magien i, og så kun have én kodebase i OpenGL + javascript.
Alternativt har Qt også en indbygget javascript fortolker til brug for QML (Qt's brugerflade snitflade), og QML kan også bruges til at "drive" et OpenGL canvas, hvilket så igen ville give OpenGL + javascript.
Den første af disse er mindre lovende end sidstnævnte i og med at den hovedsageligt består i lægge mindst ét yderligere lag mellem spil og hardware.
Det mest attraktive ved sidstnævnte er faktisk at skrive spillogiken i javascript, som sine mange fejl og mangler til trods, sandsynligvis vil være signifikant hurtigere at arbejde med end rå C kode, selv for mig ;)
Første trin på vejen bliver at porte den rå OpenGL (pakket ind GLFW) version af dRxLaX jeg har liggende, som jeg i samme ombæring omdøber til Drones (eller 'dRoNeS' :-p) til at køre på Qt's OpenGL indpakning (QOpenGL).
Derefter skal jeg have fundet ud af at læse kontrollere fra Qt koden på Android. iOS 7 understøtter også bluetooth controllere, men det kan godt vente lidt.
Endelig mangler jeg at finde ud af hvad jeg gør mht. at tilvejebring lydeffekter, musik og andre "assets" til selve konkurrencen, men folk er heldigvis flinke til at skrive hvilket værktøjer de regner med at bruge inde på
http://www.ludumdare.com/compo/
Jeg regner med at blive ved med at skrive om mine forberedelser og resultater i denne tråd, op til og i løbet af selve konkurrencen, men ville selvfølgelig foretrække hvis I andre kommer på banen med enten egen deltagelse eller kommentarer på mit arbejde.
ps. En vild ting jeg også har fundet ud af i min research, er at moderne webbrowsere har understøttet game controllere siden ca. 2012, der er en beskrivelse og live-demo man kan prøve her:
http://www.html5rocks.com/en/tutorials/doodles/gamepad/