Ero sivun ”Portaali:Peliohjelmointi Linuxilla” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (Hienoa työtä portaalin luojalta. Tein pientä kielenhuoltoa.)
Rivi 4: Rivi 4:
==Millainen on Linux peliohjelmoijan näkökulmasta?==
==Millainen on Linux peliohjelmoijan näkökulmasta?==
[[Kuva:Unknown-Horizons.png|250px|thumb||Isometrinen peli - Unknown Horizons]]
[[Kuva:Unknown-Horizons.png|250px|thumb||Isometrinen peli - Unknown Horizons]]
Aluksi vaikeahko, mutta tämä sivu on tarkoitus helpottaa sitä.
Aluksi vaikeahko, mutta tämän sivun on tarkoitus helpottaa sitä.


Mitä taitoja tarvitsen visuaalisen pelin luomiseksi?
Mitä taitoja tarvitsen visuaalisen pelin luomiseksi?
Rivi 16: Rivi 16:


==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 scriptauskieliä, joita voidaan käyttää peliohjelmoinnissa mm. lisäominaisuuksien tuottamiseen tai niillä voidaan tuottaa vaikkapa koko peli niin halutessaan. Scriptaus kielen syntaksi on ohjelmakohtainen. Ohjelman toiminnot ovat ennalta määritellyt. Python ja Lua ovat tulkattavia kieliä. Aiheeseen liittyvänä esimerkkinä mm. Word of Warcraft käyttää lisäosissaan Luaa scriptaskielenä. Luaa voi esimerkiksi käyttää peleissä, joissa tarvitaan automatisointia.
[[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.


===Java===
===Java===
Java on suosittu alustariippumaton ohjelmointikieli, joka käy myös pelinkehitykseen. Javaa voi opiskella helposti esimerkiksi Helsingin Yliopiston Mooc-verkkokurssilla.


===C++===
===C++===
Rivi 28: Rivi 29:
===Pascal===
===Pascal===


Tarjolla perinteinen tekstieditori ja komentorivipohjainen [[FreePascal]] ja graafiseen käyttöympäristöön pohjautuva [[Lazarus]]. 3D-pelimoottoreiksi löytyy mm [[nxPascal]] ja [[Castle Game Engine]].
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]].


==Mikä on 2D-peli?==
==Mikä on 2D-peli?==
2D-peli on kuvattu kaksiulotteisena kuvana. Kaksiulotteiset pelit ovat kuvattu sivusta tai ylhäältä. Kaksiulotteisia pelejä ovat mm. [[Mari0]] ja [[The Mana World]]. Mikä on isometrinen peli? Isometriset pelit kuvattu yläviistosta. Isometriset pelit kuuluvat myös kaksiulotteisiin peleihin. Isomerisiä pelejä ovat mm. [[Unknown Horizons]].
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===
===Kaksiulotteisia pelinkehitystyökaluja===
Rivi 37: Rivi 38:
'''Mokoi Gaming Alchera'''
'''Mokoi Gaming Alchera'''


