top | item 46325337

Making a game on a custom bytecode VM in 7 days and 3kB

108 points| laurentlb | 2 months ago |laurent.le-brun.eu

18 comments

order

vegabook|2 months ago

It's incredibly satisfying to see the polar opposite of the usual LLM/superDB/K8/CICD/Cloud/Container/Crapola corpobloat we hear about on this site all the time, namely a tiny piece of handcrafted code, ironically produce something infinitely more aesthetically beautiful, and intellectually interesting from an almost artisan engineering perspective.

llmslave2|2 months ago

Especially because some framework slopper using all the LLM's and bloat in the world could never even imagine reaching this level of productivity. In 7 (SEVEN) days this coder

- Designed a language.

- Implemented a compiler to compile it to bytecode, using F#.

- Wrote a bytecode interpreter, using C++.

- Created a shoot’em up game, using the custom language.

- Renderd the graphics, using a single GLSL shader.

jstrieb|2 months ago

The rest of the games submitted to this very interesting, somewhat niche game jam (including my own entry) are here:

https://itch.io/jam/langjamgamejam/entries

There were some really impressive submissions in spite of the short time frame!

azhenley|2 months ago

The jam was originally going to be just me doing a solo project but it grew much larger! Over 200 people joined the Discord.

We plan on running it again: https://langjamgamejam.com/

reidrac|2 months ago

Dungeon-Specific Language (DSL)

Cheff kiss!

PaulHoule|2 months ago

Such a beautiful technique for shoehorning straight out of the 1970s! See also

https://en.wikipedia.org/wiki/CHIP-8

and

https://en.wikipedia.org/wiki/SWEET16

It seems so un-FORTRAN that DEC had a FORTRAN compiler for the PDP-11. that was based on a stack machine and then later built an FP accelerator specialized to accelerate the stack machine. It was a straggler but I'm still trying to track down a circa 1992 article from Dr. Dobb's Journal where someone used virtual machine techniques to unbreak the broken i860 and make a good FORTRAN compiler.

pikuseru|2 months ago

Of the many cool things I liked about this, removing the missile from the array by swapping it with the last missile and decrementing the missile count was a nice trick.

nsxwolf|2 months ago

What's that overall filter that covers the view? Is it supposed to look like a late 80s passive matrix color LCD screen?

Edit: Thanks for the downvote, guess I shouldn't have paid any attention to this post at all?

macintux|2 months ago

Worth noting that it's easy (and probably fairly frequent) to click the wrong arrow, especially on a phone screen. I've started double-checking the "unvote" vs "undown" link that appears afterwards to make sure I hit the right one.

laurentlb|2 months ago

There's no specific filter. The main effect is blending the previous frame with the current frame. When blending, I modify the coordinates and add some noise. This makes the graphics look less basic and it creates this noisy trail when things move.

The source code is here: https://github.com/laurentlb/shmup8/blob/main/src/shaders/sc...

Blending is on lines 241, 242.

I didn't try to get a specific 80s look, I just played with formulas.