I've worked out a mental image of the program structure.
Not that it's important from a user perspective, but I'm basically going to use seperate files (modules) for each functionality.
As far as the interpreter is concerned, I believe I have thought of a good way to handle that.
It will take a while to program though...
Related to the interpreter, I have come up with an interesting thought.
It appears to me that the transition between frames has an effect on a bot's variables that could be represented (with the exception of external stimuli) by something like an excel sheet filled with formulas.
It might be a stretch, but I think I may be able to design an interpreter FORMAT, meaning different formats could represent different versions of darwinbots, or different settings.
The same can also be applied to the sysvars, although I'm also thinking about trying to parse them from the wiki to ensure they are up to date (maybe a file override of sysvars could be allowed as well...)
If I do get a working format for the interpreter, we may want to consider integrating it into darwinbots (since we certainly aren't overwhelmed by the amount of settings it has right now
)
This would make tweaking the behavior and balance of the program much easier to do.
Now that I think about it, I wonder if it is possible to treat bot-code as a programming language (and as a result, I could make a higher level language that compiles into bot-code...)
I'll play around with that idea a bit after I get some of the other parts coded (or when I can't control my ADHD any more and it forces me to think about it
)
If anyone can point me to information about how I might query the wiki, it would be greatly appreciated.
As it is right now I can only really display the full page when attempting to provide tool-tips, and without being able to retrieve any actual (read: useful to a program) information, I can't really provide any auto-complete features without hard-coding (or locally storing) all of the related information.
Information in this case refers to: valid keywords (add, sub, mod, etc.), the list of sysvars (and their numbers), the usage of keywords (number and order of arguments), etc.
I'll stop at that for now.
As always I will keep everyone (well-)informed.