MysticDungeon.club 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
#!/bin/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/gridtest.app/Contents/MacOS/gridtest
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
  context...:
   raise-dll-error
   .../ffi/unsafe.rkt:131:0: get-ffi-lib
   call-in-empty-metacontinuation-frame
   proc
   call-in-empty-metacontinuation-frame
   body of '#%embedded:portaudio/portaudio:
   temp35_0
   run-module-instance!
   [repeats 6 more times]
   perform-require!
   call-in-empty-metacontinuation-frame
   eval-one-top
   eval-compiled-parts
   embedded-load
   proc
   call-in-empty-metacontinuation-frame

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.