Ero sivun ”Portaali:Peliohjelmointi Linuxilla” versioiden välillä
Siirry navigaatioon
Siirry hakuun
| (8 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
| Rivi 1: | Rivi 1: | ||
Tämä on päivitetty katsaus peliohjelmointiin Linux-ympäristössä, keskittyen yleispäteviin suosituksiin ja nykyaikaisiin työkaluihin, jotka tekevät projektin aloittamisesta sujuvampaa. | Tämä on päivitetty katsaus peliohjelmointiin Linux-ympäristössä, keskittyen yleispäteviin suosituksiin ja nykyaikaisiin työkaluihin, jotka tekevät projektin aloittamisesta sujuvampaa. ''[[Pelisuunnittelu]] on siirretty omaan artikkeliin.'' | ||
== Yleinen kehitysympäristö ja yhteensopivuus == | == Yleinen kehitysympäristö ja yhteensopivuus == | ||
| Rivi 20: | Rivi 20: | ||
=== Alustojen välinen kehitys (Cross-Platform) === | === Alustojen välinen kehitys (Cross-Platform) === | ||
Nykyään kehitys keskittyy usein monialustaisuuteen. Steam Playn ja | Nykyään kehitys keskittyy usein monialustaisuuteen. [[Steam]] Playn ja [[Proton]]in ([[Wine]]-pohjainen yhteensopivuuskerros) ansiosta Windowsille (esim. DirectX-rajapinnoille) koodatut pelit toimivat usein erinomaisesti suoraan Linuxilla. Tämä helpottaa kehittäjän työtä, sillä yksi koodikanta voi kattaa molemmat käyttöjärjestelmät. | ||
=== Jakelu === | === Jakelu === | ||
| Rivi 31: | Rivi 31: | ||
=== .NET (Core) korvaa Monon === | === .NET (Core) korvaa Monon === | ||
* [[Microsoft]]in .NET-kehitysympäristö on nyt avoimen lähdekoodin alustariippumaton toteutus. Tämä on vähentänyt [[Mono]]on aiemmin liittyneitä patenttiriski- ja luotettavuushuolia, tehden | * [[Microsoft]]in .NET-kehitysympäristö on nyt avoimen lähdekoodin alustariippumaton toteutus. Tämä on vähentänyt [[Mono]]on aiemmin liittyneitä patenttiriski- ja luotettavuushuolia, tehden C#:stä ([[Unity3d|Unity]]n pääkielenä) turvallisen valinnan Linux-kehityksessä. | ||
=== C++-kirjastot === | === C++-kirjastot === | ||
| Rivi 38: | Rivi 38: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|+ | |+ | ||
|- | |- | ||
! Kieli !! Pääkäyttö !! Hyödyt Linuxissa !! Huomioitavaa | ! Kieli !! Pääkäyttö !! Hyödyt Linuxissa !! Huomioitavaa | ||
|- | |- | ||
| C++ || Korkean suorituskyvyn järjestelmätason koodi, omat moottorit. || Ydinympäristön kieli, nopea pääsy Vulkan/SDL-kirjastoihin. || Monimutkainen, vaatii manuaalisen muistinhallinnan. | | [[C++]] || Korkean suorituskyvyn järjestelmätason koodi, omat moottorit. || Ydinympäristön kieli, nopea pääsy Vulkan/SDL-kirjastoihin. || Monimutkainen, vaatii manuaalisen muistinhallinnan. | ||
|- | |- | ||
| Rust || Turvallinen ja nopea järjestelmätason koodi. || Erinomainen suorituskyky ja sisäänrakennettu muistiturvallisuus (ei roskienkeräystä). || Suhteellisen uusi, mutta kasvava ekosysteemi (esim. Bevy-moottori). | | [[Rust]] || Turvallinen ja nopea järjestelmätason koodi. || Erinomainen suorituskyky ja sisäänrakennettu muistiturvallisuus (ei roskienkeräystä). || Suhteellisen uusi, mutta kasvava ekosysteemi (esim. Bevy-moottori). | ||
|- | |- | ||
| C# || Unity-kehitys (moottorin sisällä). || Käytetään laajasti Unityssä. .NET-ympäristö on nyt avoin lähdekoodi ja luotettava Linuxilla. || Vaatii usein virtuaalikoneen (JIT-kääntäjä). | | [[C#]] || Unity-kehitys (moottorin sisällä). || Käytetään laajasti Unityssä. .NET-ympäristö on nyt avoin lähdekoodi ja luotettava Linuxilla. || Vaatii usein virtuaalikoneen (JIT-kääntäjä). | ||
|- | |- | ||
| Python || Skriptaus, prototyypit, 2D-pelit (pygame). || Helppo oppia, erinomainen prototyyppien luomiseen ja yksinkertaisiin peleihin. || Hitaampi suorituskyky kuin käännetyissä kielissä. | | [[Python]] || Skriptaus, prototyypit, 2D-pelit (pygame). || Helppo oppia, erinomainen prototyyppien luomiseen ja yksinkertaisiin peleihin. || Hitaampi suorituskyky kuin käännetyissä kielissä. | ||
|- | |- | ||
| Lua || Skriptaus, kevyt 2D-kehitys ([[Löve]]). || Nopea tulkattava kieli; ihanteellinen pelien lisäosille ja automaatioon. || Käyttö pääosin moottoreiden sisällä. | | [[Lua]] || Skriptaus, kevyt 2D-kehitys ([[Löve]]). || Nopea tulkattava kieli; ihanteellinen pelien lisäosille ja automaatioon. || Käyttö pääosin moottoreiden sisällä. | ||
|} | |} | ||
| Rivi 56: | Rivi 56: | ||
Valmis pelimoottori on yleensä paras tapa aloittaa. Ne hoitavat renderöinnin, fysiikan ja syötteiden käsittelyn puolestasi. | Valmis pelimoottori on yleensä paras tapa aloittaa. Ne hoitavat renderöinnin, fysiikan ja syötteiden käsittelyn puolestasi. | ||
=== Avoimen lähdekoodin moottorit (Suositus Linuxiin) === | === Avoimen lähdekoodin moottorit (Suositus Linuxiin) === | ||
'''1. Godot Engine''' | '''1. [[Godot Engine]]''' | ||
* Käyttö: Monipuolinen 2D ja 3D. | * Käyttö: Monipuolinen 2D ja 3D. | ||
* Miksi Linuxissa?: Natiivi Linux-editori, kevyt, nopea kehityssykli, ja sen sisäänrakennettu GDScript-kieli on helppo oppia. Godot tukee Vulkan-renderöintiä. | * Miksi Linuxissa?: Natiivi Linux-editori, kevyt, nopea kehityssykli, ja sen sisäänrakennettu GDScript-kieli on helppo oppia. Godot tukee Vulkan-renderöintiä. | ||
'''2. SDL / SFML''' | '''2. [[SDL]] / [[SFML]]''' | ||
* Käyttö: Matalan tason 2D-kehityskirjastot (eivät moottoreita). | * Käyttö: Matalan tason 2D-kehityskirjastot (eivät moottoreita). | ||
* Miksi Linuxissa?: Ovat C/C++-pohjaisia ja toimivat perustyökaluina ikkunointiin ja syötteisiin, kun halutaan rakentaa oma kustomoitu kehys. | * Miksi Linuxissa?: Ovat C/C++-pohjaisia ja toimivat perustyökaluina ikkunointiin ja syötteisiin, kun halutaan rakentaa oma kustomoitu kehys. | ||
'''3. Löve 2D''' | '''3. [[Löve]] 2D''' | ||
* Käyttö: Kevyet 2D-pelit. | * Käyttö: Kevyet 2D-pelit. | ||
* Miksi Linuxissa?: Käyttää Lua-skriptikieltä, mikä mahdollistaa erittäin nopean prototyypin ja pelin luomisen ilman raskasta ympäristöä. | * Miksi Linuxissa?: Käyttää Lua-skriptikieltä, mikä mahdollistaa erittäin nopean prototyypin ja pelin luomisen ilman raskasta ympäristöä. | ||
=== Kaupalliset ja ammattitasoiset | === Kaupalliset ja ammattitasoiset moottorit === | ||
* [[Unity3D|Unity]]: Vahva kaupallinen tuki. Linux-editori on saatavilla ja sitä käytetään laajasti C#-pohjaisiin projekteihin. | * [[Unity3D|Unity]]: Vahva kaupallinen tuki. Linux-editori on saatavilla ja sitä käytetään laajasti C#-pohjaisiin projekteihin. | ||
* [[Unreal Engine]]: AAA-tason 3D-kehitykseen. Korkea suorituskyky ja graafinen laatu. Lähdekoodi on saatavilla, ja natiivi kääntäminen Linuxille on tuettua. | * [[Unreal Engine]]: AAA-tason 3D-kehitykseen. Korkea suorituskyky ja graafinen laatu. Lähdekoodi on saatavilla, ja natiivi kääntäminen Linuxille on tuettua. | ||
| Rivi 89: | Rivi 89: | ||
== Katso myös == | == Katso myös == | ||
* [[ | * [[Pelisuunnittelu]] | ||
* [[2D-peliohjelmoinnin aloitusopas Linuxille]] | |||
* [[3D-peliohjelmoinnin aloitusopas Linuxille]] | |||
{{Pelinteko}} | {{Pelinteko}} | ||