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/++1114 and GLFW/GLAD/OpenGL4.34.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’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 stuff you need a field and a method named java
      • … implementing GroovyObject wasn’t good enough
      • maybe I can just generate Groovy classes in text and use them?
    • someway to make gradle run constantly would be cool
      • there are hooks for this but I haven’t sat down to read about them
  • I need audio
    • I need audio
    • … really; no audio = bad!

Anyway … I’m off to write some StackOveflow/Reddit questions.

Peter LaValle avatar
About Peter LaValle
Peter is currently a PhD student at the University of Nottingham. His day work involves applying functional programming to problems with artificial intelligence. Someday maybe he'll retire and be a graphics programmer or demoscene coder.
comments powered by Disqus