Peli Hillo tulee, oletko valmis?

Joonas Rauha - 25.01.2018 15:23:42

 

Pelintekotyökalut

 

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.


Kuinka saada tapahtumasta kaikki irti?

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.


Projektinhallintaa

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.


Mitä ottaa mukaan?

  • Game Jam lippu
  • Paperia, kyniä, pyyhekumi
  • Puhelin ja laturi
  • Vesipullo
  • Naposteltavaa
  • Tietokone ja siihen liittyvät asiat
  • Kuulokkeet
  • Ohjaimia (kaikenlaisia)
  • USB kovalevy/tikku
  • Hygieniavarustus
  • Makuupussi ja makuualusta
  • Tyyny
  • Korvatulpat
  • Mukavat jalkineet
  • Vaihtovaatteet

 

Pelintekotyökalut:

 

Pelimoottorit ja frameworkit

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

 

HTML5 / Javascript

Canvas Engine

Pixi.js

CreateJS - HTML5/Javascript kirjasto

Box2D - Javascript 2D fysiikkakirjasto

Phaser

Superpowers

Cocos2D - HTML5

Processing.js - Visuaalisaatiota

P5.js - Visuaalisaatiota

 

Frameworkit

MonoGame - Avoimen lähdekoodin versio Microsoftin XNA:sta

Processing - Java

Ogre3D - 3D renderöinti moottori

LibGDX

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

Raylib

Openframeworks - C++ työkalupakki

PyGame - Python

A-Frame - Helppo webVR framework editorilla

VRTK - VR työkalu Unitylle. Vielä hetken aikaa avoin lähdekoodi
 

Työkalut

3D Mallintaminen

Blender

Make Human

MagicaVoxel

Vectary -  Online 3D mallinnus

Qubicle - Voxeli Editointityökalu

 

2D ja Vektori Grafiikka

GIMP - Avoimen lähdekoodin Photoshop

Paint.NET - Hyvä esim. pixeli grafiikkaan

Krita - Digitaalinen maalaaminen

Inkscape - Avoimen lähdekoodin vektori työkalu

Aseprite

Pixlr

Piskel - Online pixeli grafiikka & sprite editori

 

Animaatio

DragonBones - Skeletal animaatio

Spine - 2D skeletal animaatio

Carnegie-Mellon Motion Capture Database - Ilmainen mocap tietokanta

 

Muut Graafiset Työkalut

Tiled - Laatta editori

Texture Packer

Color Oracle - Värisokeuden testaamiseen

Shoebox

Paletton - Väriteemoja

Image optimizer - Kuvien optimointi

TextureGenerator Online

Tilemancer - Proceduraalinen laattageneraattori 2D peleille

Fractorium Flame Fractal Generator - Fraktaali-liekki editori

 

Ohjelmointi

IDE:t

Eclipse

Visual Studio Community

Monodevelop

IntelliJ - Java

Komodo Edit

Collabedit - Tekstieditori / chat-hybridi yksinkertaisella syntaksin korostuksella

Consulo

Netbeans

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)

 

Versionhallinta

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

 

Projektinhallinta

Graafiset

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

 

Tekstipohjaiset

Workflowy - Lista editori, tehtäväluettelot

Bear - Kirjoitustyökalu omenaihmisille

 

Assetit

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ä

 

3D Malleja

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ä Blender

 

Textures / 2D Art

Textures

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

 

Ääni

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

 

Julkinen

New York Public Library

NASA Audio Library

 

Middleware

FMOD

WWISE

Vinkki: Voit etsiä asioita Soundcloudista ja Youtubesta käyttämällä Tekstitys/Subtitles/CC filtteriä.

 

Fontteja

Font Squirrel

Google Fonts

1001 Free Fonts

Font River

1001 Fonts

Da Font

 

Pöydän Päällys Pelit

RPTools

 

Muuta

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

 

Joonas on alunperin Tampereelta kotoisin oleva zen mestari ja käytettävyyden virtuoosi.