Question about VB

I'm just curious.

Is there a way for Quest to completely remove VB and replace it with another coding language to make Quest available on all platforms? Or is this not the only problem?

I ask because although Windows is used by like 96% of the world and most of the other platforms like Mac and Android are the other 4% ---it would be nice to be able to play games on all platforms.

Thanks in advance :)

Anonynn.


This would basically mean rewriting the engine from the ground up. It's not just a case of translating commands to their equivalents in another language, because different frameworks are structured differently.

In theory, all you need is someone willing to put in a hell of a lot of grunt work writing new code. But it would take a long time; and then there's always the chance that something doesn't work right. A significant chunk of Quest's underlying code is a tissue of bodges and patches overlaid onto each other (get input and wait specifically come to mind). And a lot of these features aren't properly documented, so it would need to be done by somebody with good problem-solving skills, and also a good knowledge of VB/C# in order to understand the original code.

I've thought about attempting it; and I'm pretty sure I could do it; but it would likely take a very long time, and I don't work well under pressure (at all). I'm pretty sure I could rebuild it entirely in Javascript, apart from unzipping the .quest files. (There is a javascript implementation of the zip algorithm, but it's slow and unreliable; and depending on the player's browser settings it's likely to run out of memory on games close to 20MB (because different browsers set different limits on how much memory JS is permitted).

I believe that Quest 6 is being built entirely in JS, but that's a new engine which shares a lot of Quest's commands. So porting your game to it would mean learning a new language and then rewriting all the code you've already got. (Somebody correct me if I'm wrong here?)

In fact, the problem isn't even VB. Most games or software created for windows can be made to run on BSD or linux with abstraction layers like Pipelight, Mono, or WINE. The reason this doesn't work for Quest is that it's built around WPF ­(a system to make window layout easier), and WPF is pretty much used by the toy projects that programmers make while they're learning the language. If you ask on the WINE forums about getting WPF support on linux, they immediately know you're talking about Quest because it's about the only released software using it.

Anyway, I'm rambling.
I've started rebuilding Quest in pure javascript. I've got the XML parser, object model, and the bare bones of an IASL syntax parser. But that still means I need to write all the built-in commands (including low level stuff like if), as well as the framework to select, download, or unzip the published game file. It's a big job, and I'd estimate I'm at something like 3%. That's something to work on next once I've got SaveStateLib working.


Hasn't Pixie already made a lot of progress with Quest 6 in JS? Maybe you could coordinate with him.


Hasn't Pixie already made a lot of progress with Quest 6 in JS? Maybe you could coordinate with him.

As far as I'm aware he's treating it as a new platform. It will not be possible to play or convert games from older versions of Quest.

My objective is to provide a 'way forward' for people currently using Quest without causing a flag day; I'm not really interested in switching to a new engine, even if it shares many of the same function names.


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums