Ero sivun ”Pelisuunnittelu” versioiden välillä
| Rivi 63: | Rivi 63: | ||
[[Kuva:Mari0portal.png|300px|thumb|Left|Esimerkki kaksiulotteisesta pelistä nimeltä Mari0. Peli on toteutettu [[Lua]]-skripti kieltä osaavalla Löve 2D-pelimoottorilla.]] | [[Kuva:Mari0portal.png|300px|thumb|Left|Esimerkki kaksiulotteisesta pelistä nimeltä Mari0. Peli on toteutettu [[Lua]]-skripti kieltä osaavalla Löve 2D-pelimoottorilla.]] | ||
Katso myös [[2D-peliohjelmoinnin aloitusopas Linuxille]]. | |||
===Kaksiulotteisia pelinkehitystyökaluja=== | ===Kaksiulotteisia pelinkehitystyökaluja=== | ||
Nykyinen versio 22. marraskuuta 2025 kello 15.39
Pelisuunnittelu
[muokkaa]Pelisuunnittelu: Ideasta toteutukseen 💡
Kuinka pelin voi suunnitella? Vastaus on, että pelin tekijästä itsestään kiinni, mitä ohjelmia tai tapoja haluaa käyttää.
Pelisuunnitteluprosessi alkaa yleensä paperilla tai digitaalisella hahmottelulla (kuten Twine tai yEd tarjoavat), mutta lopulta suunnitteluun käytetyt erikoistyökalut nopeuttavat ja selkeyttävät idean muuttamista toimivaksi peliksi. Tässä prosessin keskeiset vaiheet:
Hahmottelu ja dokumentointi: (Paperi, Twine, yEd)
[muokkaa]- Perusidea: Määrittele pelin ydinmekaniikka ja tavoitteet.
- Vuoropuhelu ja tarina: Kirjoita dialogit ja tarinan epälineaariset polut (Twine, Yarn Editor).
- Rakenteen visualisointi: Luo kaavioita pelin etenemisestä ja sisällön suhteista (yEd).
Prototyyppaus: (Kevyet moottorit kuten Löve tai skriptikielet kuten Python ja Lua)
[muokkaa]- Testaa ydinmekaniikkaa nopeasti ilman raskaita työkaluja.
- Toteutus: (Pelimoottorit kuten Unity tai Unreal Engine)
- Käytä ammattitason työkaluja lopullisen pelin rakentamiseen.
Pelimoottorit ja niiden rooli
[muokkaa]Pelimoottorit tarjoavat valtavat edut pelikehittäjille. Tärkein niiden tarjoama toiminto on tietokonepelissä käytettävien ydintoimintojen kirjasto. Nämä kirjastot sisältävät:
- Reaaliaikaisen 2D- tai 3D-renderointimoottorin grafiikalle.
- Fysiikkamoottorin törmäystunnistuksella.
- Hahmoanimaatiojärjestelmän, kohtauskaaviot ja äänen.
- Tekoälyn, verkon, syötteen ja lokalisoinnin tuen (Poedit).
- Virheenkorjaustyökalut sekä suorituskyvyn seuranta- ja optimointityökalut.
Pelimoottoreilla on ratkaiseva rooli tietokonepelien nopeassa luomisessa ja kehittämisessä, koska ne tarjoavat kokoelman visuaalisia kehittämistyökaluja ja ne esitellään usein integroidussa kehitysympäristössä. Pelimoottoreita kutsutaan pelien väliohjelmiksi, koska ne tarjoavat joustavan ja uudelleenkäytettävän ohjelmistoalustan. Pelimoottoreita ei välttämättä kuitenkaan käytetä vain pelien luomiseen, vaan niitä käytetään monissa erilaisissa projekteissa, kuten koulutusohjelmistoissa, interaktiivisessa taiteessa ja tieteellisessä visualisoinnissa.
Saadaksemme käsityksen käytettävissä olevien ohjelmistojen laadusta olemme koonneet luettelon:
- Tarina ja kaaviot: Twine Muokkain (interaktiiviset tarinat), namegen (nimi generaattori), yEd (kaaviot), Yarn Editor (vuorovaikutteinen vuoropuhelu).
- Kehitysympäristöt ja Moottorit: Unreal Engine, Unity, NetBeans, Code::Blocks, Eclipse, jMonkeyEngine ja Godot.
- Grafiikka ja Sisältö:
- Kuvankäsittely: GIMP, AwesomeBump, Material Maker.
- Pikseligrafiikka: Aseprite, Pixelator
- 3D-Mallinnus: Blender, MakeHuman, Tinkercad.
- Ääni: Audacity
- Lokalisointi: Poedit
Ohjelmointikielen valinta
[muokkaa]Valinta riippuu projektin koosta, suorituskykyvaatimuksista ja siitä, käytätkö valmista moottoria.
Python ja Lua
[muokkaa]Python ja Lua ovat korkeamman tason skriptauskieliä, joita voidaan käyttää peliohjelmoinnissa, mm. lisäominaisuuksien tuottamiseen. Niillä voidaan tuottaa myös koko peli niin haluttaessa. Skriptauskielen syntaksi on ohjelmakohtainen ja ohjelman toiminnot ovat ennalta määritellyt. Python ja Lua ovat tulkattavia kieliä. Aiheeseen liittyvänä esimerkkinä World of Warcraft käyttää lisäosissaan Luaa skriptauskielenä. Luaa voi käyttää esimerkiksi peleissä, joissa tarvitaan automatisointia. Esimerkiksi Löve-pelimoottori, jota ohjelmoidaan Lua-skriptiä käyttäen.
Java
[muokkaa]
Java on suosittu alustariippumaton ohjelmointikieli, joka käy myös pelinkehitykseen. Esimerkiksi kolmiulotteinen yksinkertainen pelimoottori on toteutettu Javalla ja LWJGL2-kirjastolla. Javaa voi opiskella helposti esimerkiksi Helsingin Yliopiston [1]-verkkokurssilla tai Youtubesta löytyvillä opetusvideoilla.
C++
[muokkaa]C++, SDL:n ja OpenGL:n opiskelusta löytyy Youtubesta todella hyviä opetusvideoita. Videoita voi hakea hakusanalla C++, SDL and openGL tai käydä thecplusplusguy nimisen henkilön kanavalla.
Pascal
[muokkaa]Tarjolla perinteinen tekstieditori ja komentorivipohjainen FreePascal tai graafiseen käyttöympäristöön pohjautuva Lazarus. 3D-pelimoottoreiksi löytyy mm. nxPascal ja Castle Game Engine.
.NET (Core) korvaa Monon
[muokkaa]Microsoftin .NET-kehitysympäristö on nyt avoimen lähdekoodin alustariippumaton toteutus. Tämä on vähentänyt Monoon aiemmin liittyneitä patenttiriskejä- ja luotettavuushuolia, tehden C#:stä (Unityn pääkielenä) turvallisen ja vakaamman valinnan Linux-kehityksessä. .NET (aiemmin .NET Core) mahdollistaa tehokkaan ja monialustaisen kehityksen, korvaten vanhemman Monon toteutuksen.
Mikä on 2D-peli ?
[muokkaa]2D-peli on kuvattu kaksiulotteisena kuvana pikseleita muuttamalla. Kaksiulotteiset pelit kuvataan edestä tai ylhäältä. Esimerkkejä kaksiulotteisista peleistä ovat mm. Mari0, joka kuvaa edestä päin kuvattua kaksiulotteista laatoista koostuvaa peliä tai The Mana World, jonka kuvakulma on kuvattu ylhäältä.
Isometriset pelit kuuluvat myös kaksiulotteisiin peleihin. Ne on kuvattu yläviistosta. Isometrinen peli on esimerkiksi Unknown Horizons. Poikkeuksia tästä on myös esimerkiksi FEZ, jossa liikutaan kaksiulotteisilla tasoilla ja ympäristöä voi kääntää kolmiulotteisesti. Pelit koostuvat pääosin laatoista, joita voi olla erikokoisia ja muotoisia.


