Skip to content

Instantly share code, notes, and snippets.

View AndreiRudenko's full-sized avatar

Andrei Rudenko AndreiRudenko

View GitHub Profile
@raysan5
raysan5 / custom_game_engines_small_study.md
Last active July 1, 2025 07:13
A small state-of-the-art study on custom engines

CUSTOM GAME ENGINES: A Small Study

a_plague_tale

WARNING: Article moved to separate repo to allow users contributions: https://github.com/raysan5/custom_game_engines

A couple of weeks ago I played (and finished) A Plague Tale, a game by Asobo Studio. I was really captivated by the game, not only by the beautiful graphics but also by the story and the locations in the game. I decided to investigate a bit about the game tech and I was surprised to see it was developed with a custom engine by a relatively small studio. I know there are some companies using custom engines but it's very difficult to find a detailed market study with that kind of information curated and updated. So this article.

Nowadays lots of companies choose engines like [Unreal](https:

@gkhays
gkhays / DrawSineWave.html
Last active June 22, 2025 08:39
Oscillating sine wave, including the steps to figuring out how to plot a sine wave
<!DOCTYPE html>
<html>
<head>
<title>Sine Wave</title>
<script type="text/javascript">
function showAxes(ctx,axes) {
var width = ctx.canvas.width;
var height = ctx.canvas.height;
var xMin = 0;
@kevinresol
kevinresol / AssetPaths.hx
Created August 22, 2015 01:44
Macro to read asset paths
package util;
/**
* ...
* @author Kevin
*/
@:build(util.AssetPathsMacro.build())
class AssetPaths
{
@bmfs
bmfs / Main.hx
Last active February 21, 2017 23:07
Luxe: Load image from url
import luxe.Input;
import luxe.Sprite;
import luxe.Vector;
import snow.system.assets.Asset;
import snow.types.Types;
class Main extends luxe.Game {
override function ready() {
@ruby0x1
ruby0x1 / FPS.hx
Last active July 12, 2017 11:47 — forked from AndreiRudenko/Fps.hx
Simple FPS Text instance, modified from @RudenkoArt as an example for http://luxeengine.com
package;
import luxe.Text;
import luxe.Color;
import luxe.Vector;
import luxe.Log.*;
import luxe.options.TextOptions;
class FPS extends Text {