Skip to content

Instantly share code, notes, and snippets.

View jackmott's full-sized avatar

Jack Mott jackmott

  • Looking for employment
  • Texas,USA
View GitHub Profile
@jackmott
jackmott / ShaderManager.cs
Created March 13, 2017 19:21
Hot Swappable Shaders for MonoGame
/*
HotSwap shader sytem for MonoGame
HotSwap code only exists for debug builds
Edit paths to match your project
Construct in your Initialize method
Add shaders in LoadContent (or whenever)
Call CheckForChanges in Update() or periodically however you like
mgcb.exe usually located in C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools
*/
@jackmott
jackmott / benchmark.cs
Created September 24, 2025 19:12
Linq overhead benchmark
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using System.Collections.Generic;
using System.Linq;
public interface Cool
{
bool IsCool();
}
@jackmott
jackmott / .md
Last active February 27, 2025 22:28
linq performance net10
Method Mean Error StdDev Gen0 Allocated
SumLoopShort 2.371 ns 0.0380 ns 0.0356 ns - -
SumLinqShort 2.849 ns 0.0505 ns 0.0473 ns - -
SumLoopLong 3,557.375 ns 29.2171 ns 24.3976 ns - -
SumLinqLong 599.220 ns 3.5048 ns 3.2784 ns - -
ComplexSumLoopLong 19,158.862 ns 374.6008 ns 367.9080 ns - -
ComplexSumLinqLong 27,317.165 ns 267.0329 ns 249.7828 ns - 48 B
ComplexSumLoopShort 2.676 ns 0.0363 ns 0.0283 ns - -
ComplexSumLinqShort 21.36 ns 0.2747 ns 0.2435 ns 0.0124 48 B
@jackmott
jackmott / SIMDStarterKit.h
Last active January 4, 2024 23:15
A header file to make SIMD intrinsics a bit easier to work with
// A header file to get you set going with Intel SIMD instrinsic programming.
// All necessary header files are inlucded for SSE2, SSE41, and AVX2
// Macros make the intrinsics easier to read and generic so you can compile to
// SSE2 or AVX2 with the flip of a #define
#define SSE2 //indicates we want SSE2
#define SSE41 //indicates we want SSE4.1 instructions (floor and blend is available)
#define AVX2 //indicates we want AVX2 instructions (double speed!)
@jackmott
jackmott / RotatedRectangle.cs
Created October 11, 2017 14:06
Rotated rectangle collision detection
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
//Faster linq-style convenience functions https://github.com/jackmott/LinqFaster
using JM.LinqFaster;
namespace DrawAndDrive
{
@jackmott
jackmott / FasterGame.cs
Last active August 21, 2020 18:17
Faster CSharp Game
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Threading;
namespace bettercraft
{
@jackmott
jackmott / simplex.go
Created January 21, 2018 19:47
simplex noise in go
/* This code ported to Go from Stefan Gustavson's C implementation, his comments follow:
* https://github.com/stegu/perlin-noise/blob/master/src/simplexnoise1234.c
* SimplexNoise1234, Simplex noise with true analytic
* derivative in 1D to 4D.
*
* Author: Stefan Gustavson, 2003-2005
* Contact: stefan.gustavson@liu.se
*
*
* This code was GPL licensed until February 2011.
@jackmott
jackmott / main.rs
Last active September 9, 2019 01:57
chunk noise example
use minifb::{Key, Window, WindowOptions};
use simdnoise::NoiseBuilder;
use std::{thread, time};
const WIDTH: usize = 640;
const HEIGHT: usize = 640;
fn main() {
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
@jackmott
jackmott / sdl2.go
Created January 15, 2018 15:05
Games With Go EP06 OSX fix
package main
// Experiment! draw some crazy stuff!
// Gist it next week and I'll show it off on stream
import (
"fmt"
"github.com/veandco/go-sdl2/sdl"
)
@jackmott
jackmott / duconverter
Created March 7, 2019 22:11
newtonsoft json DU converter
namespace AlphaFront
module JsonCustomConverters =
open Newtonsoft.Json
open Microsoft.FSharp.Reflection
open System
open System.IO
type DuConverter() =
inherit JsonConverter()