Muokataan sivua Portaali:Peliohjelmointi Linuxilla

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
[[Kuva:Mari0portal.png|300px|thumb||Esimerkki kaksiulotteisesta pelist Mari0. Peli on teteutettu [[Lua]]-skripti kieltä osaavalla Löve 2D-pelimoottorilla.]]
Tämän sivun tarkoitus on toimia lähtöpaikkana kaikille, jotka haluavat opetella peliohjelmointia Linux-ympäristössä. Monesti peliohjelmointiin liittyvät ohjeet ovat pelkkiä linkkilistauksia. Peliohjelmointi Linuxilla ilman tarkempaa tietoa on hankalaa. Tähän olisi tarkoitus luoda hyvä sivu, jossa kerrotaan mitä mitäkin ohjelma tekee ja mitä eri kirjastot tekevät. Tässä artikkelissa pyritään antamaan mahdollisimman yleispäteviä suosituksia, joiden pohjalta oman peli projektin ohjelmointi olisi helpompaa. Aloitetaan!  
Tämän sivun tarkoitus on toimia lähtöpaikkana kaikille, jotka haluavat opetella peliohjelmointia Linux-ympäristössä. Monesti peliohjelmointiin liittyvät ohjeet ovat pelkkiä linkkilistauksia. Peliohjelmointi Linuxilla ilman tarkempaa tietoa on hankalaa. Tähän olisi tarkoitus luoda hyvä sivu, jossa kerrotaan mitä mitäkin ohjelma tekee ja mitä eri kirjastot tekevät. Tässä artikkelissa pyritään antamaan mahdollisimman yleispäteviä suosituksia, joiden pohjalta oman peli projektin ohjelmointi olisi helpompaa. Aloitetaan!  


==Millainen on Linux peliohjelmoijan näkökulmasta?==
==Millainen on Linux peliohjelmoijan näkökulmasta?==
[[Kuva:Unknown-Horizons.png|250px|thumb||Esimerkki isometrisestä pelistä - Unknown Horizons]]
Tiedon etsiminen voi aluksi tuntua vaikealta, mutta tämän sivun on tarkoitus olisi helpottaa sen löytämistä.
Tiedon etsiminen voi aluksi tuntua vaikealta, mutta tämän sivun on tarkoitus olisi helpottaa sen löytämistä.


