Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Follow-up to this one, from Bonus Task 1; by far the most persistent bug I've encountered in the game - and by far the most annoying to nail down and report - is the bug where a piece of code causes the program to exit out of the WHILE 1 loop early, reporting "OUTPUTS ARE NOT CORRECT" even though the cursor is only on the second row.  I finally managed to get a minimal example of the bug:

WHILE 1 {
    IF IN[0] {
        RAISE J; 0; 1000 {
        }
    }
    OUT IN[0];
    DOWN 1;
}

As you can see in these screenshots, when the RAISE J clause is present, the program exits out of the WHILE 1 loop early, having only written a single output and read a single input.  However, when RAISE J is not present, the program goes through the loop as normal:

A little testing shows that the content of the IF statement can vary (this still occurs with IF 1 instead of IF IN[0]), the output command can vary (or not be present; I included it for demonstration), and the variable name and limits of RAISE can change, as well as replacing RAISE with LOWER.  It does not occur replacing RAISE with TIMES, however.

What's made this so hard to figure out is that this bug is dependent on the order in which you enter and run code.  For instance, if you first put a RAISE *around* the IF statement, run it, and then remove the RAISE, the program will run correctly.


In this manner, it is possible to have two identical files, for the same task, whose behaviors are entirely different.  Of all the bugs, this one's probably the worst.

I sincerely appreciate you still maintaining this game after all this time, and I would love to play through the bonus tasks and see the game's ending.  I'm playing it on 64-bit WINE for Ubuntu 20.04 (the native Linux build unfortunately segfaults), and would be happy to provide debug logs, system specs, more screenshots, or whatever else would help.

(+1)

Ehh... this is what happens when you get an inexperienced programmer making a program reader: a spaghetti mess that creates extremely unintuitive bugs. Thank you so much for your effort in tracking this down as far as you could. I will be working on ironing out the bugs now (working from a new GameMaker version introduced its own fair share of them... one of them is that I can't type the letter "i", although if I use the debugger to stop at a certain line of code, I can. Ugh.)

If you have any other complaints about game design and such, let me know please. It's nice to have such a dedicated community.