@12
First about iOS and apple stuff, I just want iOS support to be easily implemented at a moment's notice or something, that's why I want the cross-platform toolkit to inplement it out of the box, this way there won't be major UI or architectural changes I'd have my app to undergo when or if I eventually get a mac and the required tools and the appstore interface becomes usable, as I herd appstore connect is inaccessible, or you don't need that to deploy to the appstore, I DK, but that's O.T.
About if this should be cross-platform or not, actually, that exact same question I posed my self too, that's why I created that thread about xf some time ago, then the first doughts about the framework begun to creep in, and then I suggested supporting each platform separately, even though in c#. Well, every miner change, as you said as well, would have to be transcribed to all 4 or 5 platforms, place where bugs could readily occur btw.
Well, about the callbacks and coroutines, the c# lua binding allows lua functions to be registered to a .net event, delegate, etc. So, if we take the example of winforms, we can have a lua function be called when a button is clicked. This is done by simply hooking the lua function to that event. Well, a lot of reflection happens there at runtime, behind the scenes, as well as code generation, but I think it's worth it if one has to deal with callbacks and .net events in lua very often.
Well, nope, I think I know where you're coming from, no, I'm surely not trying to port bgt to the mobile realm or something like that. OK, let me tell you now where it all started.
So, a question first, since it has a great thing to do with the story. So, have you ever played code7? If so, you must remember the muffin levels. If not, read on.
So, somewhere along the game full of fun and otherwise not really fun challenges, one of them sparked my interest, not in the fact it hasn't been done before since I think the sighted have a lot of those, but in the way it was inplemented for us.
So, there were areas in the game where you had to go down a shaft or similar to press a button, such disarming security or some other uses, like stealing data through the network traffic inside the building, etc. For that, you'd use something called muffin, it's basically a programmable drone that follows your instructions to the leter, so instead of remotes and such, you'd write a program in advance to carry out that particular task/solve the particular puzzle.
So, once you enter the shaft, you can explore the area, those twisted passages that form a labbirinth the exit of which is the successfull completion of that puzzle. As programming constructs, you don't have functions or classes or such, but you have if, while and I think that's all. So, if you have a long passage that, let's say, only curves to the right and each curve is blocked by a button that, when pressed, would reveal more of the passage, unblocking the way till the next button, you could write something like
while(no_wall_ahead)
{
go_forward
if(no_wall_right
{
turn_right
}
if(button_here)
{
press_button
}
}
Something like this, anyways. This is kinda simple, however things get very complicated very fast, for example the wind that spins the muffin randomly every three muffin movements, the training pits you have to go around since you can't pass through them, etc. Plus, the language actually gets kinda debugged, since sappi is speaking each line of the program as it is being executed on muffin, so you know when it went back through the while loop, when it entered an if statement and when that branch got skipped due to the condition being false, when the program ended, etc.
However, code7 is a huge game in my opinion. So, one has to learn many game-specific terminology and mechanics only to complete some of the other puzzles, adding muffin and programming to the mix won't do anything but frustrate or overload the user, that's why someone gave me their save and said, fuck it, solve it, I DK how or something like that. No wander all the solutions to the critical game muffin puzzles are publicly posted on the game's discord somewhere.
So, I thought, if this is fun even as a minigame, why not make of this idea a fullly fladged game or something, to help people to learn programming even more interactive and with more fun. I mean, sighted get scratch for free, why don't we?
So, this app isn't a kind of bgt layer abstraction or whatever else, it's more of a super interactive tutorial on the basic concepts of programming.
So, there should be exercises with various levels of difficulty, and they should be interactive too, meanning that you get points if the program is giving out right answers. The concept is explained with code examples one can run and understand at one's own pase, plus there could be line by line explanations, even linking back through the tutorial if the line refers to previously learned concepts.
Then, a bonus this does whatever to your device bit of fun is presented every chapter end, for example, this is the function that makes your device vibrate. Now, with what you learned about random numbers and variables, write a program in the interactive box that displayes a random number between 1 and 6 and then makes your device vibrate for that amount of seconds.
Now that I think more about it, the way I would imagine it being structured is kinda like the talkback tutorials, even though with a bit more music and sound effects and some other elements of fun. This is prymarely aimed towards a younger audience or one that gets impatient soon, otherwise they would start as many people did and still do, with beginner books, maybe some videos, courses and examples. However, this might appear too boring or time-consuming for some, so this is where this weird app idea will come in to play.
Now, I tryed to explain this the best I could, does it make more sense? Am I reeching too big here? I think a bit, but yeah. Should this be cross-platform, or be made for every platform I want to support specifically, what do you think? Is there even a point in attempting such a thing as I'm invisioning?