Known bugs:
- Lessons 11, 110 and 1001 are cut off at the bottom
- Some levels show the wrong metrics
- The scrollbar is offset by 1 pixel in fullscreen
I wasn't able to fix these bugs yet as they simply do not occur on my computer.
Great game.
However I have a problem.
Completed level 19 then the game crashed. It kept crashing when trying to open a task. Reinstalling the game didn't help. Deleting all the task files in the %localappdata% then enabled the game to run. I started from the beginning again completing the tasks. This time I finished level 17 and it crashed again and will not work. I'm using Windows 10.
Hope you can help.
Hello.
I am enjoying the game so far, but have noticed an issue which leads to a crash.
When I create and edit a file (under My Files), there is a little 'up arrow' button on the bottom right of the screen, slightly obscured by the scrollbars. But, when I click it the game crashes with this error;
###########
FATAL ERROR in
action number 1
of Mouse Event for Left Pressed
for object oKeyboard:
instance_create_layer :: specified layer "Window" does not exist
###########
called from - gml_Object_oKeyboard_Mouse_4 (line 5)
///////
Sorry for the error text formatting, I manually typed it.
Thanks.
I played the game for a while and an error occurred.
Since then, the game won't start.
Here is the error message:
___________________________________________
############################################################################################
ERROR in
action number 1
of Create Event
for object oMenu:
unable to add a number to string############################################################################################
gml_Object_oMenu_Create_0 (line 49)
Hello, again.
This is not exactly a bug but I think it should be fixed. I'm currently doing the bonus task 1 (QUADR). In this task, there are two outputs for each set of inputs. The problem is, the order of expected outputs is somewhat arbitrary. I wrote an algorithm that returns the outputs in descending (or ascending) order and it didn't work. I guess there is an intended answer but the problem itself doesn't state anything about the order. I think it should be fixed in a way that clarifies the order.
I think it's a bug disguised as a feature. I implemented a timer to check if you get stuck in an infinite loop, and if so, quit. I suppose a better way to do it would be to first check if you're still on the same input, or increase the maximum number of cycles. I'll fix it soon.
Just to make sure, you're not going beyond the final input before writing the final output? There's an error that clearly says "Too many cycles" or smth like that? (I don't remember anymore how exactly this game works...)
Anyhow thank you for still showing interest in this game! :)
There seems to be a bug in extended ELIF statements, at least in Task 1101.
Realizing that the inputs for Task 1101 were only 4 bits (which seems an oversight; there are 34 inputs which could potentially be doubled without overflowing the eight-bit register), I hardcoded a lookup table and soared way under the par time for steps, though obviously was way above the par word count:
However, I ran into serious problems and inconsistencies trying to optimize this solution further. If I end these IF statements with ELIF, the program runs fine. However, ending with ELSE (which, since I cover all possible branches, should lead to the same thing) leads to the ELSE getting triggered a significant portion of the time. In this case, the program only succeeds on the last three branches, which doesn't seem intended:
Additionally, and I don't know if this is intended or not, the @ statement overrides long IF / ELIF chains, forcing the program into sections of code under IF statements whose conditions are not met.
On Task 10111, I get two different results depending on if a variable - which is never read - gets assigned. I suspect the WHILE loop isn't updating properly.
EDIT: And using this same code on Task 11001 (everything above the screen is the code shown above in Task 10111), after sufficiently many steps the output doesn't work:
BEFORE STEP:
AFTER STEP:
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.
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.
The game occasionally crashes without warning upon saving a file. The file is wiped in the process.
___________________________________________ ############################################################################################ ERROR in action number 1 of Other Event: Room End for object oCodeWrite: unable to convert string ";" to number############################################################################################ gml_Object_oCodeWrite_Other_5 (line 31)
I have encountered a reproducible crash.
On task 10 ACC(N) I am trying the following code:
VAL 0; WHILE 1 { T IN; IF T { VAL T; } OUT VAL; DOWN 1; }
When I step through the code I can see VAL being set to the appropriate last-non-zero input, but `OUT VAL` always outputs zero. This isn't a "troubleshoot my solution" post, although I'd welcome that. I am including this program to help describe the crash.
If I run this program at normal or fast forward speed, it simply outputs all zeros and then fails with "OUTPUTS ARE NOT CORRECT". However, if I hit some pattern of F1 F2 F3 ESC (sorry it's tedious for me to test and reproduce exact patterns, but I think F1 F2 F2 F2 F2 F2 F2 F3 ESC will do it) then the interface shows me a weird state. I'm not running the program and the in/out cursor isn't moving, but the variables column keeps updating for a while until before it stops. At that point if I hit F1 F2 F2 to try to step through my program from the beginning I get this crash message:
___________________________________________ ############################################################################################ ERROR in action number 1 of Step Event0 for object oCodeRead: Variable Index [64] out of range [64] - 4.100082(100082,64)############################################################################################ gml_Script_find_value (line 13) gml_Object_oCodeRead_Step_0 (line 418)
PS: much smaller bug report: that second ### in the error output should probably have a newline before it.
hello, I’m not sure if this is a bug. Keywords such as NOT, AND, OR, !, = … are recognized as variables.
So I modified the path of LLVM-WINDOWS in options.ini. Because I don’t have the 2022 version. (→ C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat)
Nevertheless, there are still bugs where the keyword is not recognized. Is there something I’m missing?
( And where is 1000bit.AppImage used? ) ( I used a translator. I hope the meaning is conveyed. )
This is supposed to be the case in the levels before the ones where you program these keywords yourself.
The idea is that you make the "not" keyword without using this keyword (by reading and changing the bits one by one) and then you can start using it. Seems like I should make that clearer in the tutorials and manual 😅 or maybe I'll make them red and cause an error instead to show that these levels aren't supposed to be trivial.
But I do notice on the screenshot that the way the rectangles/UI is drawn is weird, thanks for showing me. I have a fix planned for that.
The AppImage file is to run the game on Linux, you don't need it.