Originally posted by Rena KunisakiNo seriously, providing a simple high-level language to code old 8-bit computers in is exactly what BASIC was designed for. You should study it a bit for some thoughts on how to design this tool. Right now it looks like you can only code by selecting a statement and clicking "add"? (I assume you're not actually trying to parse those English statements in your screenshots o.o) This is a good feature to have, but to have it as the only way, that's inefficient... for anything more than a couple lines people are going to want to be able to type their programs.
This tool isn't meant for massive, game-changing coding, nor is it meant to implement its own programming language. It's meant for blocks that usually, at most, require one or two logic statements to work. Don't get me wrong, I do understand that it's not the most efficient way of going about things, but it's the easiest to understand, and
that's my goal. The moment any actual typing is required to code, the entry level goes through the roof, and I've failed.
Originally posted by Rena KunisakiWhaaaaaaaat? What the hell kind of crazy code do you have going here? From the looks of your screenshots the logic is represented internally as a simple list of statement IDs.
No. Each action is its own class inherited from a base class of actions. The solution to this problem would be for each class to also have a method that would describe how it could load its necessary information from whatever save file it's reading from, but as I said, I don't see the demand for it being worth the time needed.
Originally posted by Rena Kunisaki...where do you get the idea that not being able to save your program makes any sense? Go read a book on UI design.
Because, like I said, the demand isn't there, 99% of all blocks made with this tool will be a handful of lines each, and I'm a busy person. It's not impossible, but it's sufficiently time-consuming that I don't want to implement it if only one or two people feel that they would actually use it on a regular basis. Most of the time, it's just create, compile, quit.
Originally posted by Rena KunisakiOh yeah, and what I was really curious about, is how does this handle complex nested expressions? Your building-block interface is fine for simple expressions, but how would you represent
Codeif mario_is_small or (time < 100
and (coins < 10 or lives < 2 or
(level == 0x105 and yoshi_type == none))) then
activate_bullet_hell_mode()
elseif mario_is_caped and (yoshi_type == green or yoshi_type == yellow)
and time > 200 and more_deliberately_contrived_conditions then
commit_seppuku()
if frame_counter == 27 or (bonus_stars == 99 and yoshi_coins == 5) then
play_happy_lucky_bonus_song()
end
else
give_coins(lives + ((frame_counter) * 4 & 3))
end
with your simple statement lists?
For and statements, the typical way is this:
CodeIf a
If b
If c
Do XXXX
otherwise,
Do YYY
-------------
-------------
Otherwise,
Do ZZ
---------------
Alternatively, if you absolutely need them "chained",
CodeIf !a
or
If !b
or
If !c
Do XXXX
Otherwise,
Do YYY
---------------
For the deliberately contrived conditions, yes, they're possible but rather hard to recreate, and while that may be annoying for normal programming, if you need something that convoluted for just a simple block, you're doing something wrong.
So to sum up my statements, I'm not building some massive, ASM-coding suite that's designed for people to build patches and bosses in. I'm building a tool that lets users with no ASM knowledge build their own blocks instead of relying on others to do it for them. Moving beyond the building block interface that this provides is not anywhere on my to-do list, because it violates the purpose of the program. If you know how to code in an actual programming language, chances are you can figure out ASM, especially ASM as simple as the 65C816's. And if you know how to use ASM, chances are you don't need this tool.
EDIT: Just to be clear, I do appreciate and am grateful for your feedback, so don't take my comments as just blindly rebutting everything you're saying. I just don't think we're seeing eye to eye on the goals of the program right now.
UltiEdit: Table stretch