Monkey v GLBasic

Monkey Archive Forums/Monkey Discussion/Monkey v GLBasic

Dabz(Posted 2011) [#1]
Right, before anyone continues, I havent paid $120 to be banned.

I've built 2 games in GLBasic, both times I've wrote code that works exactly as planned.

GLBasic has now released code that runs on Android too...

I'm not going to beat about the bush, my GLBasic->Win32->iOS->Android all acts the same... Granted, I had a minor music encoder thing to fix.... What I want to know is, and the biggest issue of them all... Is... Will Mojo act the same for every platform?

If I write something in HTML5, will it work.... EXACTLY... In say, Android?

*Be carefult, I have tested... and I need a reliable source, unoffical modules dont count on this!!!!


slenkar(Posted 2011) [#2]

Hima(Posted 2011) [#3]
There are some features that will not work in some platforms. I don't quite remember but something that has to do with audio will work differently in Flash.

Other than that it's pretty much the same as far as I have experienced. HTML5, GLFW, Android, Flash and iOS works exactly the same for me. I haven't tried 360 yet.

But really...isn't this the goal of Monkey? Would be weird if they aren't exactly the same, no?

MikeHart(Posted 2011) [#4]
Well, if you have tested, like you said. You should know already. So what's your point?

JD0(Posted 2011) [#5]

Monkey is really a completely different beast from GLBasic.

A few things are slightly different (eg. line drawing, audio format requirements), and you will of course have to adjust graphics for different screen sizes etc, but essentially things are almost exactly the same.

Monkey is also different in that it converts your code into C++/Java/C#/Flash/Javascript code rather than compiling your code directly (while I haven't tried GLBasic other than the demo, I assume that your GLBasic code gets compiled directly). Your code gets converted into projects that you can edit in Xcode, Visual Studio, etc. which gives you a lot of freedom for extension and modification. Also, if you work for a client that requires native source code you'll have it right there.

There's also no cross platform 3d graphics module for Monkey.

muddy_shoes(Posted 2011) [#6]
>I'm not going to beat about the bush, my GLBasic->Win32->iOS->Android all acts the same

That's interesting seeing as GLBasic Android support isn't finished yet as far as I can tell from the forums. Exactly how much testing of this have you done?

I'm with MikeHart in not really understanding your point here. With any cross-platform SDK/library/engine or whatever the objective is obviously going to be to abstract the underlying platforms and create a consistent layer to develop on. On the other hand, I can't believe that any such endeavour will produce _exactly_ the same behaviour across platforms that vary to the extent of those supported in Monkey -- just draw a circle and you'll see differences in rendering, for example. Compromise is inevitable.

MikeHart(Posted 2011) [#7]
I am sure he knows exactly what the differences are. He just wants to mention that other programming language another time. ;-)

Xaron(Posted 2011) [#8]
I have GLBasic too and it's a complete different beast.

If you compare how long Monkey is there compared to GLBasic then I'm always amazed about the possibilities Monkey already has!

Sammy(Posted 2011) [#9]
Monkey has a superior language but GLB has 3D, I am sure this will be remedied in the future though. IMHO it needs to be to compete.

Platform compatability, as far as I have tried, Mojo has been just fine, a little quirky but nothing to write home about.

Gary Leeds(Posted 2011) [#10]
The documentation on GL is in my view far superior than what is included in Monkey. Monkey assumes the end user knows a lot of things. I am just trying to get a list of all the commands so I can have a printed ref manual rather than looking up the onscreen docs all the time and as an example I give you this


The map module provides support for the map data structure.

A map is a container style object that provides a mechanism for associating key objects with value objects. 
This is done using Node objects that contains a reference to both a key and a value, along with information 
about the node's location within the map.

Each key in a map occurs exactly once - setting a key to a certain value overwrites any previous value that 
may have been asspociated with that key.

Maps are very efficient, and can handle inserting, removing and finding keys in 'O(log2)' time. That is, 
the time needed to insert, remove or find a key is proportional to log2 of the number of items in the map.

Now to someone new to Monkey like myself this is just total gibberish, there are very few code examples within the documentation. GLBasics help is much better in this respect, everything is easier to read and therefore quicker to learn.

I hope very soon there will be an "idiots guide" to Monkey which will rectify this issue


Xaron(Posted 2011) [#11]
Well yes but GLBasic is a collection of commands where Monkey is a much more complex language. I doubt that GLBasic can compile is self compiling for instance. Give it some time to mature...