If you like I can e-mail you in the future when the article is out. There's contact info on my website: http://asivitz.com/cloudbreaker/
1) What I want to do is create apps that scratch itches I've had for years, and they're all outside of work, and even if there was something available off the shelf, I'd kind of like to be able to hack on it (have source), just for practicality and fun's sake.
2) I don't want these apps to be restricted to any one platform.
3) I never plan to monetize these apps.
You're right - if I was going in this to make money, it's a simple decision. Pitted against my time and potential revenue, a Mac + Developer Program is dirt cheap.
OTOH, I develop in Emacs and Linux for a reason, even when I'm developing software for Windows. Since investing in a Mac + Developer Program would be a net loss by definition, I'm looking for any way to still be able to make these apps available for iOS. Looks like Apple doesn't want that kind of hobbyist input to their ecosystem (and yes, while I'm a professional in that I get paid for same at the day job, I consider these apps as hobby projects).
A dictionary — being text-based, with very few animations, and no background soundtracks — avoided most of mobile-platform-specific issues.
It doesn't work so great on Android, but I wouldn't go so far as saying that every Cordova app is garbage :). For some apps it works reasonably well, for others simply doesn't work.
I'd love to be able to do this with ECL (http://ecls.sourceforge.net/) to build apps in common lisp for iOS (possibly android). I know about MOCL, but I'm a pretty cheap guy, so would rather stick to open technologies and do the work myself.
I'm not a scheme guy, but until you get a writeup done, would you mind posting any info you have on interfacing gambit with iOS?
Good work, and thanks for sharing!!
http://kriyative.github.io/tags/
I vaguely remember someone adapting it with an ECL to android cross compilation effort. Can't find that link now.
The LGPL license of ECL is something to keep in mind as you consider your options.
Good luck.
It's definitely not a 10 minute process, but shouldn't be too hard.
I think I also remember some projects popping up the Gambit mailing list to make all of this easier. It might be worth searching the archives.
((0 (73 84 92)) (1 (17 95 31)))
Where the 2 digit numbers are id numbers for the blocks. The single digit number to left of each row is the horizontal offset.
So, shifting a row, the most elementary operation in the game, just requires incrementing the offset.
Vertical shifts are done with a 90 degree rotation operation, then a horizontal shift, then a -90 degree rotation.
Sometimes traversing the lists is necessary, but the most common operations are fast, and then rest are fast enough.
The limiting factor in performance is definitely rendering, not the game logic.
The library situation in Gambit is.... very bad. Last time I tried it (~6 months ago) you had to compile from a different branch to get Blackhole to work.
Chicken Scheme has a much better ecosystem. It also compiles to C and is fast. Gambit is known for its speed so I won't say Chicken is as fast but it is "fast enough" and the ecosystem is worth the difference IMO.
It was somewhat tricky to get it all setup, but I followed in the footsteps of James Long (http://jlongster.com/s/jlongster-old/pages/blog/write-apps-i...) and a few others.
I hope to contribute back what I learned and make it easier for others to use it for games in the future. It's seriously a great language for game writing.
Is this an online source? I would love to see a compiler course by someone like Marc Feeley!
There are some lecture notes for the compiler class in French: http://www.iro.umontreal.ca/~feeley/cours/ift3065-ift6232/ Chrome automatically translated that resource for me.
Here is Feely giving a talk about a Scheme to javascript compiler: http://www.iro.umontreal.ca/~boucherd/mslug/meetings/2004102...
chm: Lucky... it would be awesome to do a compiler class in Scheme! Could you please tell Feely that some people on Hacker News would be thrilled if he made his lectures available online?
There's a basic explanation of the method in another comment I've written here though.
I needed a lisp to manipulate the puzzles, because they aren't based in a strict grid. It ended up being way more natural to program the block structures as lists rather than traditional matrices.
Gambit compiles the Scheme code down to C, which I can then link to Objective-C for iOS, or port to Android or any other platform that Gambit supports.