Timo 2022-08-11 12:59 (Edited)
I was thinking about a simpler way of using LowRes NX for beginners and for people who like limitations ;) The result is the new tool "Easy Designer" and a specification of a subset of commands.
What do you think about it? I would love to see some games from the community using Easy LowRes! :) I think it's perfect for puzzle and RPG/adventure games...
Easy LowRes is not a new platform, it's a new way to use LowRes NX. The idea was to remove all the complicated stuff from it and keep it at an easy to understand minimum, especially for beginners.
These are the limitations compared to the full LowRes NX platform. Keep in mind that these are soft limitations: You can still use all available LowRes NX commands from the normal manual, but then it wouldn't be pure Easy LowRes anymore.
G-9 2022-08-11 14:03
wow! really good idea even if it's kinda limited (but i guess it's the main point of it lol)
Timo 2022-08-11 15:55
I'm thinking about changing the idea for sound: Remove MUSIC and TRACK and only allow the PLAY command. I could let Easy Designer already save some default sounds. This way I don't need to make a "Easy Composer" tool ;)
nathanielbabiak 2022-08-12 16:42
Was thinking the same thing - music is complicated!
BGelais 2022-08-12 16:50
Why put more limitation for beginners as LowresNX is nice as it is from start?
Timo 2022-08-12 17:10
BGelais, I think many things can be overwhelming, for example scrolling. There are many ways to do it: BG COPY and SCROLL, and then if the map is bigger than 32x32 you have to mix both for smooth scrolling. With "Easy LowRes" the idea is to have only one solution for each problem. And by removing sprites there is only one co-ordinate system left, etc. Collisions are much easier to check, if everything is cell based...
Also it removes a bit the need to understand how classic hardware worked, the only needed concept is the character based screen. So it might be more useful for kids who just want to learn simple programming, but are not really interested in classic hardware tricks.
Of course this is completely voluntary to use, I won't change the app :)
was8bit 2022-08-13 16:40
I like the idea of swapping out the music and tracking and adding play instead...
I would consider adding SUB at the very end as an "advanced" topic... not needed for the easy set but added for those who want a bit of an extra challenge.. MS basic had it for the old IBM computers...
Whenever you are teaching someone, you always start with the basics, but you also add a "teaser" for those who are abit ahead of others... or to encourage the others once they catch on to the basics, they can then play around with SUBS...
It could be considered as a "gateway" connecting BASIC to the full set... a "sneak peek" into the full set...
SUBS force you to organize your code better... if anyone was to switch from basic set to full set they are going to need that skill...
Timo 2022-08-14 09:52
I removed SUBs because the overlap with GOSUB.
I thought about removing GOSUB instead of SUB, which would be more modern/clean, but as long as you also use GOTO, you sometimes cannot use SUBs, because you cannot jump out of a SUB using GOTO. I mean for clean programming you would not use GOTO at all and replace it for example with a state machine, but this make programming more complicated for beginners.
I think having both GOSUB and SUB is not good for beginners, because you would have to explain the difference and when it's better to use one or the other.
SUB adds more complexity because of local and global variables, but also makes it easier to prevent errors...
So, I'm not sure. Any more opinions?
nathanielbabiak 2022-08-14 13:21 (Edited)
I would drop GOTO, GOSUB, and GLOBAL, and only use SUB in the easy version.
Timo 2022-08-14 13:53
But GOTO is my favorite :O
Obviously it's not for professional programming, but it's so useful for switching between different screens in a game or parts in a text adventure.
Yes, there are all kinds of programming patterns to solve these issues, but you have to learn them. I think the magic of BASIC is, that you can just program directly what you have in mind. Also BASIC is quite bad in structures, so it's difficult to develop nice and reusable systems.
So I prefer to "enjoy" the badness of BASIC with GOTO ;) I mean the classic BASIC was invented for simple and small programs, so a little bit spaghetti code should be ok.
was8bit 2022-08-14 14:02
I use GOSUB when my different parts of code reuse a small portion of identical code over and over, yet doesnt warrent SUB
was8bit 2022-08-14 14:03
Where different actions are done in sequence (taking turns, etc) GOTO is essiential...
was8bit 2022-08-14 14:04
GLOBAL is only needed if you are using SUB
was8bit 2022-08-14 14:52 (Edited)
I was thinking SUB would be like a small footnote... like ... "Want more? Try SUB, see a brief overview below" This brief overview would include a link to full lowres text if they wanted to explore that...
It wouldn't necessarily but part of the main body of Easy Lowres text, rather just a quick glance of what full lowres can offer..
It would be a nice first step into full lowres... (SUB can be easily overlooked)
... just a thought :) overall i like the idea of an easier set for newbies new to programming :)
was8bit 2022-08-14 15:09 (Edited)
Another thought, maybe a different variation of the title, like "Quick Start, an easy way to get started programming games with Lowres"
Complicated instructions (like to assemble or set up something complicated) will often have a QUICK SETUP section that is bare bones to just get you started...
Timo 2022-08-15 14:44 (Edited)
Or I just keep SUBs and GOSUB and GOTO. I already got into a little mess with my example game, because of using GOSUB instead of SUB...
was8bit 2022-08-15 19:21
It is possible to kinda "simulate" Subs, if you convert variables over so as to mimic non global variables, and add extra command variables to give the gosub, etc.. but it can get confusing quickly...
... Although SUBS dont really clasify as "easy", medium level perhaps...
I shall take a gander when i get a chance at your example :)
nathanielbabiak 2022-08-15 23:37
GOTO, GOSUB, and SUB (and synonyms in other languages) are not strictly required. They act only to organize a programmer's thoughts within the source code. While they each operate differently (as was8bit explained above), and while GOTO certainly has the easiest learning curve *initially* (and is the most "fun" as Timo mentioned above), none serves any other purpose except organizing a programmer's thoughts within the source code.
So with that purpose clear, do any of these keywords serve a second purpose of developing a larger user base? Generally, new users will be discovering LowRes NX *while also discovering all other fantasy consoles,* for which you'd want this console to compete, to be comparable, and to develop a lasting user base. GOTO and GOSUB don't fulfil this purpose, but SUB does. [Reasoning omitted.]
Continuing this line of reasoning (and without loss of generality), if SUB/GOSUB/GOTO is the best one that serves two purposes, what is the cost of including it in Easy LowRes? It would be included at the cost of the manual's complexity, of learning curve, and of discouraging or "turning off" new users.
Thus, if you don't like including only SUB, then I'd recommend omitting all three from Easy LowRes. None are essential, but only one allows comparison to competing fantasy consoles.
Timo 2022-08-16 08:54
I will keep all of them. Code can easily get messy without SUBs, so I will keep them. And without GOTO I think BASIC loses its magic (and text adventures would get really complicated), so I will also keep it. And GOSUB is sometimes necessary for GOTO based programs, so yes, whatever ;)
Timo 2022-08-16 10:21 (Edited)
I updated the manual with the changes for sound and SUBs.
nathanielbabiak 2022-08-16 13:15
That works, manual looks good!
was8bit 2022-08-16 13:19