Skip to content

Instantly share code, notes, and snippets.

@raysan5
raysan5 / custom_game_engines_small_study.md
Last active April 5, 2025 10:50
A small state-of-the-art study on custom engines

CUSTOM GAME ENGINES: A Small Study

a_plague_tale

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 or Unity for their games (or that's what lot of people think) because d

ofEasyCam custom mouse interaction

written by Roy Macdonald

A new feature in openFrameworks 0.10 is that you can customize ofEasyCam's mouse interactions. This allows you to mimic your favorite CAD software or use a configuration that feels better for certain purposes.

2D ortho camera

I like to modify these for 2D interactions in ortho mode. This allows you to easilly navigate your "canvas".

@malustewart
malustewart / imgui_consultas_2020_1C.md
Last active September 2, 2023 19:53
Consultas de ImGui para EDA 1er cuatrimestre 2020

ImGui consultas 2020 1C

> ¿Cómo cambio el tamaño de las fonts?

En DemoWindow > Configuration > Fonts :

  • Para cambiar el tamaño de la font de una sola ventana, existe ImGui::SetWindowFontScale(window_scale), donde window_scale es un float que va desde 0.0 (tamaño casi invisible) a 2.0 (tamaño doble que el normal).
  • Para cambiar el tamaño de una font en todas las ventanas, alcanza con modificar io.FontGlobalScale. io es el contexto de ImGui que se obtiene en la inicialización. FontGlobalScale es un float que va desde 0.0 (tamaño casi invisible) a 2.0 (tamaño doble que el normal).

Ver líneas 3324 a 3327 de imgui_demo.cpp

> ¿Cómo fijo la posición de las ventanas?

This note simply gathers some info and thoughts on building Node Editor, especially in an
immediate mode setting.
Q: How does imgui render rounded rects?
Check imgui AddRectFilled
Imgui drawing api is closer to nanoVG
- Path is kept
- Contents are modified based on path
@moebiussurfing
moebiussurfing / ofApp.cpp
Last active May 18, 2020 06:07
openFrameworks - ofParameterGroup cast parameters from group callback
ofApp::Changed_params(ofAbstractParameter &e)
{
//bool
if (e.type() == typeid(ofParameter<bool>).name())
{
ofParameter<bool> b = e.cast<bool>();
if (name == "BANG_1")
{
@jakeajames
jakeajames / patch.sh
Last active April 2, 2025 17:30
Make h3lix work when installed not-via-Impactor. To be used with the latest h3lix.
if [ $# != 2 ]; then
echo "Usage: $0 /path/to/input_ipa /path/to/output_ipa"
exit 1
fi
if ! [ -f $1 ]; then
echo "'$1' does not exist"
exit 1
fi
auto get_bbox = [](const vector<ofVec2f> pts) -> ofRectangle
{
auto xpair = std::minmax_element(pts.begin(), pts.end(),
[](const ofVec2f& a, const ofVec2f& b) {
return a.x < b.x;
});
auto ypair = std::minmax_element(pts.begin(), pts.end(),
[](const ofVec2f& a, const ofVec2f& b) {
return a.y < b.y;
});
@nariakiiwatani
nariakiiwatani / mergeJson.hpp
Created August 23, 2019 06:24
merge json obejcts using nlohmann::json
#pragma once
#include "json.hpp"
namespace json {
static nlohmann::json merge(nlohmann::json src, const nlohmann::json &append, bool overwrite_leaf, int depth=-1)
{
if(!src.is_object() || !append.is_object()) {
if(overwrite_leaf) {
return append;
@dimitre
dimitre / main.cpp
Created August 3, 2019 02:27
openFrameworks drag and drop folder to generate project
#include "ofMain.h"
string pgPath = "../../../apps/projectGenerator/commandLine/bin/projectGenerator";
string command = "";
class ofApp : public ofBaseApp{
public:
void setup() {
ofSetWindowPosition(60, 60);
/*
Dimitre Lima 2019
Uncompressed tiff writer for openFrameworks
Only for RGB888 big Endian
*/
class tiffFastWriter {
public: