Spherical forums

Sphere Development => Sphere General => Topic started by: N E O on December 02, 2015, 02:40:33 pm

Title: Future of Sphere: Python, acquire ika?
Post by: N E O on December 02, 2015, 02:40:33 pm
minisphere is fast becoming our de facto Sphere-compatible engine standard, and once a review/audit is done re 1.5 and 1.6 compatibility I'm almost certain to declare it the new vanilla Sphere. One of its key features is its plugin system, which is useful for all kinds of reasons.

We've previously toyed with the idea of adding support for languages other than JavaScript, and IIRC Beaker once compiled a test version of some 1.x branch that allowed Python as a scripting language (might have been called PySphere, almost certainly Windows-only). Those of us who have been here for a while know of and remember ika (https://github.com/andyfriesen/ika) as the premier open-source Python-based game engine, and there has been overlap in users (notably WIP and sdhawk, among others) and even code (ika used Corona and Audiere like Sphere). ika is essentially dead and archived, though Verge (http://verge-rpg.com) still technically exists and now uses a lua API along with its proprietary VergeC.

We have support for CoffeeScript through a transpiler script, but something like Python or lua would essentially require a full-on implementation to retain speed, though a Python-to-JS compiler (http://pyjs.org) does exist (mainly web JS, but it's open-source (https://github.com/pyjs/pyjs) so we can modify that as needed) until we reach that point.

There are two main questions this topic is meant to address, and the existence of two more questions are dependent on the outcomes of the first two.

Do we want to move forward with adding support for another language, specifically Python, to a near-future version of (mini)sphere?

If we choose to add Python, do we attempt to accept stewardship of the now-defunct but still open-source ika and fold its API into Sphere's Python implementation (either as a compatibility script or built into the Python bindings), or do we simply choose to provide only the (mini)sphere API with Python bindings? I'm pretty sure we can also come up with a way to automate synchronizing the JS and Python API bindings as needed.

The extra two questions are basically the same thing but with Verge API and lua, though the stewardship bit with Verge might not be necessary due to Verge still being active.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Flying Jester on December 02, 2015, 03:31:05 pm
I think that IKA dying is a sign that there really isn't a market for such an engine. Not that there isn't a place for Python-based games, but that a standalone engine that uses Python is a bit unnecessary.

Python itself is strong enough to be its own engine, since it not only has a canonical implementation that is properly cross-platform (Node.JS doesn't cut it there!), and utilities like pygame and the incredible array of bindings for python make an engine embedding it for these purposes a bit redundant.

I think a better approach would be to make a sort of Sphere library with C bindings, and wrap that in python bindings. Sphere-for-Python, rather than Python-in-Sphere.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Fat Cerberus on December 02, 2015, 10:23:35 pm
I actually never realized ika used Python, for some reason I thought it used a custom C-like language.  I'm probably getting it confused with Verge.

I want to try that Python-to-JS transpiler now.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Flying Jester on December 03, 2015, 01:01:00 am

I actually never realized ika used Python, for some reason I thought it used a custom C-like language.  I'm probably getting it confused with Verge.


That was Verge, which had VergeC.

Fun fact. Despite being more similar to ika, Sphere was actually more inspired by Verge. Hence, there was originally a custom C-like language for Sphere, too.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Fat Cerberus on December 03, 2015, 01:09:24 am
Hm, interesting.  That probably explains the decision to use JS, as its grammar is very much C-like (even if the language as a whole is very much NOT :) )
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Flying Jester on December 03, 2015, 01:13:06 am
I suspect it also helped that Chad Austin was interning with Netscape at the time, too.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: N E O on December 03, 2015, 02:57:04 am
I think Verge and OHRRPGCE are the only open game creation engines/environments still active that are older than Sphere?
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Flying Jester on December 03, 2015, 03:58:20 am
I thought that Verge died. That they finally fell silent a couple years ago.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Fat Cerberus on December 03, 2015, 11:03:31 am
Yeah, it looks like the last post on the Verge main page is from early 2013.

OHRPGCE was neat in its day, but I never saw it as a serious game development tool.  I view it as an advanced toy, in the same league as recent versions of RPG Maker.  Considering the initial versions were made in QuickBasic, that really isn't a surprise though. :P
Title: Re: Future of Sphere: Python, acquire ika?
Post by: N E O on December 03, 2015, 11:49:00 am
Wait, so Sphere is the last surviving open game engine from the late 90s?

I believe, even if only for posterity, we should figure out how to acquire ika and roll out basically minisphere but using Python and the ika API (so, minika?). Even if it doesn't necessarily revitalize the ika community at least all those old ika projects (and that one awesome tool that WIP was writing to edit databases for ika) could run on modern Windows, Mac, and Linux afterwards.

If this proves successful we would consider taking a run at Verge later, considering the website still exists and its forums are still technically active. Not yet sure about OHR, considering that API-wise it might be too different from Sphere.

I never really got into PyGame because I felt ika was the closest thing to Sphere that used Python for its scripting language and PyGame just didn't feel right.
Title: Re: Future of Sphere: Python, acquire ika?
Post by: Fat Cerberus on December 03, 2015, 12:15:33 pm
According to Wikipedia, OHRRPGCE's development status is still "Active", although the last stable release was in 2013.  Verge is in the same boat as Sphere it seems, there is no Wikipedia page for it.

But yeah, it seems we're one of the very few engines that's stood the test of time which is saying something considering Sphere predates Windows XP.  Although I have a feeling that, had it not been for minisphere, we probably wouldn't have been able to hold on for much longer either.  The vanilla engine is really beginning to show its age and is quite creaky by modern standards.

I'll have to look at how difficult it is to embed Python at some point.  minisphere came together as fast as it did because Duktape is ridiculously easy to embed, even a trained monkey could do it.  As it apparently takes much of its inspiration from Lua, this isn't that surprising.