Katso myös 2D-peliohjelmoinnin aloitusopas Linuxille.
Kaksiulotteisia pelinkehitystyökaluja
[muokkaa]- Solar2D on avoimen lähdekoodin Lua-pohjainen 2D-pelimoottori.
- Godot Engine on 2D- ja 3D-pelimoottori.
- Mokoi Gaming Alchera [2] on graafinen kaksiulotteisten pelien kehitystyökalu, joka sisältää SDL:n päälle toteutetut grafiikka-, ääni ja verkkokirjastot.
- GameEditor on graafinen 2D-pelikehitystyökalu.
- o.h.r.RPG.c.e on NES/SNES-tyylinen 2D-pelikehitystyökalu ja roolipelimoottori.
- GameMaker tekee pelien kehittämisestä helppoa taustastasi tai taitotasostasi riippumatta.
Kaksiulotteisia pelimoottoreita
[muokkaa]- Löve on 2D-pelimoottori, jota ohjelmoidaan tulkattavan Lua-kielen avulla. Peli voidaan ohjelmoida pelkkää tekstimuokkainta käyttäen. Ohjelmakoodi suoritetaan komentoriviä käyttäen. Ohjelman koodi on helppolukuista ja sen oppii nopeasti. Löve-pelimoottorilla voi myös tehdä 3D-pelejä, tekniikkaa kutsutaan raycastingiksi [3]. Lövella ohjelmoituja pelejä ovat mm. Mari0 ja Move or Die.
- Fife on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan Python-kielen avulla. Fife:llä ohjelmoituja pelejä ovat mm. Unknown Horizons.
- Flare on isometrinen roolipelimoottori, josta ainakin on julkaistu peli nimeltä The Empyrean Campaign.
Karttamuokkaimia
[muokkaa]- Tiled on 2D-karttamuokkain, jolla voi luoda ortogonaalisia, isometrisiä ja kuusikulmaisia laatoista koostuvia 2D-karttoja peleihin.
Grafiikka
[muokkaa]- Aseprite on avoimen lähdekoodin 2D-pikseligrafiikkaohjelma, jolla voit luoda animoituja spritejä ja pikseligrafiikkaa.
- Pixelator on pieni ja älykäs ohjelmisto, joka muuntaa kuvat pikselitaide spriteiksi tai pikselikansikuviksi.
Mikä on 3D-peli?
[muokkaa]
3D-pelit kuvataan kolmiulotteisena.
Kolmiulotteisia pelinkehitystyökaluja
[muokkaa]- Syntensity on avoimen lähdekoodin 3D-peli ja pelinkehitystyökalu.
- Platinum Arts Sandbox Game Maker on avoimen lähdekoodin kaksi- ja kolmiulotteisten pelien suunnittelu- ja hiekkalaatikko-ohjelma.
Mallinnus
[muokkaa]- Blender on monipuolinen 3D-mallinnusohjelma, josta löytyy myös animointimahdollisuus.
- Bforartists on Blenderistä haarautunut 3D-mallinnusohjelma.
- Neobarok on 3D-mallinnus- ja veistosovellus.
- MakeHuman on erittäin helppokäyttöinen 3D-hahmomallinnusohjelma.
- Dust3D on eläinhahmojen 3D-mallinnusohjelma.
- ngPlant on 3D-mallinnusohjelma, jolla voi mallintaa esimerkiksi kasveja ja puita.
- Arbaro on Javalla ohjelmoitu avoimen lähdekoodin kasvien ja puiden 3D-mallinnusohjelmisto.
Lisää mallinnusohjelmia löydät CAD-ohjelmia esittelevästä artikkelista ja 3D-mallinnusohjelmat luokasta.
Maastogeneraattorit
[muokkaa]- TerraForge3D on avoimen lähdekoodin proseduraalinen maastogeneraattori ja teksturointityökalu.
Grafiikka ja tekstuurit
[muokkaa]- GIMP on yleisimmin Linuxissa käytetty yleisin kuvankäsittelyohjelma.
- AwesomeBump on tekstuurikartoitus muokkain.
- Material Maker on avoimen lähdekoodin prosessuaalinen tekstuuri luontityökalu, joka perustuu Godot-moottoriin.
Lisää ohjelmia löydät kuvankäsittely luokasta.
Kolmiulotteisia pelimoottoreita
[muokkaa]- Crystal Space
- Irrlicht Engine on joustava 3D-grafiikkamoottori ja kirjasto, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla.
- jMonkeyEngine on Javalla ja OpenGL:llä toteutettu avoimen lähdekoodin 3D-pelimoottori ja muokkain.
- Lightfeather 3D
- OGRE on joustava 3D-grafiikkamoottori ja muokkain, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla.
- Panda3D on 3D-grafiikkamoottori, jota ohjelmoidaan C++ ja Python-kielen avulla.
- Godot Engine on 2D- ja 3D-pelimoottori.
- Banshee 3D on 3D-pelimoottori ja muokkain. Ohjelma on vielä kehityksen alla.
- Rogue Engine on ilmainen, suljetun lähdekoodin 3D-pelimoottori ja muokkain. Seon saatavissa AppImage -pakettina Linuxille.
Ja kaupallisia ohjelmistoja
[muokkaa]- Axis Game Factory on Axis Game Factory LLC:n ammattitason luomis- ja karttamuokkain Unity 3D:lle.
- CryEngine on saksalaisen Crytekin julkaisema suljetun lähdekoodin pelimoottori, joka on saatavana esimerkiksi Valven Steam [4] -jakelualustasta edulliseen kuukausihintaan.
- Unity3D on Unity Technologin kehittämä osittain avoimen lähdekoodin ammattitason pelimoottori ja muokkain.
- Unreal Engine on osittain avoimen lähdekoodin ammattitason pelimoottori ja muokkain.
Fysiikkamoottorit ja kirjastot
[muokkaa]- Spring on 3D-fysiikkamoottori.
- Open Dynamics Engine on avoimen lähdekoodin fysiikkakirjasto.
- Chipmunk Physics [5] on fysiikkamoottori ja kirjasto, jota käytetään 2D-peleissä.
- Bullet on fysiikkamoottori ja kirjasto, jota käytetään 3D-peleissä.
- Newton Game Dynamics [6] on fysiikkamoottori.
- Assimp eli Open asset import library
- SwinGame on pääasissa .Net-ohjelmistoille, Delphille ja FreePascalille kehitetty 2D-pelien tekemiseen tarkoitettu ohjelmakirjasto.
- SoLoud on helppokäyttöinen, ilmainen ja siirrettävä C/C++-äänimoottori ja kirjasto peleille.
Java pelikirjastot
[muokkaa]- LWJGL 3 on kevyt Java pelikirjasto, joka tukee OpenGL, OpenCL ja OpenAL kirjastoja.
- LWJGL 2 on kevyt Java pelikirjasto, joka tukee OpenGL, OpenCL ja OpenAL kirjastoja.
- Slick-Util on pieni jar-muotoinen kirjasto, jolla voi ladata erilaisia kuva-, ääni- ja fonttimuotoiluja LWJGL-kirjaston käyttöön.
Python moduulit
[muokkaa]- pyGame on avoimen lähdekoodin Python-ohjelmointikieleen tehty peliohjelmointimoduuli. Se sisältää SDL:n päälle toteutetut grafiikka- ja äänikirjastot.
Suomenkielistä kirjallisuutta
[muokkaa]- Tony Manninen: Pelisuunnittelijan käsikirja – ideasta eteenpäin, Kustannus Oy Rajalla (ISBN 978-952-5271-68-3)
- Ville Vuorela: Pelintekijän käsikirja, BTJ-Kustannus 2007 (ISBN 978-951-692-661-5)
Englanninkielistä kirjallisuutta
[muokkaa]- Flint Dille and John Zuur Platten: The Ultimate Guide to Video Game Writing and Design (ISBN 1-58065-066-X)
- Arnie Katz and Laurie Yates: Inside Electronic Game Design (ISBN 1-55958-669-9)
- Adam Lake: Game Programming Gems 8
- Patrick O'Luanaigh: Game Design Complete (ISBN 1-933097-00-0)
- PixelProspector’s Indie Resources A nifty collection of resources for Indie Game Developers
- Marc Saltzman: Game Design Secrets of the Sages (ISBN 1-56686-904-8)
- Jesse Schell: The Art of Game Design: A book of lenses
Katso myös
[muokkaa]- Portaali:Peliohjelmointi Linuxilla on päivitetty katsaus peliohjelmointiin Linux-ympäristössä, keskittyen yleispäteviin suosituksiin ja nykyaikaisiin työkaluihin, jotka tekevät projektin aloittamisesta sujuvampaa.
- 2D-peliohjelmoinnin aloitusopas Linuxille
- Pelit kehitysvaiheessa -luokka
- Pelikehitys-luokka
- Pelimoottorit-luokka
- Mallinnus
- Joukkorahoitus
Aiheesta muualla
[muokkaa]- Pelitieto.net - Pelien peruskurssi
- Avoin ohjelmistokehitys - seminaari (hyviä pdf-tiedostoja aiheesta)
- sourceforge.net joka on maailman suurin avoimen lähdekoodin ohjelmistokehittäjien yhteisö.
- Indie Game Development Guide