6 ms·
BASIC gaming-dev app for iOS
- jdmoreira 10y agoI don't know if OP is the developer of the app but I would be interested in knowing if they wrote their own interpreter. I've done a minimal BASIC interpreter in swift as fun project - https://github.com/jdmoreira/foobarbas https://github.com/jdmoreira/foobarbas it would be cool to discuss specifics and compare the implementation.
- gattilorenz 10y agoI'm not, sorry. Just discovered the app and thought it's a lovely idea
- reustle 10y agoThis is pretty cool, but how many people are actually going to want to learn BASIC just to build games in this app?
- ferdbold 10y agoOh god, this is like programming on your TI-83 in math class for a whole new generation. :D
- mysterydip 10y agoNeat idea, but doesn't it run afoul of Apple's allowed apps? I seem to recall something similar that was taken down for allowing "dynamic programming" to be done. Maybe the limitations imposed by the language limit the scope enough? I could be completely off the mark, maybe I'm remembering wrong.
- jdmoreira 10y agoThey removed that clause a few years ago :) You can now load code at runtime as long as it's sandboxed. JS inside a UIWebView, for example, is widely accepted.
- mysterydip 10y agoOh, excellent! Good to know, thanks!
- greggman 10y agoCan you point to where they removed it. AFAICT it's still in full force. Your example of JS inside a UIWebView is true but anything else is not. The only allowed code loaded at runtime has to be either (a) already in the app or (b) executed by a WebView. In other words you can't execute downloaded code in BASIC unless that BASIC is implemented in JavaScript running in a WebView Is your app doing that? From the current (as of 2016/10/16) app guidelines 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other iOS, watchOS, Mac OS X, or tvOS apps. It's also more explicit in the developer license dated 2016/9/21 3.3.2 Except as set forth in the next paragraph, an Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exceptions to the foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.
- tluyben2 10y ago> provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store But does this part not prevent all coding apps? As any code will change the intended behavior of the app simply because you cannot describe behavior of something Turing complete that can be loaded from the web and be changed online?
- TazeTSchnitzel 10y agoSimilar in spirit to Pico-8 (desktop), or Petit Computer (DS)?
- copperheart 10y agoIt's deja vu of the classic TI99/4a, complete with the wonders of GOTO and GOSUB! What great times. Hunt the Wumpus, anyone?
- int_19h 10y agoI really wish this myth of "if it's a beginner language, it must be a dialect of BASIC" would die out already. Yes, BASIC was designed to be a language for beginners. And yes, it actually delivered - in the age when "serious" stuff was written in Algol, PL/I and FORTRAN. Things have changed a lot since then, though. And there are so many better choices for a beginner PL these days, there is absolutely no reason to go for BASIC other than nostalgic value - which, to a newbie, means nothing.
- sdegutis 10y agoRight. Even a "slimmed down" version of JS would be suitable for beginners.
- int_19h 10y agoI was thinking more along the lines of Lua and Python. JS would need to be significantly reworked to be a good beginner language, IMO. C-style syntax is not the most readable option, and then there's all the weirdness around types and implicit conversions, strange and non-intuitive design of built-in data structures (object vs array similarities and differences, for example), and weird variable scoping rules. Lua has pretty much everything that JS has that is worthwhile, but done better (e.g. the only data structure is an associative array, but they all behave the same unless and until you start to customize them). Syntax is more natural and easier to explain, too. Python is nice in that basic programs are as short as they need to be (i.e. you don't need to import packages or define classes to print "Hello, world"), but it does have the concepts that mainstream "grown up" languages have - the aforementioned packages and classes, for example - and they can be gradually introduced and explored one at a time without distractions. Also, turtle graphics out of the box - still the best way to explain things like recursion, IMO. So, you get a great teaching language, and it doubles as a great general-purpose programming language for serious stuff once the teaching is over.
- pjmlp 10y agoBasic at least has compilers to native code, while being beginner friendly.
- cyberferret 10y agoNice. Brings back memories of one my first ever computer books I bought circa 1980 to learn programming. Cut my teeth learning how to build games in BASIC using this book [1] [1] - http://bitsavers.trailing-edge.com/pdf/dec/_Books/101_BASIC_Computer_Games_Mar75.pdf http://bitsavers.trailing-edge.com/pdf/dec/_Books/101_BASIC_...