Random Thursday Update

Redesigned the front as a software gallery, got Portal Worlds working with my common input system, adapted Amazing (the dumb maze game).

I might get Heist adapted this weekend. Cityscape needs either a custom character set, or I add sprite graphics to the retro screen, which is a better plan. I have a bunch more JS games and demos, most can be adapted pretty quick. Porting the Mystic Dungeon RPG from Python is harder, but on the list.

Still thinking about the forum idea, I haven't seen a lot of interest yet, but a place for smack-talking would be nice.

It's really quite nice just having an easy way to focus on the game design or UI mechanics, and not have to make infrastructure from scratch every time.

Everything should be usable without an account, but you can't post scores unless you do!

Racket CS 7.8

Big plus: ARM64 support!

Big minus: Neither DRRacket nor any built .app launches on the Mac, you have to call them from command line. Gross incompetence & zero testing.

My basic gridtest.rkt demo still takes 100ms to render a frame, needs to be <16ms. But that's interpreting from the shell, and I may look and see if they have a more efficient graphics API.

The bigger problem is that compiling doesn't work with packages, or at least I don't have the right magic invocations:

% cat build.zsh

rm -rf build
mkdir build
# Windows: --ico foo.ico
# Mac: --icns foo.icns
time raco exe --cs --gui ++lib memoize ++lib rsound ++lib portaudio -o build/gridtest gridtest.rkt

% ./build.zsh && ./build/
raco exe --cs --gui ++lib memoize ++lib rsound ++lib portaudio -o    39.14s user 2.40s system 87% cpu 47.390 total
ffi-lib: could not load foreign library
  path: libportaudio.2.dylib
  system error: dlopen(libportaudio.2.dylib, 6): image not found
   .../ffi/unsafe.rkt:131:0: get-ffi-lib
   body of '#%embedded:portaudio/portaudio:
   [repeats 6 more times]

Well, that's fucked. 40 seconds and a fuck you because it doesn't bring in the dylib it needs.

Obviously I could just say "install Racket, run this script", but that's lame and distributes source, which in a real game I don't want to do.