Good and Bad Points about Monkey X?

Community Forums/Monkey Talk/Good and Bad Points about Monkey X?

Hotshot2005(Posted 2014) [#1]
What your good and bad points about Monkeys X you have used?


GfK(Posted 2014) [#2]
Good points:
1. It's a lot like Blitzmax.
2. Lots of targets.

Bad points:
1. It's missing basic functionality, i.e. no access to image data/pixmaps.
2. No native collision code whatsoever.
3. Figuring out what to install to get certain targets to work.
4. Stuff that works on one target, doesn't work on another.
5. Still needing a degree in XCode to patch up all the stuff Monkey *doesn't* do by itself.
6. The IDE is ultra-basic - no good for a case-sensitive language.
7. Possibility of finite/short-lived support.
8. Poor documentation.


degac(Posted 2014) [#3]
good points:
1. it's a sort of BlitzMax v2
2. more OOP (if you need it)
3. many (too many??) targets
4. community
5. once everything is installed, the 'mantra' WRITE ONCE, RUN EVERYWHERE is quite 'good'... (I tested on HTML5, FLASH, Android... no desktop or Iphone)

bad points:
1. case sensitive language (if you don't provide the RIGHT tool (=IDE) the language is ... frustating
2. many targets means ... low specs/features
3. documentation (but this is a 'BRL's feature')


The 'possibility of finite/short-lived support' is nothing about the language itself... even BlitzMax has the same 'risk'.


GfK(Posted 2014) [#4]
The 'possibility of finite/short-lived support' is nothing about the language itself... even BlitzMax has the same 'risk'.
I know what you mean, but there is a WORLD of difference between Blitzmax and Monkey. Monkey NEEDS ongoing support right now to address all of it's shortcomings, of which there are many.

In my opinion - whatever that's worth - Monkey should never have existed. Blitzmax should have been given additional functionality to add support for other platforms. You can't keep hopping from brand to brand then wonder why sales are through the floor.


*(Posted 2014) [#5]
I'm with GfK on that one, if brucey can add functionality to get stuff onto raspberry pi then why not add targets to max?


skidracer(Posted 2014) [#6]
You guys should also consider the output of the community, some monkey developers have been rather successful and many many many more seem to have overcome having to implemenent UI and basic game engine features such as box2d to release a considerable volume of stuff.


Matty(Posted 2014) [#7]
I found Monkey was okay but a bit limited in what you can do with it...I mean more than simply 2d/3d. I found that coding in straight java I could get a lot more done, a lot more easily and with a great deal more control over what I wanted to do.

I've written a few things that could have potentially been done in monkey (android apps and a javascript html5 game) but I found them far easier to code in the relevant native languages.


*(Posted 2014) [#8]
I'm not knocking monkey but as others have said max can do so much more currently it would be nice if the same functionality can be readded to desktop targets after all things like screen resolutions etc arent a major issue on tablets.

We would need things like image manipulation, loading from data, possibly a way to have big predefined arrays not kill the translator.


therevills(Posted 2014) [#9]
Good Points:
1. It is really BlitzMax v2
2. Generics
3. Interfaces
4. Properties
5. Popular targets supported
6. Community
7. I can create my own target
8. I can hack the code
9. Case sensitive
10. Alternative IDEs

Bad Points:
1. Lowest common denominator target features
2. Documentation
3. Ted (IDE)
4. Some un-needed targets (but still cool)


degac(Posted 2014) [#10]
@GFK
I agree. An update to BlitzMax (call it 2?) with the new OOP features, some new targets (Android, Ios, HTML5 and Flash) will fill the gap (with the all knows limits - ie: some mod cant' be rewritten to same targets and so on).
But of course this is/was a BRL decision, no matter what I/we think about it.


@Skid
One point in favour of Monkey: it's still young and 'extensions' can't be compared to all the mods available for Bmax today. In future maybe we have a different situation.

@Another cons

MonkeyX IS game oriented.
You have no official UI access (like MaxGUI). So the potential of the language is still limited...and thinking the worst if Mark decide to stop developing of Monkey I think this will never be filled (hoping in the community is not ever a good choice)


Brucey(Posted 2014) [#11]
MonkeyX IS game oriented.

As is BlitzMax.

So the potential of the language is still limited

C/C++ doesn't have a GUI, yet one cannot say those languages are limited.

However, Monkey is *just* a language. There's nothing stopping one adding whatever facilities on top of the language to provide whatever features one needs.

Meh :-p


*(Posted 2014) [#12]
However, Monkey is *just* a language. There's nothing stopping one adding whatever facilities on top of the language to provide whatever features one needs.

So true ATM I'm coding a GUI for my editor ATM using monkey this works on android etc as well :)

As you said it doesn't matter the language you can add anything to any language if you put your mind to it :)

I still would like a easy way to adjust Desktop resolutions and depth and toggle between full screen and windowed modes, maybe inbuilt into the Desktop target :)


mjcamerer(Posted 2014) [#13]
Good Points:
1. Many Targets.
2. 'Write Once, Run Everywhere' from my experience works 95%. Small tweaks are sometimes needed for specific targets.
3. Language is a step up from BlitzMax. Better OOP. More organized.
4. Ability to add any native code I may need directly to my project and have it instantly work inside Monkey is huge plus.
5. User created targets.
6. Modular. Many very easy to use modules. Box2D, Autofit, FontMachine, etc.
7. Included 2D graphics 'Mojo' framework works great and is fast.
8. Very small filesizes compared to other game creation software.
9. Classes, Inheritance, Reflection, Generics.

Bad Points:
1. Setting up all targets can be a pain, but you only need to do it once.
2. "Lowest common denominator target features" as therevills mentioned.
3. The included default IDE is not the greatest.
4. Documentation could use work.

I exclusively use Monkey for games now. Monkey is really great for a hobbyist like me. I have a job outside of programming or anything computer related so I definitely don't make a living off this. However I have released many small games to the android app store and make a decent amount of extra cash. I don't advertise, rarely release updates, don't need to ever contact anyone or negotiate deals or anything. I simply release and make continuously make small amounts of money for doing absolutely nothing. While I loved BlitzMax, I never made money from it. With Monkey I have recouped everything I've spent on all Blitz products and bought a new PC. And I put in much less work than I ever did in BlitzMax.

EdzUp, I am not sure when the last time you tried Monkey was, but there has been support to change Desktop resolutions and toggle fullscreen and windowed modes for quite some time on the Desktop and XNA targets. Simply use the SetDeviceWindow( width, height, flags) function. There is also a DisplayModes() function to get a array of valid resolutions. I used these commands in my latest game and it works great!


MikeHart(Posted 2014) [#14]
With Monkey it is important to study the release notes all the time to make sure you don't miss important changes or additions to the modules.


*(Posted 2014) [#15]
EdzUp, I am not sure when the last time you tried Monkey was, but there has been support to change Desktop resolutions and toggle fullscreen and windowed modes for quite some time on the Desktop and XNA targets. Simply use the SetDeviceWindow( width, height, flags) function. There is also a DisplayModes() function to get a array of valid resolutions. I used these commands in my latest game and it works great!

Apologies I must have missed those I'm using 77f ATM, yes Star Rogue is coded in monkey using minib3d and ATM it looks loverly. I'm working on the editor ATM which is moving forward slowly (due to free time issues)


Blitzplotter(Posted 2014) [#16]
@mjccamerer, that is really interesting. I might get monkey installed on a laptop soon for some monkey dev.


TeaBoy(Posted 2014) [#17]
Probably no one cares about my opinion but I love Monkey!


*(Posted 2014) [#18]
I like monkey but as has been said before the vanilla package has way to many pitfalls that people who just want to learn the language can fall into.

Things like:
1) SDK download - yes I know other ides do this and third party tools are available but this should be in the download of monkey

2) config setup - once again the downloader for sdks should configure this

As GfK has said in the post on the general discussion the bleak financial situation that BRL is in doesn't bode well for future proofing monkey its this that is also helping the competition too. Yeah I agree BRL is niche but its got to get out there and get noticed for that its gonna need loads of polish.


degac(Posted 2014) [#19]
Well, I still believe Mark should chnage his own business model, focusing more on existing products (see BlitzMax and the 'new future' Brucey is creating) than trying to support so many targets on Monkeys (and sell them as 'free').
We still have no answer after his blog post about 'his financial problems'. I know we have no 'rights' about this (Mark did the first 'error' publishing that post...), but for possible new customers (or like Gfk, for who is choosing a product for future development) is not a good behavior.

@EdzUp:
your point (SDK download and configuration) is something already said. I have no doubt Mark could create something in less than a day to resolve that (that is the FIRST - and maybe more frustrating problem for new Monkey's customers). I understand it's not so 'exciting'... but it's the 'first contact'!

(personal opinion of course)


*(Posted 2014) [#20]
Yeah I'm agree, its just the SDK and config hurdles are stumbling blocks for any programmer looking at monkey for programming. Don't get me wrong I'm using monkey to release version 1 of Star Rogue but as a seasoned coder I managed to sort the issues in the end, a beginner to the scene would have serious difficulty with it and that's the point, BRL has always relied on new customers if the current product is pushing them away its not a good thing.

I would love to see max get some decent updates but tbh I can't see that happening without brucey doing it as BRL seemed to have abandoned it. Yes the IDE is getting work maybe maxgui but tbh I can't see it being majorly updated unless brucey does it but then it becomes 'third party support' which will put some people off once again.


Blitzplotter(Posted 2014) [#21]
but as a seasoned coder I managed to sort the issues in the end, a beginner to the scene would have serious difficulty with it and that's the point, BRL has always relied on new customers if the current product is pushing them away its not a good thing.


How can this be resolved? I am a huge advocate of BRL products - I am still a strong believer that developing anything as an indie in 3D is hard to accomplish, but Blitz 3D still makes it gobsmackingly easy !!!!!!!. All the blah about 'but its not DX whatever' is hogwash. Oops, sorry for the rant, but I managed to make my own nintendo style-esque fort block that I could drive my own articulated lorry (which had a knight rider element to it).

I'm using monkey to release version 1 of Star Rogue but as a seasoned coder I managed to sort the issues in the end


I think that BRL, with their pedigree, are one of the very few companies able to achieve the goal of addressing the complexities of providing a product that can compile for multiple platforms.

I, suppose though - if BRL are interested EdzUp, if they were to get in touch about your slant on the issues you addressed yourself - happy days! I confess, my coding mojo is still there, but other life things demand my attention at the mo.


*(Posted 2014) [#22]
Well after hitting the wall hard with monkey after porting my NPC code over from unity the errors in some areas of the monkey development are not worth my time to try and fix, yes I always try to support the underdogs but I have to look at as GfK put it future proofing myself as time is very limited these days.

So with this in mind I'm going to go with the unity version as I can develop that quicker and more better using unity.