Game development on Alpine Linux: Difference between revisions

From Alpine Linux
m (→‎Learning curve: emphasis)
(use tables for greater readability)
 
(9 intermediate revisions by 3 users not shown)
Line 3: Line 3:
== Learning curve ==
== Learning curve ==


For programmers, it's strongly recommended that you use a game engine if you are starting video game programming which will handle most of the low level setup.  If you have advanced knowledge in programming, you should see the multimedia section and 3D libraries section.
For programmers, it's strongly recommended that you use a [[#Game engines|game engine]] if you are starting video game programming which will handle most of the low level setup.  If you have advanced knowledge in programming, you should see the [[#Multimedia libraries|multimedia section]] and [[#3D libraries|3D libraries]] section.


For artists, see Tools used to work with or create art assets section.
For artists, see [[#Tools used to work with or create art assets|Tools used to work with or create art assets]] section.


== Software libraries used in game development ==
== Software libraries used in game development ==
Line 11: Line 11:
=== Game engines ===
=== Game engines ===


* [https://en.wikipedia.org/wiki/PLIB PLIB] - plib -- game engine
{| class="wikitable"
* [https://en.wikipedia.org/wiki/Blender_(software) Blender] - blender -- a 3D modeler and animator with a [https://en.wikipedia.org/wiki/Blender_Game_Engine game engine]
|-
* [https://www.minetest.net/ Minetest] - minetest -- both a game engine and a game
! Name !! Package !! Description
|-
| [https://plib.sourceforge.net/ PLIB] || {{pkg|plib}} || game engine
|-
| [https://www.blender.org/ Blender] || {{pkg|blender}} || a 3D modeler and animator with a [https://upbge.org/ game engine]
|-
| [https://www.minetest.net/ Minetest] || {{pkg|minetest}} || both a game engine and a game
|}


=== Multimedia libraries ===
=== Multimedia libraries ===


* [https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer Simple DirectMedia Layer] - sdl
{| class="wikitable"
* [https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer Simple DirectMedia Layer 2.0] - sdl2
|-
* [https://en.wikipedia.org/wiki/Simple_and_Fast_Multimedia_Library SFML (Simple and Fast Multimedia Library)] - sfml
! Name !! Package(s) !! Description
* [http://kcat.strangesoft.net/openal.html OpenAL Soft] - openal-soft -- can be used for 3D sound for 3D games
|-
* [http://www.glfw.org/ GLFW] - glfw -- To create OpenGL context quickly with input support
| [https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer Simple DirectMedia Layer 2.0] || {{pkg|sdl2-dev}} || has input, audio, video, opengl, touch screen, game controller support
* [http://pyopengl.sourceforge.net/ PyOpenGL] - py-opengl -- OpenGL on Python
|-
| [https://en.wikipedia.org/wiki/Simple_and_Fast_Multimedia_Library SFML (Simple and Fast Multimedia Library)] || {{pkg|sfml-dev}} {{pkg|csfml-dev}} || has input, audio, video, networking, opengl support
|-
| [http://kcat.strangesoft.net/openal.html OpenAL Soft]{{dead link}} || {{pkg|openal-soft-dev}} || can be used for 3D sound for 3D games
|-
| [http://www.glfw.org/ GLFW] || {{pkg|glfw-dev}} || To create OpenGL context quickly with input support
|-
| [https://en.wikipedia.org/wiki/FreeGLUT FreeGLUT] || {{pkg|freeglut-dev}} || To create OpenGL context quickly with input support
|-
| [http://pyopengl.sourceforge.net/ PyOpenGL] || {{pkg|py3-opengl}} || OpenGL on Python
|-
| [https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer Simple DirectMedia Layer] || <code>sdl-dev</code> (dropped support for sdl 1.x . Use 2.0 instead) || has input, audio, video, joystick support
|}


=== 3D libraries ===
=== 3D libraries ===


* [https://glm.g-truc.net/0.9.8/index.html OpenGL Mathematics] - glm - for 3D calculations to transform, rotate, scale stuff
{| class="wikitable"
|-
! Name !! Package(s) !! Description
|-
| [https://glm.g-truc.net/0.9.8/index.html OpenGL Mathematics] || {{pkg|glm-dev}} || for 3D calculations to transform, rotate, scale stuff
|}


==== Rendering and loading assets ====
==== Rendering and loading assets ====


 
{| class="wikitable"
* [https://en.wikipedia.org/wiki/OpenSceneGraph OpenSceneGraph] - openscenegraph -- can be used to load 3D models and handle complexities of rendering a 3d scene
|-
! Name !! Package(s) !! Description
|-
| [https://en.wikipedia.org/wiki/OpenSceneGraph OpenSceneGraph] || {{pkg|openscenegraph-dev}} || can be used to load 3D models and handle complexities of rendering a 3d scene
|}


==== Fonts ====
==== Fonts ====


* [https://sourceforge.net/projects/ftgl/ FTGL] - ftgl -- to display text in OpenGL
{| class="wikitable"
|-
! Name !! Package(s) !! Description
|-
| [https://sourceforge.net/projects/ftgl/ FTGL] || {{pkg|ftgl-dev}} || to display text in OpenGL
|}


== Tools used to work with or create art assets ==
== Tools used to work with or create art assets ==


* [https://en.wikipedia.org/wiki/GIMP GIMP] - gimp -- could be used to create 2D sprites
{| class="wikitable"
* [https://en.wikipedia.org/wiki/Audacity_(audio_editor) Audacity] - audacity -- could be used to slice sound assets
|-
* [https://en.wikipedia.org/wiki/Inkscape Inkscape] - inkscape -- could be used to make vector 2D art assets
! Name !! Package(s) !! Description
* [https://en.wikipedia.org/wiki/Blender_(software) Blender] - blender -- can be used to create 3D assets or models
|-
| [https://en.wikipedia.org/wiki/GIMP GIMP] || {{pkg|gimp}} || edit 2D assets
|-
| [https://en.wikipedia.org/wiki/Audacity_(audio_editor) Audacity] || {{pkg|audacity}} || edit sound assets
|-
| [https://en.wikipedia.org/wiki/Inkscape Inkscape] || {{pkg|inkscape}} || edit vector 2D assets
|-
| [https://en.wikipedia.org/wiki/Blender_(software) Blender] || {{pkg|blender}} || edit 3D assets or models
|}
 
[[Category:Programming]]

Latest revision as of 09:00, 26 September 2023

Game development is possible on Alpine Linux.

Learning curve

For programmers, it's strongly recommended that you use a game engine if you are starting video game programming which will handle most of the low level setup. If you have advanced knowledge in programming, you should see the multimedia section and 3D libraries section.

For artists, see Tools used to work with or create art assets section.

Software libraries used in game development

Game engines

Name Package Description
PLIB plib game engine
Blender blender a 3D modeler and animator with a game engine
Minetest minetest both a game engine and a game

Multimedia libraries

Name Package(s) Description
Simple DirectMedia Layer 2.0 sdl2-dev has input, audio, video, opengl, touch screen, game controller support
SFML (Simple and Fast Multimedia Library) sfml-dev csfml-dev has input, audio, video, networking, opengl support
OpenAL Soft[Dead Link] openal-soft-dev can be used for 3D sound for 3D games
GLFW glfw-dev To create OpenGL context quickly with input support
FreeGLUT freeglut-dev To create OpenGL context quickly with input support
PyOpenGL py3-opengl OpenGL on Python
Simple DirectMedia Layer sdl-dev (dropped support for sdl 1.x . Use 2.0 instead) has input, audio, video, joystick support

3D libraries

Name Package(s) Description
OpenGL Mathematics glm-dev for 3D calculations to transform, rotate, scale stuff

Rendering and loading assets

Name Package(s) Description
OpenSceneGraph openscenegraph-dev can be used to load 3D models and handle complexities of rendering a 3d scene

Fonts

Name Package(s) Description
FTGL ftgl-dev to display text in OpenGL

Tools used to work with or create art assets

Name Package(s) Description
GIMP gimp edit 2D assets
Audacity audacity edit sound assets
Inkscape inkscape edit vector 2D assets
Blender blender edit 3D assets or models