Rivi 8: Rivi 10:
Erilaisia ohjelmia mitä voidaan tarvita pelinteossa.
Erilaisia ohjelmia mitä voidaan tarvita pelinteossa.
* Suunnittelu
* Suunnittelu
** [https://battletech.rpg.hu/dynmech/gamename.php Hahmon nimi ja sukupuu generaattori]
** [https://battletech.rpg.hu/dynmech/gamename.php Character name and Family tree generator]
** [http://twinery.org/ Twine] Muokkain, jolla voi luoda interaktiivisia ja epälineaarisia tarinoita.  
** [http://twinery.org/ Twine] telling interactive, nonlinear stories.  
** [https://www.yworks.com/products/yed/download#download yEd] on tehokas työpöytäsovellus, jonka avulla voidaan luoda nopeasti ja tehokkaasti laadukkaita kaavioita.
** [https://www.yworks.com/products/yed/download#download Yed]
** [https://github.com/YarnSpinnerTool/YarnEditor Yarn Editor] Työkalu vuorovaikutteisen vuoropuhelun kirjoittamiseen peleissä
** [https://github.com/YarnSpinnerTool/YarnEditor Yarn Editor] A tool for writing interactive dialogue in games
* Ohjelmointikielen opettelu tai valmis peliohjelmoitiympäristö: [[Unreal Engine]], [[Unity3D|Unity]]
* Ohjelmointikielen opettelu tai valmis peliohjelmoitiympäristö: [[Unreal Engine]], [[Unity3D|Unity]]
* [[Portaali:Ohjelmistokehitys|Ohjelmointiympäristö]]: [[NetBeans]], [[Code::Blocks]], [[Eclipse]], [[jMonkeyEngine]], [[Godot]]
* [[Portaali:Ohjelmistokehitys|Ohjelmointiympäristö]]: [[NetBeans]], [[Code::Blocks]], [[Eclipse]], [[jMonkeyEngine]], [[Godot]]
Rivi 22: Rivi 24:
==Pelisuunnittelu==
==Pelisuunnittelu==
Kuinka pelin voi suunnitella? Piirtääkö ja hahmottelee peli-idean paperille vai käyttääkö siihen suunniteltuja ohjelmia. On pelin tekijästä kiinni, mitä ohjelmia tai tapoja haluaa käyttää.
Kuinka pelin voi suunnitella? Piirtääkö ja hahmottelee peli-idean paperille vai käyttääkö siihen suunniteltuja ohjelmia. On pelin tekijästä kiinni, mitä ohjelmia tai tapoja haluaa käyttää.
Pelimoottorit tarjoavat valtavat edut pelikehittäjille. Tärkein niiden tarjoama toiminto on tietokonepelissä käytettävien ydintoiminto kirjasto. Nämä kirjastot sisältävät reaaliaikaisen 2D- tai 3D-renderointimoottorin grafiikalle, fysiikkamoottorin törmäystunnistuksella, hahmoanimaatiojärjestelmän, kohtauskaaviot, äänen, tekoälyn, ketjutuksen, verkon, syötteen, lokalisoinnin tuen, virheenkorjaustyökalut, integroinnin eri kielten kanssa ja 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ä ja näin ne nopeuttavat huomattavasti pelien kehitystä. Pelimoottoreita kutsutaan ''pelien väliohjelmiksi'', koska ne tarjoavat joustavan ja uudelleenkäytettävän ohjelmistoalustan.
Pelimoottoreita ei välttämättä kuitenkaan käytetä 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 luetteloa Linux-pelimoottoreista.


==Ohjelmointikielen valinta==
==Ohjelmointikielen valinta==
Rivi 50: Rivi 44:
==Mikä on 2D-peli?==
==Mikä on 2D-peli?==
2D-peli on kuvattu kaksiulotteisena kuvana pikseleita kuvasta muuttamalla. Kaksiulotteiset pelit on kuvattu 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 [http://store.steampowered.com/app/224760/FEZ/ FEZ], jossa liikutaan kaksiulotteisilla tasoilla ja ympäristöä voi kääntää kolmiulotteisesti. Pelit koostuvat pääosin laatoista, joita voi olla erikokoisia ja muotoisia.
2D-peli on kuvattu kaksiulotteisena kuvana pikseleita kuvasta muuttamalla. Kaksiulotteiset pelit on kuvattu 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 [http://store.steampowered.com/app/224760/FEZ/ FEZ], jossa liikutaan kaksiulotteisilla tasoilla ja ympäristöä voi kääntää kolmiulotteisesti. Pelit koostuvat pääosin laatoista, joita voi olla erikokoisia ja muotoisia.
[[Kuva:Unknown-Horizons.png|250px|thumb|Right|Esimerkki isometrisestä pelistä - Unknown Horizons]]
[[Kuva:Mari0portal.png|300px|thumb|Left|Esimerkki kaksiulotteisesta pelistä nimeltä Mari0. Peli on toteutettu [[Lua]]-skripti kieltä osaavalla Löve 2D-pelimoottorilla.]]


===Kaksiulotteisia pelinkehitystyökaluja===
===Kaksiulotteisia pelinkehitystyökaluja===
* [[Solar2D]] on avoimen lähdekoodin [[Lua]]-pohjainen 2D-pelimoottori.
[[Kuva:Alchera.png|250px|thumb|Mokoi Gaming Alchera on graafinen 2D-pelikehitystyökalu.]]
* [[Corona]] on avoimen lähdekoodin [[Lua]]-pohjainen 2D-pelimoottori.
* [[Godot Engine]] on 2D- ja 3D-pelimoottori.
* [[Godot Engine]] on 2D- ja 3D-pelimoottori.
* [[Mokoi Gaming Alchera]] [http://sourceforge.net/projects/mokoi/] on graafinen kaksiulotteisten pelien kehitystyökalu, joka sisältää [[SDL|SDL:n]] päälle toteutetut grafiikka-, ääni ja verkkokirjastot.  
* [[Mokoi Gaming Alchera]] [http://sourceforge.net/projects/mokoi/] on graafinen kaksiulotteisten pelien kehitystyökalu, joka sisältää [[SDL|SDL:n]] päälle toteutetut grafiikka-, ääni ja verkkokirjastot.  
Rivi 65: Rivi 58:
* [[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 [http://www.youtube.com/watch?v=rXwtO4uSosc]. Lövella ohjelmoituja pelejä ovat mm. [[Mari0]] ja [http://store.steampowered.com/app/323850 Move or Die].
* [[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 [http://www.youtube.com/watch?v=rXwtO4uSosc]. Lövella ohjelmoituja pelejä ovat mm. [[Mari0]] ja [http://store.steampowered.com/app/323850 Move or Die].
* [[Fife]] on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan Python-kielen avulla. Fife:llä ohjelmoituja pelejä ovat mm. [[Unknown Horizons]].
* [[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ä [https://flarerpg.org/index.php/mods/flare-empyrean/ The Empyrean Campaign].
* [[Flare]] on isometrinen roolipelimoottori, josta ainakin on julkaistu peli nimeltä The Empyrean Campaign.


===Karttamuokkaimia===
===Karttamuokkaimia===
Rivi 83: Rivi 76:


====Mallinnus====
====Mallinnus====
* [[MakeHuman]] on erittäin helppokäyttöinen 3D-hahmomallinnusohjelma.
* [[Neobarok]] on 3D-mallinnus- ja veistosovellus.
* [[Blender]] on monipuolinen 3D-mallinnusohjelma, josta löytyy myös animointimahdollisuus.
* [[Blender]] on monipuolinen 3D-mallinnusohjelma, josta löytyy myös animointimahdollisuus.
* [[Bforartists]] on [[Blender]]istä 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.
* [[ngPlant]] on 3D-mallinnusohjelma, jolla voi mallintaa esimerkiksi kasveja ja puita.
* [[Arbaro]] on Javalla ohjelmoitu avoimen lähdekoodin kasvien ja puiden 3D-mallinnusohjelmisto.
* [[Arbaro]] on Javalla ohjelmoitu avoimen lähdekoodin kasvien ja puiden 3D-mallinnusohjelmisto.
 
* [[Dust3D]] on eläinhahmojen 3D-mallinnusohjelma.
Lisää mallinnusohjelmia löydät CAD-ohjelmia esittelevästä [[CAD-ohjelmat|artikkelista]] ja [[:Luokka:3D-mallinnusohjelmat|3D-mallinnusohjelmat luokasta]].
Lisää mallinnusohjelmia löydät CAD-ohjelmia esittelevästä [[CAD-ohjelmat|artikkelista]] ja [[:Luokka:3D-mallinnusohjelmat|3D-mallinnusohjelmat luokasta]].
====Maastogeneraattorit====
* [[TerraForge3D]] on avoimen lähdekoodin proseduraalinen maastogeneraattori ja teksturointityökalu.


====Grafiikka ja tekstuurit====
====Grafiikka ja tekstuurit====
Rivi 111: Rivi 99:
* [[Godot Engine]] on 2D- ja 3D-pelimoottori.
* [[Godot Engine]] on 2D- ja 3D-pelimoottori.
* [[Banshee 3D]] on 3D-pelimoottori ja muokkain. Ohjelma on vielä kehityksen alla.
* [[Banshee 3D]] on 3D-pelimoottori ja muokkain. Ohjelma on vielä kehityksen alla.
* [https://rogueengine.io/ Rogue Engine] on ilmainen, suljetun lähdekoodin 3D-pelimoottori ja muokkain. Seon saatavissa [[AppImage]] -pakettina Linuxille.


====Ja kaupallisia ohjelmistoja====
====Ja kaupallisia ohjelmistoja====
Rivi 117: Rivi 104:
* [[CryEngine]] on saksalaisen Crytekin julkaisema suljetun lähdekoodin pelimoottori, joka on saatavana esimerkiksi [[Valve]]n [[Steam]] [http://store.steampowered.com/app/220980/] -jakelualustasta edulliseen kuukausihintaan.
* [[CryEngine]] on saksalaisen Crytekin julkaisema suljetun lähdekoodin pelimoottori, joka on saatavana esimerkiksi [[Valve]]n [[Steam]] [http://store.steampowered.com/app/220980/] -jakelualustasta edulliseen kuukausihintaan.
* [[Unity3D]] on Unity Technologin kehittämä osittain avoimen lähdekoodin ammattitason pelimoottori ja muokkain.  
* [[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.
* [[Unreal Engine]] on osittain avoimen lähdekoodin ammattitason pelimoottori ja muokkain


==Fysiikkamoottorit ja kirjastot==
==Fysiikkamoottorit ja kirjastot==
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetyt mallineet: