Why Monkey?

Monkey Archive Forums/Monkey Discussion/Why Monkey?

Aman(Posted 2011) [#1]
I am giving a little talk about cross platform development in general and my experience with monkey. my partner is also doing a comparison between monkey, ShiVa, Torque, Corona, Unity, and Cocos2d.

I have these three question in mind and believe getting some answers from this community would help me

Why did you choose monkey?
What are the features you like the most about it?
What do you miss the most in monkey?


GfK(Posted 2011) [#2]
Why did you choose monkey?
Because I've used Blitz Research products for more than a decade. Easy to use, reliable, and each is an investment.

What are the features you like the most about it?
Easy to use - familiar syntax, gets a lot of updates so stuff doesn't take long to fix.

What do you miss the most in monkey?
Two things:
1. Debugger
2. Render to texture


Aman(Posted 2011) [#3]
For me, I choose monkey because it met my requirement and it is the tool I felt most comfortable coding with.

I like the flexibility of monkey. You can add more features and targets that monkey does not support by default. It also gave me a chance to develop for XNA which is a target I did not any plans to try before. The license cost is also extremely reasonable compared to the others.

My wish list for monkey includes only three things:
1- GUI library (Buttons, sliders, etc..)
2- Network library
3- 3D


Aman(Posted 2011) [#4]
Thanks GfK. I never used Blitz products before. The only things I tried are Qt and Corona

+1 for the debugger.

Masking could be useful as well


ErikT(Posted 2011) [#5]
Hello.

Why did you choose monkey?

Same as Gfk; I've used blitz products before and the syntax is mostly the same.

What are the features you like the most about it?

Ease of use. Stability. Control; you can change or add anything to the translated source if you want to.

What do you miss the most in monkey?

Commands for setting resolution. Fast read/write pixel commands would be nice.


slenkar(Posted 2011) [#6]
ill tackle the question from the other angle:


monkey, ShiVa, Torque, Corona, Unity, and Cocos2d.


Shiva and Unity are hard when it comes to 2D games
Corona only has 2 platforms
cocos2d only has 1 platform

I think monkey is the only one that supports Flash

The monkey language is very good, with quick development.


MikeHart(Posted 2011) [#7]
Being a Blitz user since 2002 the choice is almost natural. 2 years ago I discovered first Cocos2d, than GLBasic and after that Corona. I beta tested Monkey and also got AGK when it was released. While Corona and AGK support more functionality out of the box, it is the language of Monkey and the flexibility to add more stuff to it yourself, that makes it a winner for me.

Also testing is very easy.

What I miss?

-File support for IOS and Android
-Good network support
-Database support
-Maybe a debugger, I am not sure.

I could add this myself, but I am lazy, :-)


AdamRedwoods(Posted 2011) [#8]
Monkey was born from BlitzMax, as BlitzMax was born from BlitzBasic.... I've sen the Blitz basic language go through several iterations, and it just gets stronger WITHOUT sacrificing simplicity. To me, that is the best in software design. Monkey has a simple syntax but offers powerful extensions to that base set (interfaces, generics, templates).

Not only that, but it offers the compiling and linking shell, which is very important to me. I dislike command-line compiling. Abliet, it was very difficult for me to get monkey's targets up and running, but after it was done, the iterations for compiling are very quick.

I still prefer BlitzMax, but the future is tablets and it's good to see Blitz/monkey keeping pace.

And above all, should another language take the computing world by storm (D2? :) ), Monkey is so flexible that it can adapt to it.


Aman(Posted 2011) [#9]
Thanks everbody

slenkar, cocos2d is an opensource project with wide varieties. It does Mac, Windows, Android, iOS, and web applications (java+html). And the disadvantage is that you will need to keep track with different versions and in many cases you won't be able to use the same code for all targets. It can also be complicated and I don't like it but not nearly as complicated as Shiva and Unity.

AdamRedwoods, I totally agree with you in the last line.


Armitage1982(Posted 2011) [#10]
1) Because it's the logic way to follow in the Blitz languages, coming from Blitz3D & BlitzMax I, in theory, know I can count on this simple but yet powerful and fast language to achieve my goals without too much headaches. And today, one of them is developing 2D softwares for the iOS Market or mobile platforms in general. Monkey allow me to explore that new area without dropping desktop platforms.
The language also correctly evolve to a point I can use and understand complex mechanisms of more advanced languages like C++ but still let me accessing more promptly and efficiently to the "design" part of my projects.


3) It depends but:
- Easily use C/C++ external library (way too hard for the moment, even with BlitzMax)
- A true debugger (even GLFW only would be enough)
- Render to texture !!!
- Most of the current missing basic features of BlitzMax in fact that may one day or another arrive like it's the case for reflection and the debugger.

I also choose Monkey because it has always been announced as a game oriented language (even if you can do way more with it).
So in a way it would be logical to found more specific games functionalities. Like :
- Vector
- Sprite
- Tile map
- Particles
- Texture atlas
- Parallax
- Camera system
- Advanced collision detection
- GUI
- Network support
- timing/tweening system
- Shaders support
- XML/Serialization
- FSM / AI / Pathfinding
- Scene management with transitions
- Physics engine (box2d)
- Batch/advanced rendering
- More math and specific algorithms

Once and for all.

I know you can roll your own (no doubts about it) but think a second how fantastic it would be to centralize all this and having a solid framework to rely on and officially talk about. Not just piece of bits that would stop functioning one day or another because a lack of support. Plus it's not because you have one of these features that it will easily fit your own framework.
I'm waiting a lot on Diddy or the Ignition framework from Playniax, because it would give a perfect start to advance to the point: making games.

But anyway there is 75% chances that I will roll my own because I learn some good stuff and would rewrite my already existing BlitzMax engine better from scratch with monkey IF only one day every basic modules are supported. Not the case for the moment...

But all in all, like BlitzMax, all Monkey is missing I think is a bit of time to get mature and great.


And as a side note, don't loose too much time on Torque2D.
Why not taking a look at Edgelib, Flixel, Polycode, Clanlib or AGK ?


Dabz(Posted 2011) [#11]

Why did you choose monkey?



Like most, I've used BRL products for a long time and know they are pretty solid at what they do... Though, I have used other languages, which are as reliable.

But, after playing with it, monkey has turned out to be a belter, really injects everything I probably wanted in a BRL language.


What are the features you like the most about it?



Language wise, almost all of it, no complaints, it lets me get on, not much faffing when in an IDE... One aspect I do love about the whole thing is Diddy, that's a gem and has saved me heaps of work moving/writing stuff that usually kills developing a game, with that, I've just set meself merrily away! :)


What do you miss the most in monkey?



Debugger and render to texture here too, but, since he's working on the former for one specific target (GLFW)... I'll let that slide... One of the big ones at the moment for me is config stuff, I'd like that sorted, picky yes, but, he's working on that too, so, I'll let that slide as well! :)

Dabz


Xaron(Posted 2011) [#12]
Monkey is just great because it supports more platforms as others.

It's rather cheap with a ONE time fee (not yearly costs like for Corona).

What I miss:

- debugger
- some native framework for normal apps (like calendars) which obviously would only be available for Android, iOS and Windows 7 mobile.


Goodlookinguy(Posted 2011) [#13]
1) Easy to start making games and, like BlitzMax, can easily extend code written for the native platforms. Also because it outputs to such a huge variety of platforms and isn't a scripting language.

2) The many mature language features it has while keeping some rather useful features for the lazy programmer in me at times. Especially the := operator. The almost forced modular design. Some of the functions from Diddy, like real milliseconds. Which would have been a miss in Monkey if Diddy didn't have it.

3) More important to me
- The ability to edit more than one file.
- Networking
- Having byte, short, and long
- Change the size of the screen at compile and/or run time
- Threading
- Some built-in database handling

Less important to me
- Debugger
- Reflection


Armitage1982(Posted 2011) [#14]
Something to add maybe : a good IDE !
The one provided is not enough.
Maybe it's time to think about official bonus with Jungle IDE if only it was cross-platform (at least PC/Mac and well... Linux maybe? Why not ^^).


Gerry Quinn(Posted 2011) [#15]
Cheap, flexible, fun. Works out of the box on a lot of targets. Good pedigree from Blitz Research - I know there will be support and a lively community.

What I most want is a debugger. I'm not using Jungle yet but it is there so I'm not going to complain about the IDE.

Also, I want lots of modules that do magic stuff I don't know how to do!


benmc(Posted 2011) [#16]
I chose Monkey because it builds to native code right on my own computer. I don't have to upload my code to a 3rd party that returns my build. Plus I have the final code that I can go into directly and tweak.

Second, the language is so easy to use. I don't have to know Java, AS3, CPP, AND Obj-C, JUST Monkey. It's a lot like basic, and I used to use Blitz a long time ago so I was familiar with it already.

As for what I would like to see:

- Networking functions.
- Some kind of SQLite database functions.
- More filesystem functions.


That's about it.


Aman(Posted 2011) [#17]
Thank you all. Many of these information are interesting and useful.

Armitage1982, I actually removed Corona since it is not truly cross platform. I added AGK and Edgelib instead.

Also, I want lots of modules that do magic stuff I don't know how to do!

+1. This is very important to me. I can stress that enough

benmc, which tools requires uploading the code and return the builds?