[[Mokoi Gaming Alchera]] on graafinen kaksiulotteisten pelienkehitystyökalu, joka sisältää [[SDL]]:n päälle toteutetut grafiikka-, ääni ja verkkokirjastot. [http://sourceforge.net/projects/mokoi/]
[[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/]


'''GameEditor'''
'''GameEditor'''
Rivi 45: Rivi 46:
'''o.h.r.RPG.c.e'''
'''o.h.r.RPG.c.e'''


[[o.h.r.RPG.c.e]] on NES/SNES tyylinen 2D-pelikehitystyökalu ja roolipelimoottori. [http://rpg.hamsterrepublic.com/ohrrpgce/Main_Page]
[[o.h.r.RPG.c.e]] on NES/SNES-tyylinen 2D-pelikehitystyökalu ja roolipelimoottori. [http://rpg.hamsterrepublic.com/ohrrpgce/Main_Page]


===Kaksiulotteisia pelimoottoreita===
===Kaksiulotteisia pelimoottoreita===
Rivi 51: Rivi 52:
'''Löve'''
'''Löve'''


[[Löve]] on 2D-pelimoottori, jota ohjelmoidaan tulkattavan [[Lua]]-kielen avulla. Peli voidaan ohjelmoida pelkkää tekstimuokkainta käyttäen. Ohjelma koodi suoritetaan komentoriviä käyttäen. Ohjelman koodi on helppolukuista ja sen oppii nopeasti. Löven pelimoottorilla voi myös tehdä 3D-pelejä, tekniikkaa kutsutaan raycastingiksi [http://www.youtube.com/watch?v=rXwtO4uSosc]. Löve:lla ohjelmoituja pelejä on muunmuassa [[Mari0]].
[[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öve:lla ohjelmoitu peli on muunmuassa [[Mari0]].


'''FIFE'''
'''FIFE'''


* [[Fife]] on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan ? kielen avulla. [http://www.fifengine.de/] Fife:llä ohjelmoituja pelejä ovat mm. [[Unknown Horizons]].
* [[Fife]] on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan ?-kielen avulla. [http://www.fifengine.de/] Fife:llä ohjelmoituja pelejä ovat mm. [[Unknown Horizons]].


==Mikä on 3D-peli?==
==Mikä on 3D-peli?==
Rivi 63: Rivi 64:
===Kolmiulotteisia pelinkehitystyökaluja===
===Kolmiulotteisia pelinkehitystyökaluja===
* [[Syntensity]] on avoimen lähdekoodin 3D-peli ja pelinkehitystyökalu.  
* [[Syntensity]] on avoimen lähdekoodin 3D-peli ja pelinkehitystyökalu.  
* [[Platinum Arts Sandbox Game Maker]] on avoimen lähdekoodin kaksi- ja kolmiulotteisien pelien suunnittelu ja hiekkalaatikko-ohjelma.
* [[Platinum Arts Sandbox Game Maker]] on avoimen lähdekoodin kaksi- ja kolmiulotteisten pelien suunnittelu- ja hiekkalaatikko-ohjelma.


====Kaupalliset ohjelmistot====
====Kaupalliset ohjelmistot====
* [[Axis Game Factory]] [http://www.axisgamefactory.com] on ammattitason luomis ja karttamuokkain Unity 3D:lle.
* [[Axis Game Factory]] [http://www.axisgamefactory.com] on ammattitason luomis- ja karttamuokkain Unity 3D:lle.
* [http://unity3d.com/unity/multiplatform/desktop] Unity3D
* [http://unity3d.com/unity/multiplatform/desktop Unity3D]


===Kolmiulotteisia pelimoottoreita===
===Kolmiulotteisia pelimoottoreita===
* [[OGRE]] on joustava 3D-grafiikkamoottori ja kehys, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyjä 3D-grafiikkaa OpenGL avulla.
* [[OGRE]] on joustava 3D-grafiikkamoottori ja kehys, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla.
* [[Crystal Space]]
* [[Crystal Space]]
* [[Irrlicht Engine]]  on joustava 3D-grafiikkamoottori ja kirjasto, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyjä 3D-grafiikkaa OpenGL avulla.
* [[Irrlicht Engine]]  on joustava 3D-grafiikkamoottori ja kirjasto, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla.
* [[Lightfeather 3D]]
* [[Lightfeather 3D]]
* [[Panda3D]] [http://www.panda3d.org] on 3D-grafiikkamoottori, jota ohjelmoidaan [[Python]]-kielen avulla.
* [[Panda3D]] [http://www.panda3d.org] on 3D-grafiikkamoottori, jota ohjelmoidaan [[Python]]-kielen avulla.
Rivi 85: Rivi 86:


==Moduulit==
==Moduulit==
* [[Pygame]] on avoimen lähdekoodin [[Python]]-ohjelmointikieleen tehty peliohjelmointi moduuli. Se sisältää [[SDL]]:n päälle toteutetut grafiikka- ja äänikirjastot.
* [[Pygame]] on avoimen lähdekoodin [[Python]]-ohjelmointikieleen tehty peliohjelmointimoduuli. Se sisältää [[SDL|SDL:n]] päälle toteutetut grafiikka- ja äänikirjastot.


==Suomenkielistä kirjallisuutta==
==Suomenkielistä kirjallisuutta==
* Ville Vuorela - Pelin tekijän käsikirja BTJ-Kustannus 2007 (ISBN 978-951-692-661-5)
* Ville Vuorela - Pelin tekijän käsikirja, ''BTJ-Kustannus 2007 (ISBN 978-951-692-661-5)''
* Tony Manninen - Pelisuunnittelijan käsikirja, ideasta eteenpäin Kustannus Oy Rajalla (ISBN 978-952-5271-68-3)
* Tony Manninen - Pelisuunnittelijan käsikirja, ideasta eteenpäin, ''Kustannus Oy Rajalla (ISBN 978-952-5271-68-3)''


== Katso myös ==
== Katso myös ==

Versio 2. helmikuuta 2014 kello 21.28

Kaksiulotteinen peli - Mari0

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?

Isometrinen peli - Unknown Horizons

Aluksi vaikeahko, mutta tämän sivun on tarkoitus helpottaa sitä.

Mitä taitoja tarvitsen visuaalisen pelin luomiseksi?

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

Ohjelmointikielen valinta

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ä Word of Warcraft käyttää lisäosissaan Luaa skriptauskielenä. Luaa voi käyttää esimerkiksi peleissä, joissa tarvitaan automatisointia.

Java

Java on suosittu alustariippumaton ohjelmointikieli, joka käy myös pelinkehitykseen. Javaa voi opiskella helposti esimerkiksi Helsingin Yliopiston Mooc-verkkokurssilla.

C++

Pascal

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.

Mikä on 2D-peli?

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

Mokoi Gaming Alchera on graafinen 2D-pelikehitystyökalu.

Mokoi Gaming Alchera

Mokoi Gaming Alchera on graafinen kaksiulotteisten pelien kehitystyökalu, joka sisältää SDL:n päälle toteutetut grafiikka-, ääni ja verkkokirjastot. [1]

GameEditor

GameEditor on graafinen 2D-pelikehitystyökalu. [2]

o.h.r.RPG.c.e

o.h.r.RPG.c.e on NES/SNES-tyylinen 2D-pelikehitystyökalu ja roolipelimoottori. [3]

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 [4]. Löve:lla ohjelmoitu peli on muunmuassa Mari0.

FIFE

  • Fife on isometrinen 2D-pelimoottori, jota ohjelmoidaan tulkattavan ?-kielen avulla. [5] Fife:llä ohjelmoituja pelejä ovat mm. Unknown Horizons.

Mikä on 3D-peli?

Kolmiulotteinen peli.

3D-pelit kuvataan kolmiulotteisena.

Kolmiulotteisia pelinkehitystyökaluja

Kaupalliset ohjelmistot

Kolmiulotteisia pelimoottoreita

  • OGRE on joustava 3D-grafiikkamoottori ja kehys, joka antaa kehittäjien tuottaa sovelluksia hyödyntäen laitteistokiihdytettyä 3D-grafiikkaa OpenGL:n avulla.
  • 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.
  • Lightfeather 3D
  • Panda3D [7] on 3D-grafiikkamoottori, jota ohjelmoidaan Python-kielen avulla.

Fysiikkamoottorit ja kirjastot

Moduulit

  • Pygame on avoimen lähdekoodin Python-ohjelmointikieleen tehty peliohjelmointimoduuli. Se sisältää SDL:n päälle toteutetut grafiikka- ja äänikirjastot.

Suomenkielistä kirjallisuutta

  • Ville Vuorela - Pelin tekijän käsikirja, BTJ-Kustannus 2007 (ISBN 978-951-692-661-5)
  • Tony Manninen - Pelisuunnittelijan käsikirja, ideasta eteenpäin, Kustannus Oy Rajalla (ISBN 978-952-5271-68-3)

Katso myös

Aiheesta muualla

Sivu on työn alla

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

v  k  m
Peliohjelmointiin liittyvät artikkelit
 Yleiset  Peliohjelmointi Linuxilla | Musiikki ja äänet | Kuvankäsittely | Mallinnus | Lokalisointi
 2D 
 Pelimoottorit  Solar2D | Defold | Fife | LÖVE
  -Karttamuokkaimet  Tiled | OGMO Editor
 3D 
 Avoimet  Banshee 3D | Castle Game Engine | DarkPlaces | Defold | Godot Engine | Grit engine | Irrlicht Engine | id Tech (Quake) | ioquake3 | jMonkeyEngine | Lightfeather 3D | The Mirror | OGRE | O3DE | Panda3D | Range Engine | Serious | UPBGE | QFusion
 Suljetut  Axis Game Factory | CryEngine | Source | Unity3D | Unreal Engine
 Keskeytyneet  Crystal Space
  kuvankäsittely tekstuurikartoitus mallinnus 
 Kuvankäsittely  Gimp
  -Pikseligrafiikka  Aseprite | Pixelator
 Mallinnus  Blender | UPBGE | Bforartists | MakeHuman | Neobarok | ngPlant | ArbaroDust3D
  -Tekstuurikartoitus  AwesomeBump | Material Maker | Ptex
  -Tekstuurien luonti  ArmorLab
  -Pintakuviomaalaus  ArmorPaint
 Maastogeneraattorit  TerraForge3D
 Ohjelmointikielet 
  -Käännettävät  C | C++
  -Tulkattavat  Java | Python | Lua
  Ohjelmointimoduulit  pygame
  -Kirjastot  Assimp | OpenGL | Vulkan | SDL