Adventures in Demo Making
I should just “blog” informally more often - so here goes.
I’ve cobbled together a toolchain/asset-conditioning-pipeline of sorts for demoscene type stuff. My system is written in Scala on Gradle and functions by emitting C/++ and CMake files for Visual Studio. All of this produces a C/++11⁄14 and GLFW/GLAD/OpenGL4.3⁄4.5 executable that displays someone else’s ShaderToy project. Nothing revolutionary, but I’m after pretty-code that I can keep using rather than actual hard “street cred” quality demo results.
The renderer I wrote tries to run all GL code in an asynchronous thread. The example shader runs smoothly, fullscreen, in the WebGL browser, but, not so smoothly on my Desktop. I’m confused because the renderer does just about zilch and it’s displaying this Very odd; there’s just about zilch going on here. I’m using a lot of lambda expressions, but, nothing that’s being created dynamically. The system uses a lot of STL so maybe something less hinkey would run more smoothly? Things to explore, but I don’t have anything to throw out. I’m (basically) fine with it as-is. My first attempt, at best a derivative work, but an interesting learning experince.
- Shows a demo just fine on three+ computers, with green and blue GPUs.
- I’m stuck at 49.5k with UPX; this is the big ick for me
- I might be exporting symbols or using TLS; I should kill that
- … if I do that; I can use the kkrunchy as compressors too
- I haven’t tried crinkler
- I haven’t tried using a minimal-C runtime; that’d likely give a wee kick
- finally; I should audit my GL function lists, since, I’m likely grabbing pointers to things that I don’t use and the strings/calls are redundant
- I might be exporting symbols or using TLS; I should kill that
- I’m not done with the tooling/asset conditioning pipeline’s internals
- the way that I need to declare source-sets in Gradle is infuriating
- to match the
sourceSets.main.java
stuff you need a field and a method namedjava
- … implementing
GroovyObject
wasn’t good enough - maybe I can just generate Groovy classes in text and use them?
- to match the
- someway to make gradle run constantly would be cool
- there are hooks for this but I haven’t sat down to read about them
- the way that I need to declare source-sets in Gradle is infuriating
- I need audio
- I need audio
- … really; no audio = bad!
Anyway … I’m off to write some StackOveflow/Reddit questions.