I still played hard into my twenties, but it was a downhill slope since grade 8.
Blog
-
Is BooBoo fast enough?
Here is show CoinHunt running at 16x speed. That’s 16x as much code being run per frame. It knocks the framerate from 480 to 380 FPS. So it goes to show you could run 64x+ as much code as CoinHunt on a low end PC. CoinHunt’s main loop (run function) is 1266 lines including many function calls called in loops. So it’s probably 2000+. So you could run 128,000 lines of BooBoo per frame in your run function on a low end PC.
EDIT: Running CoinHunt with +ops shows my guess was way off. I get 15,750 lines per frame (stock speed). So crunching the numbers, it’s a little over a million lines per frame you could do on this PC at 60 FPS.
EDIT2: It doesn’t scale that way though. It seems there is a lot more code in the draw function than I thought. My original estimate wasn’t bad… but it’s actually about 3125 not 2000. So it seems like 200,000 lines of run function is the closer estimate. This draw function has tens of thousands of lines per frame just drawing stars.
EDIT3: This includes all code in loops (each time it’s run counts as 1) and function calls. I think 200,000 “big instructions” per frame is a perfect level of challenge for a single or small team of developers, which is what BooBoo is designed for. Keep in mind this measurement is based on “somewhat average lines of code”.
-
BooBoo 3.0.17
- Add +no-obfuscate <filename> switch
- Make string_set_char_at utf8 compliant
- Fix texture coordinates of ground in DOOMED
-
BooBoo Linux Version
If you buy it on Humble, you get a redistribution license and the Linux version.
EDIT: The Linux version is free to try now too
-
JSON changes
Some of the changes were sparked by thoughts about how I’m going to create save states. I came up with the idea of something like this:
"entities": [ { "chest", [ x, y, opened... ] }, { "person", [ x, y, ... ] },... ]You would read the name and use toptr something like:
= name (json_get_string json "entities>[0]") = name (string_format "create_%" name) var ptr = ptr (toptr name) ; create a vector from the array after "chest" /etc, which can be fully automated var entity call_result entity *ptr vec vector_add entities entityNow the load code doesn’t need to know about the types. Typically you see:
if (type == chest) { } if (type == person) { } ; a million othersBy the way, if you use this trick, it won’t work if you obfuscate your code. I can allow it though through a command line switch to list your create_ functions/etc.
-
BooBoo 3.0.16
- Improvements to docs
- Add json_add_array and json_add_hash
- Add json_typeof, json_size and json_create
- Add get_savedgames_path (CLI also)
-
I found a reasonable controller for PS1/PS2 emulation

hyperkin brave knight. It’s not perfect, but nothing is. PS2/PS3 controllers don’t work properly and PS4/5 need this hack driver so this is about as good as it gets.
the l2/r2 are digital and analog buttons/motion controls don’t work, but beside that it configures automatically in DuckStation/pcsx2 and has the correct labels on the buttons.
-
The NVIDIA GT 1030 is a potato
So far every benchmark I’ve run, an Intel UHD 630 beats it by 25-30+%. I’m actually kind of surprised……………………………
EDIT: Jeeze, even the Intel HD 530 in this i5 6500 is faster than the 1030 if I remove the 1030.
-
BooBoo 3.0.15
- Support all fully supported Steam language in get_system_language
- Keep user scissor/viewport after resize
- Add get_ function for graphics settings
- Rename black_bar to letterbox
- get_args now works in BooBooCLI
- Separate fore/back colours (text_fore, text_back) text colours
- Add (widget_get_padding_*)
- Add sort and unique
- added convert_model to tools
-
convert_model will be included in next version tools
It converts ascii .x models to custom .nsm (binary Nooskewl models). In my test the zeus.x model loaded 1000 times at 23.17 seconds and .nsm version loaded 1000 at 2.9 seconds, and it’s also half the size.
