Peli hillo eli game jam on planeettamme laajuinen tapahtuma jossa peleistä, pelaamisesta ja pelien tekemisestä kiinnostuneet ihmiset kerääntyvät yhteen viikonlopun ajaksi luomaan pelejä jonkin vaihtuvan teeman ympärille.
Jamien osallistujat muodostavat todella luovan yhteisön, jossa jokainen pääsee opettelemaan R&D:n, nopean prototyyppauksen, iteratiivisen kehityksen ja suunnittelukulttuurin saloja.
Osallistujat oppivat konkretian kautta tuotannollisia todellisuuksia, jotka vaikuttavat muillakin aloilla, eivätkä pelkästään pelituotannossa.
Jamipelien toteutus tapahtuu yleensä tiimeissä, jotka koostuvat laajasta kirjosta eri taitajia ja persoonallisuuksia omaavia yksilöitä, todella tiukkojen aikarajoitusten puitteissa. Aikarajat pakottavat tekemään vaikeita päätöksiä pelin ominaisuuksista, eli mitä jätetään lopulliseen tuotteeseen ja mitä pitää leikataan surutta (yleensä surullisesti) pois.
Edellisen kuvailun ei kuitenkaan pidä aiheuttaa turhia kuumotuksia. Jameille kannattaa pakata ensimmäiseksi mukaan rento asenne ja ottaa pääasialliseksi tavoitteeksi pitää hauskaa.
Game jamit saivat alkunsa nykyisessä muodossaan Californiassa Maaliskuussa 2002 The 0th Annual Indie Game Jam nimisenä tapahtumana, mutta jo ennen tätä, on Suomessakin järjestetty samankaltaisia demoparty-tapahtumia jo 90-luvulta alkaen.
Nykyisin game jamit ovat saavuttaneet todella massiivisen kokoluokan, josta parhaana esimerkkinä toimii Global Game Jam. GGJ on monisijaintinen tapahtuma, eli saman aikaisesti tapahtumaan osallistuu ihmisiä monista eri maista, useilta tapahtumapaikoilta. Globaalin tapahtuman peleillä on jokin yhtenäinen vuosittainen teema, sekä valinnaisia lisähaasteita. Vuonna 2017 tapahtumalla oli yli 36 000 osallistujaa, 702 tapahtumapaikalla, 95 maassa, jotka tekivät yli 7000 peliä yhden viikonlopun aikana.
Tämän vuoden GGJ on meikäläisen 4 kerta jamittelemassa, aikaisempina vuosina olen ollut pelien teossa mukana, mutta tänä vuonna olen FGJ Joensuun tapahtumapaikan järjestäjänä. Alla siis omia sekä muilta opittuja ajatuksia, kuinka saada pelijammailut sujumaan mukavasti.
Heti kärkeen on muistutettava että kyseessä voi olla aivan minkälainen peli tahansa. Sen ei siis tarvitse olle jollakin elektronisella alustalla toimiva kokemus, vaan kyse voi olla pöydän päällys pelistä, kuten lauta- tai korttipeli tai vaikka tilassa pelattava hippasokkojalkapallo 2.0 hybridi. Se voi myös olla jokin yhdistelmä kaikkea yllämainittua.
Olen kirjoittanu pääasiassa aikaisempina vuosina pelien koodia, joten jos en olisi ollut tänä vuonna järjestäjänä niin olisin hoitanut itseni vaikka väkisin tekemään pelien taiteellisempaa puolta. Tai vaihtoehtoisesti kokeillut jotain aivan muuta kuten epäelektronisen pelin tekemistä ja suunnittelua. Eli lähtekää rohkeasti rikkomaan rajoja ja omia mukavuusalueita, silloin saatte yhden parhaista kokemuksista ja opitte todennäköisesti eniten.
Muistakaa myös nukkua! Liian vähä uni laskee tutkitusti tehokkuutta. Jos koti ei ole ihan vieressä, käyttäkää mielikuvitusta, yleensä löytyy joku ovela (ehkä jopa pehmeähkö soppi) johon voi käpertyä edes lyhyille tehonokosille. Oma retkipatja/sänky/riippumatto helpottaa huomattavasti elämää.
Pidä energiapalkki täynnä! Juomalla vettä ja syömällä säännöllisesti, jammailutehokkuus laskee nimittäin huomattavasti jos pelintekomoottorilla, eli omalla keholla ei ole tarpeeksi polttoainetta. Kannattaa tuoda oma vesipullo mukaan. Lisäksi mahdollisen tiimin kanssa pidettyjen ruokailusessioiden aikana saattaa syntyä se paras idea tai toteutustapa jollekin pelin osa-alueelle!
Älä aliarvioi hygieniaa! Suihkunraikkaana kehittäminen sujuu kuin tanssi. Vaikka se henkilökohtainen kehitystuoksu saattaakin olla omasta mielestä, jollain kierolla tavalla miellyttävä, se ei todennäköisesti ole sitä sen vieressä ahkeroivan tiimikaverin mielestä, älä siis häiritse kanssakehittäjiä ylimääräisillä ödööreillä.
Tyhjennä pääkoppa välillä! Vaikka tehtävälista on pitkä kuin nälkävuosi ja takaraivossa tykyttää orjapiiskurin lailla huutavat deadlinet, muista silti pitää taukoja ja päästä välillä paineita ulos. Projektin työstäminen on usein stressaavaa puuhaa, puhumattakaan game jam projektien kaltaisten aikataulullisesti varsin haasteellisten. Jos siis huomaat turhautumisen merkkejä, ota suosiolla pieni tauko, lähde kevyelle kävelylenkille, ota hörppy vettä, tee muutama ristihyppy tai käy vaikka saunassa.
Muistakaa puhua ihmisille ja kommunikoida erityisesti tiimin sisällä. Samanhenkisyyttä löytyy aivan varmasti kaikista jameille osallistuvista ihmisistä, joten rohkeasti vain jutulle muidenkin tiimien ja järjestäjien kanssa. Mikään kysymys ei ole liian tyhmä kysyttäväksi, koska aivan liian monet projektit kaatuvat yksinkertaisesti kommunikaation puutteeseen.
Olkaa kohteliaita kanssaihmisille, sitä ei voi ikinä tietää vaikka tuleva työnantaja tai työkaveri olisi paikalla. Pyri siis olemaan paras itsesi. Muistakaa siis pitää itsestänne ja erityisesti kanssa jamittelijoista hyvää huolta.
Ja vielä kerran muista pitää hauskaa, jos homma meinaa mennä liian totiseksi, teet todennäköisesti jotain väärin.
Hyvin suunniteltu on kaksi kolmasosaa tekemättä, joku minua viisaampi henkilö on joskus sanonut että game jameilla kannattaa käyttää noin saman suuruinen aika suunnitteluun, toteutukseen ja lopputuloksen hiomiseen. Tämä voi kuulostaa aluksi aika omituiselta jaolta, mutta pelin laajuus tulisi suunnitella niin että se mahtuu tähän raamiin.
Projektia suunnitellessa kannattaa siis ensimmäisenä priorisoida pelin laajuus kohdilleen. Mitä pienemmäksi saat pelin laajuuden, sitä todennäköisemmin se tulee valmiiksi ja sen hiomiselle jää tarpeeksi aikaa, jolloin lopputuloksena on mahdollisimman selkeä ja toimiva kokonaisuus.
Tätä kannattaa lähestyä niin kutsutulla MVP (minimal viable product) ajattelutavalla, eli mikä on minimalistisin mahdollinen versio pelistä jotta sitä voi pelata?
Valitse jokin projektinhallintatyökalu ja listaa asiat ja ominaisuudet joita pelissä pitää olla. Asiat voi järjestellä vaikka tärkeysjärjestykseen: korkea, keskitaso, matala. Priorisoi pakolliset ominaisuudet korkeimmaksi.
Kun kokonaisuus on tiedossa, kannattaa vakka napata kynä, sakset ja paperia ja rakentaa paperiprototyyppi toimivimmista ideoista. Näin saat selitettyä vision pelistä tai ideasta myös mahdollisille kanssakehittäjille. Vaikka koko muu tiimi usein nyökyttelee ymmärtävänsä jonkun selitetyn idean, toteutuu se silti aivan eri tavalla jokaisen oman pääkopan sisuksissa.
Lopputuloksen hiomista ei kannata vähätellä, sille kannattaa varata reilusti aikaa, silloin peliin puhalletaan todella merkittävä osa pelin fiiliksestä. Tämän ajan voi käyttää muunmoassa tehokkaaseen testaamiseen, bugien korjaamiseen, tuotoksen kaunistamiseen ja yksityiskohtien lisäämiseen.
Seuraava kohta voi tuntua aika itsestään selvältä, mutta moni asia yleensä unohtuu hurjassa pelinteon tiimellyksessä. Käytä valmiita työkaluja ja ratkaisuja, mitä enemmän voit käyttää jo olemassa olevia asioita, sen enemmän sinulle jää aikaa itse pelin tekemiseen.
Löysin internetistä todella kätevän listan työkaluista joita voi käyttää pelijameilla tai niiden ulkopuolella. Sieltä löytyy pelimoottoreita ja frameworkeja; assetteja kuten 3D-malleja; tekstuureita ja ääniä; työkaluja 3D-mallintamiseen, sekä työkaluja 2D rasteri- ja vektorigrafiikan tekemiseen; ääni ja musiikki työkaluja; sekä jopa projektin- ja versionhallinta työkaluja.
Muista myös tallentaa usein, mikään ei ole niin turhauttavaa kuin huomata sen harvinaisen mutta mahdollisen sähkökatkoksen jälkeen, että tallensit työsi viimeksi 3 tuntia sitten.
Myös versionhallinta kannattaa laittaa kuntoon, vaikka kyseessä onkin vain viikonlopun mittainen ekskursio. Varsinkin kun tiimissä on yli yksi henkilö, tämä helpottaa huomattavasti projektin tiedostojen jakamista ja yhdistämistä. Jos versionhallinta ei ole aikaisemmin tuttu, siihen pääsee aika nopeasti sisään esimerkiksi Git:in ja SourceTreen avulla ilman komentorivin käyttöä. Ilmaisia repositoryjä tarjoaa ainakin GitLab, GitHub ja BitBucket.
Unity - Moottori
Asset Store - Valmista tavaraa
Unity työkalut
Fungus - Tarinankerronnan rakentaminen
ProBuilder - Kenttäeditori
Terrain Toolkit - Proseduraalinen maastonluonti
Unreal Engine 4 - Moottori
UE Marketplace - Valmista tavaraa
Cry Engine - Moottori
CE Marketplace - Valmista tavaraa
Amazon Lumberyard - Moottori
Scratch - Moottori - Ei vaadi koodia, aloittelijaystävällinen
PICO-8 - Moottori - Yksinkertainen, hyvä jamikäyttöön
PICO-8 BBS - Koodiesimerkkejä
GameMaker - Moottori - Aloittelijaystävällinen
GM Marketplace - Valmista tavaraa
Godot - Moottori - Avoin lähdekoodi
Construct 3 - Moottori - Web pohjainen
Stencyl - Moottori - Ei vaadi koodia
Defold - Moottori - Vain 2D
Ren’Py - Moottori - Visuaalisia novelleja
Twine - Moottori - Tekstipohjaiset pelit
Inkle Writer - Moottori - Tekstipohjaiset pelit
Adventure Game Studio - Moottori - Seikkailupelit
IRRLicht - Moottori - Avoin lähdekoodi
RPG Maker VXRPG Maker VX Ace Lite Ace Lite - Moottori - Ei vaadi koodia, 2D, voi tehdä muutakin kuin RPG:itä
Bitsy - Moottori - Yksinkertaisia mekaniikoita, 2D
CreateJS - HTML5/Javascript kirjasto
Box2D - Javascript 2D fysiikkakirjasto
Cocos2D - HTML5
Processing.js - Visuaalisaatiota
P5.js - Visuaalisaatiota
MonoGame - Avoimen lähdekoodin versio Microsoftin XNA:sta
Processing - Java
Ogre3D - 3D renderöinti moottori
OpenFL - Flash:n kaltainen monialusta API
Box2D - 2D fysiikkakirjasto
Chipmunk2D - 2D fysiikkakirjasto
HaxeFlixel - Haxe
Heaps - Haxe monialusta API
SDL - Monialusta API, C/C++
SFML - Multimedia kirjasto, C++:lle
Love2D - Lua
Openframeworks - C++ työkalupakki
PyGame - Python
A-Frame - Helppo webVR framework editorilla
VRTK - VR työkalu Unitylle. Vielä hetken aikaa avoin lähdekoodi
Vectary - Online 3D mallinnus
Qubicle - Voxeli Editointityökalu
GIMP - Avoimen lähdekoodin Photoshop
Paint.NET - Hyvä esim. pixeli grafiikkaan
Krita - Digitaalinen maalaaminen
Inkscape - Avoimen lähdekoodin vektori työkalu
Piskel - Online pixeli grafiikka & sprite editori
DragonBones - Skeletal animaatio
Spine - 2D skeletal animaatio
Carnegie-Mellon Motion Capture Database - Ilmainen mocap tietokanta
Tiled - Laatta editori
Color Oracle - Värisokeuden testaamiseen
Paletton - Väriteemoja
Image optimizer - Kuvien optimointi
Tilemancer - Proceduraalinen laattageneraattori 2D peleille
Fractorium Flame Fractal Generator - Fraktaali-liekki editori
IntelliJ - Java
Collabedit - Tekstieditori / chat-hybridi yksinkertaisella syntaksin korostuksella
Visual Studio Code - Tekstieditori laajalla liitännäisvalikoimalla
Atom - Tekstieditori laajalla liitännäisvalikoimalla
PureData - Avoimen lähdekoodin visuaalinen ohjelmointikieli multimedialle. (Mass-Effect-type synth patches)
Mercurial SCM - Ohjelma
Git - Ohjelma
GitHub - Hostaus
GitLab - Hostaus
Bitbucket - Mercurial ja Git hostaus
Sourcetree - GUI ohjelma Gitille ja Mercurialille
GitExtensions - Kuin Sourcetree mutta kaikelle FOSS:lle
GitKraken - GUI ohjelma Gitille, ilmainen avoimelle lähdekoodille
Git LFS (Large File Storage) - Hyödyllinen binääri objekteille
Trello - Projektinhallinta
HackNPlan - Projektihallinta erityisesti peleille
Murally - Projektinhallinta, ideointi, ilmoitustaulu
Realtime Board - Ilmoitustaulu
Mindmeister - Mind mappaus
Lucidchart - Diagrammeja ja vuokaavioita
Cacoo - Diagrammeja ja vuokaavioita
Sligrid - Mind mappaus, ilmoitustaulu, konseptitaulu
Notion - Muistiinpanot, wikit ja tehtävät
Draw.io - Diagrammeja ja vuokaavioita
Asana - Projektin hallinta
Project Libre - Avoimen lähdekoodin Microsoft Project -tyyppiset GANTT-kaaviot
Workflowy - Lista editori, tehtäväluettelot
Bear - Kirjoitustyökalu omenaihmisille
Kenney - Kaikkea mahdollista
OpenGameArt - Kaikkea mahdollista, suurin osa 3D-malleista blender formaatissa
Asset Store (Unity) - Kaikkea mahdollista, toimii myös muilla alustoilla
Glitch peli - Assetteja Glitch pelistä
TurboSquid - 3D malleja
Blend Swap - 3D malleja, blender
Sketchfab - 3D malleja
Dev Assets - Korkealaatuisia malleja
Poly - Alhaisen polygoni määrän malleja
Thingiverse - Voit kääntää STL -> OBJ käyttämällä Blenderiä
Glitch peli - Assetteja Glitch pelistä, 2D spritejä ja Flash taustoja
Lost Garden - 2D assetteja prototyyppaukseen
Open Footage - Tekstuureita, vain osa ilmaisia
3D Textures - 3D tektuureita PBR mapseilla
FreeSFX - Ääniefektejä
SoundBible Ääniefektejä
FreeSound - Ääniefektejä
99sounds - Ääniefektejä
Game Audio GDC 2017 - Ääniefektejä
Game Audio GDC 2016 - Ääniefektejä
Sonniss - Ääniefektejä
Free sound samples - Ääniefektejä
Adobe Sound Effects - Ääniefektejä
Incompetech - Musiikkia ja kuviopaperia
Sound of Text - Tekstiä puheeksi
Free Music Archive - Ilmainen musiikkikirjasto
Googlen sound-maker - Musiikkia ja efektejä koneälyllä
Newgrounds - Musiikkia
Audio Tool - Musiikin tuotanto
Sound Trap - Musiikin tuotanto
ChipTone - Musiikin tuotanto, Chip tuneja
BFXR - Äänityökalu
Audacity - Äänen nauhoitustyökalu
Bosca Ceoil - Musiikkityökalu
Procedural Music - Vaatii Midi renderöijän
SynthFont - Midi Renderöijä
GXSCC - Midi Renderöijä
BeepBox - Chiptuneja
Milkytracker - Trackeri
ChipTone - BFXR:n isoveli
LMMS - Avoimen lähdekoodin musiikin teko sovellus
Soundation - Musiikin teko sovellus
Otomata - Generatiivinen musiikin sekvensseri
Vinkki: Voit etsiä asioita Soundcloudista ja Youtubesta käyttämällä Tekstitys/Subtitles/CC filtteriä.
PixelProspector - Kaikkea mahdollista pelinkehitykseen liittyen
GIFCam - Ilmainen nauhoitus sovellus jonka ulostulona on optimoitu GIF
EZGif - Online työkalu GIF animaatioiden luomiseen
JSFiddle - Työkalu yhteisten web projektien tekoon
Github Gists - Hyödyllisiä scriptejä
OBS - Suoratoistoja nauhoitus sovellus
Kiitokset listasta:
Twitter: @CiroContns
Ja muut pelinkehittäjät ympäri internettiä <3
Ajatuksia ja tuntemuksia työmarkkinoilla vallitsevasta osaajapulasta, taitaa siellä sieassa olla pari vinkkiä ongelman rataisemiseksi myös.
Koodari koodaa, eli tekee tietokoneohjelmointia, tämä tarkoittaa yksityiskohtaisten ohjeiden kirjoittamista tietokoneelle.
Digikalenterissa tiedot on tallennettu pilveen, jolloin ne on aina saatavilla kaikilla laitteilla joista löytyy virtaa ja nettiyhteys.