Home Artists Posts Import Register

Downloads

Content

Update Notes


Update: 'Screen Scaling' option added to view settings dialog (give this a try if you have a very large/high DPI monitor.)
Update: Command line arguments added:

  • '--always-redraw': Makes Blockhead redraw every frame, regardless of if anything changed visually.
  • '--force-fps=': Sets the desired FPS. The default is 60. You can lower this to decrease GPU usage (e.g. '--force-fps=30')

Bugfix: Possible crash whenever a lane is deleted.

Bugfix: Constantly high GPU usage even when nothing is happening visually.

Bugfix: Block size indicator line is drawn incorrectly when the hovered block is partially off the left edge of the screen.


Links

Manual (WIP): https://docs.google.com/document/d/1y6je_g2oNnxClL1eXV20dcQpoyZEkek5LTxQPyEFT0w
Known Issues: https://trello.com/b/MT1A3Zob/blockhead-issues
Discord: Blockhead (discord.com)
Development Videos: https://www.youtube.com/@colugo5172/videos

Comments

Gearmo 3DS

Hey, I wanted to ask you this: How do you go about testing - do you use a unit-testing framework for C++? I use doctest, which seems great. But what about bugs which happen in circumstances that require the user to have traversed a certain path (open a file, go to a certain menu etc.) in order to reproduce a crash? I have been thinking for that you would probably need a way to record and replay user events to avoid doing all that manually every time.

Gearmo 3DS

Fair enough! I also only do it only for parts where I need extra confidence to not overburden myself with the extra effort and maintenance that comes with it.

Simon Break

I've done a fair bit of testing UI-heavy code (specifically for embedded code in devices with screens) and by far the best way (IMO) to do it is to use a message-based architecture with a central bus connecting the core logic to the UI, with the UI being as dumb as possible. Then you can test by simply recording the stream of messages in and out to a text log. At that point your test suite is just a bunch of recorded message streams which you "play back" into the core, comparing the returned values to the ones you got previously. You can even send text logs over the internet to remotely reproduce bugs.