hello friends! new(ish)!

/gedg/ - Game and Engine Dev General: Difference between revisions

From InstallGentoo Wiki v2
Jump to navigation Jump to search
>FroggyGreen
m (alphabetical order)
>FroggyGreen
(Adding resources)
Line 30: Line 30:
* [https://www.ogre3d.org/ Ogre]: 3D game engine made in C++.
* [https://www.ogre3d.org/ Ogre]: 3D game engine made in C++.
* [https://www.opengl.org/ OpenGL]: Ubiquitous cross-platform rendering API.
* [https://www.opengl.org/ OpenGL]: Ubiquitous cross-platform rendering API.
* [https://github.com/g-truc/glm OpenGL Mathematics (GLM)]: glm is a ubiquitous math library made for use with OpenGL. It is also commonly used with other graphics API such as Vulkan.
* [https://developer.nvidia.com/physx-sdk PhysX]:  A powerful C++ physics library.
* [https://developer.nvidia.com/physx-sdk PhysX]:  A powerful C++ physics library.
* [https://www.pygame.org/ pygame]: Python library for game dev.
* [https://www.pygame.org/ pygame]: Python library for game dev.
Line 50: Line 51:
* [https://www.unrealengine.com/ Unreal]: AAA game engine, uses C++.
* [https://www.unrealengine.com/ Unreal]: AAA game engine, uses C++.


== Open Source Games ==
== Open Source Games and Projects ==


Games where you can learn from the source code.
Opportunities to learn from the source code.


* [https://play0ad.com/ 0 A.D.]: Historical RTS that started out as a mod for Age of Empires II: The Age of Kings.
* [https://krizby.itch.io/calamity-beatdown Amphibia: Calamity Beatdown]: Fan-made side-scroller for the Disney animated series Amphibia. Source code [https://github.com/NoozSBC/Amphibia-Calamity-Beatdown here].
* [https://sites.google.com/site/broguegame/ Brogue]: Roguelike game.
* [https://sites.google.com/site/broguegame/ Brogue]: Roguelike game.
* [https://cataclysmdda.org/ Cataclysm: Dark Days Ahead]: Ambitious turn-based post-apocalyptic survival game.
* [https://cataclysmdda.org/ Cataclysm: Dark Days Ahead]: Ambitious turn-based post-apocalyptic survival game.
* [https://mindustrygame.github.io/ Mindustry]: TD/RTS factory management.  
* [https://mindustrygame.github.io/ Mindustry]: TD/RTS factory management.  
* [https://opengoal.dev/ OpenGOAL]:  Native port of Jak and Daxter to PC which involved decompiling the original GOAL code and developing a GOAL compiler.
* [https://openrct2.io/ OpenRCT2]: Open source recreation of RollerCoaster Tycoon .
* [https://openrct2.io/ OpenRCT2]: Open source recreation of RollerCoaster Tycoon .
* [https://github.com/id-Software/Quake-III-Arena Quake III Arena]: FPS famous for popularizing an [https://netlib.org/fdlibm/e_sqrt.c old bit hack trick].
* [https://github.com/id-Software/Quake-III-Arena Quake III Arena]: FPS famous for popularizing an [https://netlib.org/fdlibm/e_sqrt.c old bit hack trick].
Line 69: Line 73:
==== Programming and Architecture ====
==== Programming and Architecture ====


* https://www.learn-c.org/: Collection of simple and interactive tutorials for the C programming language.
* [https://rentry.org/gedg-cbuild C Builds and Libraries for the Inexperienced]: Tutorial made for /agdg/, /chad/, and /gedg/.
* [https://www.lua.org/pil/contents.html Programming in Lua]: Official online book to learn Lua. Lua is great for embedding into software.
* [https://youtu.be/icZj67PTFhc javidx9's A* Video]: Video about the A* path finding algorithm.
* [https://youtu.be/4l5HdmPoynw javidx9's Embedding Lua in C++ video]: Video about the Lua C API in a C++ environment. C users can also obviously learn from it. He has a follow-up video [https://youtu.be/E42Lyv2Ra1c here] where the topic is coroutines.  
* [https://www.lua.org/pil/contents.html Programming in Lua]: Official online book to learn Lua. Lua is great for embedding into software.
* [https://www.learn-c.org learn-c]: Collection of simple and interactive tutorials for the C programming language.
* [https://youtu.be/XtQMytORBmM The Unity Tutorial For Complete Beginners]: Tutorial to get your feet wet with Unity.
* [http://0x80.pl/ Wojciech Muła's website]:  SIMD techniques and tons of technical notes.


==== Math and Physics ====
==== Linear Algebra and Spacial Transformations ====


* [https://www.youtube.com/playlist?list=PL0-GT3co4r2y2YErbmuJw2L5tW4Ew2O5B 3Blue1Brown's linear algebra series]: Babby's first matrix, some nice visualizations of linear algebra concepts.  
* [https://www.youtube.com/playlist?list=PL0-GT3co4r2y2YErbmuJw2L5tW4Ew2O5B 3Blue1Brown's linear algebra series]: Babby's first matrix, some nice visualizations of linear algebra concepts.  
* [https://youtu.be/zjMuIxRvygQ 3Blue1Brown's quaternion visualization video]: Nice video for visualizing quaternions and 3D rotations.
* [https://youtu.be/zjMuIxRvygQ 3Blue1Brown's quaternion visualization video]: Nice video for visualizing quaternions and 3D rotations.
* [https://gamemath.com/ 3D Math Primer for Graphics and Game Development]: Free online book for game math.
* [https://www.a1k0n.net/2011/07/20/donut-math.html Andy Sloane's donut.c]: Spinning ASCII donut written in delicious byte sized code.
* [https://www.a1k0n.net/2011/07/20/donut-math.html Andy Sloane's donut.c]: Spinning ASCII donut written in delicious byte sized code.
* [https://jamie-wong.com/2016/08/05/webgl-fluid-simulation/ Jamie Wong's WebGL fluid simulation]: Fluid simulation explained nicely with good visuals.
* [https://youtu.be/4mXL751ko0w Quaternion explanation by Nathan Vegdahl and The Blender Foundation]: Segment in the Blender Open Movie Workshop series.
* [https://youtu.be/4mXL751ko0w Quaternion explanation by Nathan Vegdahl and The Blender Foundation]: Segment in the Blender Open Movie Workshop series.


==== Rendering APIs and the GPU ====
==== Rendering APIs and the GPU ====


* [https://youtube.com/playlist?list=PLn3eTxaOtL2NH5nbPHMK7gE07SqhcAjmk GetIntoGameDev's Vulkan playlist]: Video series in C++ that goes through and explains concepts.
* [https://developer.nvidia.com/gpugems/gpugems3/contributors GPU Gems]: Nvidia's free online book containing a large variety of topics such as N-body and fluid simulation, volumetric light scattering, and AES encryption.  
* [https://developer.nvidia.com/gpugems/gpugems3/contributors GPU Gems]: Nvidia's free online book containing a large variety of topics such as N-body and fluid simulation, volumetric light scattering, and AES encryption.  
* [https://www.reedbeta.com/blog/hash-functions-for-gpu-rendering/ Hash Functions for GPU Rendering]: Short article by Nathan Reed.
* [https://www.shadertoy.com/user/iq Inigo Quilez's Shadertoy page]: Includes raymarching, Mike Wazowski, and more.
* [https://learnopengl.com/ learnopengl]: Most popular site for getting started with OpenGL.
* [https://learnopengl.com/ learnopengl]: Most popular site for getting started with OpenGL.
* [http://www.lighthouse3d.com/tutorials/ lighthouse3d]: Some old but gold OpenGL.
* [http://www.lighthouse3d.com/tutorials/ lighthouse3d]: Some old but gold OpenGL.
Line 91: Line 101:
* [https://vulkan-tutorial.com/ vulkan-tutorial]: Vulkan tutorials in C++.
* [https://vulkan-tutorial.com/ vulkan-tutorial]: Vulkan tutorials in C++.


=== Not Gratis (technically, but we all know how to use search engines) ===
==== Noise ====
 
* [https://mrl.cs.nyu.edu/~perlin/paper445.pdf Improved Perlin Noise]:  2002 algorithm by Ken Perlin used for terrain generation. [https://mrl.cs.nyu.edu/~perlin/noise/ Here] is a Java implementation of the algorithm.
* [https://youtu.be/LWFzPP8ZbdU Noise-Based RNG]: 2017 GDC Math for Game Programmers talk where Squirrel Eiserloh discusses how RNGs can replace noise functions. An [http://eiserloh.net/noise/SquirrelNoise5.hpp update of the code] by Squirrel was later created.
 
==== Fluid Simulation ====
 
* [https://www.youtube.com/watch?v=iKAVRgIrUOU How to write an Eulerian fluid simulator with 200 lines of code]: Concise and effective fluid simulation video by Ten Minute Physics.
* [https://jamie-wong.com/2016/08/05/webgl-fluid-simulation/ Jamie Wong's WebGL fluid simulation]: Fluid simulation explained nicely with good visuals.
 
==== General Math and Physics ====
 
The things here either don't fit in the other sections or they so largely encapsulate more than one section that putting them there wouldn't do the material justice.
 
* [https://www.youtube.com/playlist?list=PLZHQObOWTQDNPOjrT6KVlfJuKtYTftqH6 3Blue1Brown's differential equation series]: Rudimentary look at vector fields, ODEs, and PDEs.
* [https://gamemath.com/ 3D Math Primer for Graphics and Game Development]: Free online book for game math.
* [https://iquilezles.org/ Inigo Quilez's website]: Website by a professional software engineer and graphics programmer.
* [https://graphics.pixar.com/pbm2001/ Physically based modeling Pixar lecture notes]: Lecture notes by Andrew Witkin and David Baraff. Some of the topics include rigid body dynamics, cloth and fur simulation, and differential equations.
 
=== Paid Books ===
 
Technically non-gratis, but we all know how to use search engines.


==== Programming and Architecture ====
==== Programming and Architecture ====

Revision as of 17:15, 2 August 2023

Game and Engine Development General

The Game and Engine Development General, or /gedg/ is for the discussion of creating games and engines, including the many tools and libraries involved in dev. One large incentive for posting on /gedg/ is code blocks. On /g/, you can share code like so

[code] paste your code here [/code]

We have an IRC channel #/g/gedg on rizon!

Also make sure to check out the /gedg/ compendium: https://rentry.org/gedg!

Engines and Libraries

Open Source

  • assimp: Model loading library made with C++.
  • Bevy: Popular Rust game engine.
  • bgfx: Thicc C/C++ rendering library with numerous bindings for other languages.
  • Dear Imgui: C++ GUI library.
  • EnTT: Fast entity component system written in C++.
  • egui: Rust GUI library inspired by Dear ImGui.
  • GLFW: Multi-platform C library for making windows and handling input events.
  • Godot: 2D/3D game engine written in C++.
  • libGDX: Java framework with bits of C/C++ for performance.
  • LÖVE: 2D game engine in Lua.
  • Lua: Lua is a simple and powerful language that can be used to embed scripts in programs.
  • miniaudio: A simple cross-platform audio library written in C, contained in a single source file.
  • MonoGame: C# framework for making games and engines.
  • Ogre: 3D game engine made in C++.
  • OpenGL: Ubiquitous cross-platform rendering API.
  • OpenGL Mathematics (GLM): glm is a ubiquitous math library made for use with OpenGL. It is also commonly used with other graphics API such as Vulkan.
  • PhysX: A powerful C++ physics library.
  • pygame: Python library for game dev.
  • Ren'Py: Engine for making visual novels.
  • raylib: Simple to use C game engine. The raylib website provides examples and simple games.
  • SDL: C/C++ library that provides access to graphics, audio, and hardware.
  • spdlog: Speedy C++ logging library.
  • sokol: Header-only C library that provides a large number of abstractions and utilities. This includes a wrapper for OpenGL + Metal + D3D11. There are also some handy samples.
  • Stride: C# engine under the MIT license.
  • Vulkan: OpenGL's hot younger sister.
  • wgpu: Rust graphics library based on the WebGPU API.

Closed Source

The term "closed" also includes "pay to view" code.

  • Havok: Physics engine, also has an AI module (pathfinding, navigation meshes, etc.).
  • RPGMaker: Tool to easily make nipponese text and number simulators. But more likely you will use it to make a porn/fetish game. Allows for customization if you know Javascript.
  • Unity: Widely known, uses C#.
  • Unreal: AAA game engine, uses C++.

Open Source Games and Projects

Opportunities to learn from the source code.

Resources

Gratis

Programming and Architecture

Linear Algebra and Spacial Transformations

Rendering APIs and the GPU

Noise

  • Improved Perlin Noise: 2002 algorithm by Ken Perlin used for terrain generation. Here is a Java implementation of the algorithm.
  • Noise-Based RNG: 2017 GDC Math for Game Programmers talk where Squirrel Eiserloh discusses how RNGs can replace noise functions. An update of the code by Squirrel was later created.

Fluid Simulation

General Math and Physics

The things here either don't fit in the other sections or they so largely encapsulate more than one section that putting them there wouldn't do the material justice.

Technically non-gratis, but we all know how to use search engines.

Programming and Architecture

Math and Physics

Rendering APIs and the GPU