Muokataan sivua Portaali:Peliohjelmointi Linuxilla
Siirry navigaatioon
Siirry hakuun
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||Kaksiulotteinen peli - Mari0, joka on teteutettu 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||Isometrinen peli - Unknown Horizons]] | |||
Aluksi vaikeahko, mutta tämän sivun on tarkoitus helpottaa sitä. | |||
Mitä taitoja tarvitsen visuaalisen pelin luomiseksi? | Mitä taitoja tarvitsen visuaalisen pelin luomiseksi? | ||
Rivi 8: | Rivi 10: | ||
Erilaisia ohjelmia mitä voidaan tarvita pelinteossa. | Erilaisia ohjelmia mitä voidaan tarvita pelinteossa. | ||
* Suunnittelu | * Suunnittelu | ||
* Ohjelmointikielen opettelu | |||
* [[Portaali:Ohjelmistokehitys|Ohjelmointiympäristö]] ohjelmia mm: [[NetBeans]], [[Eclipse]], [[jMonkeyEngine]] | |||
* [[Kuvankäsittely]]ohjelmia, mm. [[GIMP]], [[AwesomeBump]] | |||
* [[Musiikinteko Linuxilla|Ääni]] | |||
* Ohjelmointikielen opettelu | * [[CAD-ohjelmat#Mallinnus|Mallinnus]]ohjelmia. mm. [[Blender]], [[MakeHuman]] | ||
* [[Portaali:Ohjelmistokehitys|Ohjelmointiympäristö]]: [[NetBeans | * [[Lokalisointi]] | ||
* [[Kuvankäsittely]]ohjelmia, mm. [[GIMP]], [[AwesomeBump | |||
* [[Musiikinteko Linuxilla|Ääni | |||
* [[CAD-ohjelmat#Mallinnus|Mallinnus]]ohjelmia. mm. [[Blender]], [[MakeHuman | |||
* [[Lokalisointi | |||
==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ää. | ||
==Ohjelmointikielen valinta== | ==Ohjelmointikielen valinta== | ||
===Python ja Lua=== | ===Python ja Lua=== | ||
[[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ä | [[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ä Word 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 kieltä käyttäen. | ||
===Java=== | ===Java=== | ||
[[Kuva:simple-Java-engine.png|300px|thumb||Kolmiulotteinen Javalla ja LWJGL2-kirjastolla toteutettu yksinkertainen | [[Kuva:simple-Java-engine.png|300px|thumb||Kolmiulotteinen Javalla ja LWJGL2-kirjastolla toteutettu yksinkertainen pelimoottori.]] | ||
[[Java]] on suosittu alustariippumaton ohjelmointikieli, joka käy myös pelinkehitykseen. Javaa voi opiskella helposti esimerkiksi Helsingin Yliopiston MOOC-verkkokurssilla [http://mooc.fi] tai Youtubesta löytyvillä opetusvideoilla. | [[Java]] on suosittu alustariippumaton ohjelmointikieli, joka käy myös pelinkehitykseen. Javaa voi opiskella helposti esimerkiksi Helsingin Yliopiston MOOC-verkkokurssilla [http://mooc.fi] tai Youtubesta löytyvillä opetusvideoilla. | ||
Rivi 46: | Rivi 35: | ||
===Mono=== | ===Mono=== | ||
[[Mono]] on avoimen lähdekoodin toteutus Microsoftin kehittämästä .NET-arkkitehtuurista. Sitä käytetään nykyään enemmän suljetun lähdekoodin peleissä. Esimerkiksi Unity Technologiesin kehittämä monialustainen pelimoottori [[Unity 3D]] käyttää Monoa monissa Linux | [[Mono]] on avoimen lähdekoodin toteutus Microsoftin kehittämästä .NET-arkkitehtuurista. Sitä käytetään nykyään enemmän suljetun lähdekoodin peleissä. Esimerkiksi Unity Technologiesin kehittämä monialustainen pelimoottori [[Unity 3D]] käyttää Monoa monissa Linux pelien toteutuksissaan. [[Richard Stallman]] ja [[Free Software Foundation]] ovat useita kertoja varoitelleet Monon käytön olevan vaarallista Microsoftin hakemien patenttien vuoksi. Free Software Foundation suosittelee ettei vapaata ohjelmistoa rakenneta Monon tai C#:n varaan. Huomattuja ongelmia Monolla ja Unity 3D:llä tehdyissä peleissä on myös miten muistia käsitellään (memory limit 3.5gb). Unity3D on vain 32-bittinen ja se voi vain käyttää 3.5gt muistia. Tähän on tulossa kuitenkin muutos, sillä Unity 3D:stä on kehitteillä Linuxille natiivi versio, josta on jo saatavana kehitysversio. | ||
==Mikä on 2D-peli?== | ==Mikä on 2D-peli?== | ||
2D-peli on kuvattu kaksiulotteisena kuvana | 2D-peli on kuvattu kaksiulotteisena kuvana. Kaksiulotteiset pelit on kuvattu monesti sivusta tai ylhäältä. Esimerkkejä kaksiulotteisista peleistä ovat [[Mari0]] ja [[The Mana World]]. Isometriset pelit kuuluvat myös kaksiulotteisiin peleihin. Ne on kuvattu yläviistosta. Isometrinen peli on esimerkiksi [[Unknown Horizons]]. | ||
===Kaksiulotteisia pelinkehitystyökaluja=== | |||
[[Kuva:Alchera.png|250px|thumb|Mokoi Gaming Alchera on graafinen 2D-pelikehitystyökalu.]] | |||
* [[Mokoi Gaming Alchera]] on graafinen kaksiulotteisten pelien kehitystyökalu, joka sisältää [[SDL|SDL:n]] päälle toteutetut grafiikka-, ääni ja verkkokirjastot. [http://sourceforge.net/projects/mokoi/] | |||
* [[Mokoi Gaming Alchera] | |||
* [[GameEditor]] on graafinen 2D-pelikehitystyökalu. | * [[GameEditor]] on graafinen 2D-pelikehitystyökalu. | ||
* [[o.h.r.RPG.c.e]] on NES/SNES-tyylinen 2D-pelikehitystyökalu ja roolipelimoottori. | * [[o.h.r.RPG.c.e]] on NES/SNES-tyylinen 2D-pelikehitystyökalu ja roolipelimoottori. | ||
* [[Tiled]] on 2D-karttamuokkain, jolla voi luoda ortogonaalisia, isometrisiä ja kuusikulmaisia laatoista koostuvia 2D-karttoja peleihin. | |||
===Kaksiulotteisia pelimoottoreita=== | ===Kaksiulotteisia pelimoottoreita=== | ||
'''Löve''' | |||
[[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''' | |||
* [[ | |||
* [[Fife]] on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan Python-kielen avulla. Fife:llä ohjelmoituja pelejä ovat mm. [[Unknown Horizons]]. | |||
==Mikä on 3D-peli?== | ==Mikä on 3D-peli?== | ||
[[Kuva:Tremulous - human base goons.jpg|250px|thumb| | [[Kuva:Tremulous - human base goons.jpg|250px|thumb|Kolmiulotteinen peli.]] | ||
3D-pelit kuvataan kolmiulotteisena. | 3D-pelit kuvataan kolmiulotteisena. | ||
Rivi 82: | Rivi 66: | ||
* [[Platinum Arts Sandbox Game Maker]] on avoimen lähdekoodin kaksi- ja kolmiulotteisten pelien suunnittelu- ja hiekkalaatikko-ohjelma. | * [[Platinum Arts Sandbox Game Maker]] on avoimen lähdekoodin kaksi- ja kolmiulotteisten pelien suunnittelu- ja hiekkalaatikko-ohjelma. | ||
==== | ====Kaupalliset ohjelmistot==== | ||
* [[ | * [[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 [[Valve]]n [[Steam]] [http://store.steampowered.com/app/220980/] -jakelualustasta edulliseen kuukausihintaan. | |||
* [[Unity3D]] on Unity Technologin kehittämä suljetun lähdekoodin ammattitason pelimoottori ja muokkain. | |||
* [[Unreal Engine]] on suljetun lähdekoodin pelimoottori. | |||
* [[ | |||
* [[ | |||
* [[ | |||
===Kolmiulotteisia pelimoottoreita=== | ===Kolmiulotteisia pelimoottoreita=== | ||
Rivi 109: | Rivi 79: | ||
* [[OGRE]] on joustava 3D-grafiikkamoottori ja muokkain, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla. | * [[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. | * [[Panda3D]] on 3D-grafiikkamoottori, jota ohjelmoidaan C++ ja Python-kielen avulla. | ||
* [[Godot Engine]] on 2D | * [[Godot Engine]] on 2D ja 3D pelimoottori. | ||
==Fysiikkamoottorit ja kirjastot== | ==Fysiikkamoottorit ja kirjastot== | ||
Rivi 167: | Rivi 129: | ||
Tätä sivua pyritään laajentamaan ajan kanssa. Tällä hetkellä työtä tekee lähinnä lahtis, joten apu on tarpeen. Sivusto saattaa näyttää aluksi listalta, mutta yritetään laajentaa tekstejä. Lopussa näkyvä Peliohjelmointiin liittyvät artikkelit on oivallinen listaus, jonka avulla pääset kätevästi tutustumaan wikin tarjoamaan tietoon. | Tätä sivua pyritään laajentamaan ajan kanssa. Tällä hetkellä työtä tekee lähinnä lahtis, joten apu on tarpeen. Sivusto saattaa näyttää aluksi listalta, mutta yritetään laajentaa tekstejä. Lopussa näkyvä Peliohjelmointiin liittyvät artikkelit on oivallinen listaus, jonka avulla pääset kätevästi tutustumaan wikin tarjoamaan tietoon. | ||
{{Pelinteko}} | {{Malline:Pelinteko}} | ||
[[Luokka: Pelikehitys]] | [[Luokka: Pelikehitys]] | ||
[[Luokka: Portaalit]] | [[Luokka: Portaalit]] |