What?
We live in a world of divides and mostly have-nots and few elite haves who enjoy technological supremacy and financial might. CCN Studios’ main mission has been to level the playing field for humanity’s education, for all human beings, all peoples and with any means and budgets.
In doing so we discovered that while the adults live in remarkably different communities, the youth live in one singleton `space` namely their mobile phones. Therefore CCN Studios set out to Democratize Education on all mobile phones for every member of the human race.
Finally we gathered all our strength to Educationalized Gaming platform for anyone anyplace with any economic circumstances who wishes to Play & Learn Lots!
To start we decided that our gaming engine should be that of Unity which we felt shared our democratic views of technology however at gaming side.
Why?
Almost immediately we were faced with insurmountable programming challenges in game development and inclusion of educational content on Unity platform. Not so much challenged to developed games but challenged how to let an average person anywhere in the world who is interested to develop their own Educationalized gaming, to pick up the pieces and build Unity applications. The outlook of such mission was utter failure!
For started most youth around the planet have no access to souped up desktops and broadband Internet to even run the Unity Editor! And many are plagued with intermittent electricity supply.
Even if the designer had the proper computing gear, the Unity’s impressive C# scripting language requires substantial amount of one’s time and commitment (over a year) to actually learn how to develop a dink of a little game, hence the impossible steep learning curve.
At times we strongly felt our mission was doomed to fail unless we came up with a revolutionary idea in programming technologies and we came up with the idea rather fast!
It was patently clear on all fronts that if there was a solution it had to be a spoken language or loose language phraseology of some kind.
How?
We borrowed a page from Wolfram Mathematica’s playbook, so to say, by developing Programmable Free Form Natural Language custom-Grammars (English only).
We quickly learned that one such a grammar would not suffice, we had to develop many customized micro-grammars and somehow form an ensemble to parse and interpret Free Form programming expressions.
We called such ensemble Grammarian.
A Very Cloudy Platform
Since hard linking external programs was out of question and since manually adding code to Unity at Editor level was also not possible, then we had to devise a cloud based platform that had complies and interpreters which generated interim code and over the Internet Streamed the computations to live Unity games and vice-a-versa Unity live running games Streamed back data to this cloud.
At the time of writing this document we are using several cloud solutions the noteworthy which runs the computational geometry and some of the Free Form interpreters is Wolfram Cloud (Wolfram Application Server).
No Single Central Design
To be true to the Free Form verbiage FF will not be based upon a rigid foundation of a single design as are other programming languages. Indeed it is FF’s mandate to deliver a loosely tied and large collections of Natural Language grammars in order for the new language remain extensible and easily mutable.
Reasons for this design decision will be more and more patent as the language grows. But to keep the programmers of FF well informed a simple example suffices.
There are many other languages, not necessarily formal programming languages, which are of immense important to be included in FF faithful to their original grammars and semantics. For example L-Sys or
Lindenmayer String-Rewriting System [H] which is based on certain grammar to replace/rewrite tokens and functions:
(F → F+F−F−F+F)
FF must allow this grammar in no lesser way than its own native grammars.
C# interface: Animation inner loop methods
In order to create realistic and realtime programmable interface to Unity’s platform we also had to innovate a way for the Grammarian to interface and communicate with Unity’s Update() and FixedUpdate() methods.
Currently we have a solution that addresses the inner loop methods which are executed at each frame of Unity’s task scheduler. But ideally we need a better compiler solution to further automate the interface from the Free Form expressions to Unity methods.
See Also:
Lindenmayer System
https://en.wikipedia.org/wiki/L-system