See "Supplement" under PROJECT (1) in the manual:
The PROJECT command changes the current project at "non-execution time" (DIRECT mode), but not the saved active project which can only be changed by the "Change Active Project" button. The menu shows the active project as the saved one, not the non-execution time project.
I think something like this might do what you're looking for
I haven't tested it so I have no idea if it will actually work
DEF TOBIN$(C$)
OUT$=""
FOR I=0 TO LEN(C$)-1
OUT$=OUT$+BIN$(ASC(C$[I]))
NEXT
RETURN OUT$
END
PRINT TOBIN$("HELLO WORLD")
To make programs that use multiple lines of code, you must use the EDIT mode.
The "OK" indicates that the code has finished running.
If you want to delete all the text on screen, use the CLS function.
However, when recreating a game, the issue shifts from creativity to copyright laws. If you're going to port Wolfenstein, I highly suggest researching any copyrights surrounding it so that your hard work isn't taken down from the SmileBASIC servers.
If you choose the second option, however, you'll have to make sure you only use DIM ARR[1] once, preferrably at the start of your program. If you DIM an array more than once, SmileBASIC gives an error.
SmileBASIC can't save a single number, but rather only arrays. To save this number, you have a couple of options.
You can save with SAVE "TXT:TEST",STR$(SUB) and load it with LOAD "TXT:TEST",FALSE OUT S$:SUB=VAL(S$)
You can save with DIM ARR[1]:ARR[0]=SUB:SAVE "DAT:TEST",ARR and load with DIM ARR[1]:LOAD "DAT:TEST",FALSE OUT ARR:SUB=ARR[0]
GPRIO -1
Use a Z coordinate when calling LOCATE (the third parameter) to make sure it's above the graphics layer when using a GPRIO of any negative number.
This is definitely much easier to make games for than using native code compiled from a language like C. It provides the framework for you as well as an easy way to interface with it.