Best game library/framework API?

Monkey Archive Forums/Monkey Discussion/Best game library/framework API?

frank(Posted 2013) [#1]
A lot of people here write libraries, frameworks, and so on. However, there are 1000s upon 1000s of these already in the world. Some of them total crap, others very good. Now I'm wondering what API's people here like the best. And if you wrote a Monkey framework/library you might have based it on it, but why did you not copy it?

I for one believe that if you would just implement the Corona API in Monkey, more people would use Monkey. Same goes for other famous libraries. So what is the best you ever worked with in terms of productivity and robustness (API wise; I don't really care about the implementation).

For me; Cocos2d(-x), Unity, Corona. I'm checking out Cocos3d now for a client and it looks very nice as well.

Especially for Cocos2d goes that whatever you search online you'll find; someone did it and someone has an answer. If someone would implement Cocos2d on top of Monkey (massive task, but seems the ports were all done basically by one person) all would benefit from the massive API knowledge on the web while benefitting from the cross platform-ness of Monkey.

What do you think?


muddy_shoes(Posted 2013) [#2]
I think your effort should follow your heart and be behind your mouth.

Edit: On re-reading that it's rather unclear. I mean that your effort should support whatever comes out of your mouth.


frank(Posted 2013) [#3]
Obviously, you are right :) Just curious what people like here :)


MikeHart(Posted 2013) [#4]
Some of them total crap...
... What do you think?


As you already have a strong oppinion about things, why does that matter?

And adding to this, if I would wanna use Corona (which I had before, same goes for Gideros, Gideros), I would use it. I would not copy it. Same goes for Cocos2D or whatever other tool you have named here. Use the tool that fits a job the best.

I for one believe that if you would just implement the Corona API in Monkey, more people would use Monkey.


I disagree. Corona, Gideros, Löve, etc. are Lua based engines. LUA is a different kind of beast compared to Monkey. Also these tools have different concepts of creating the final app. The API/Function set of these tools are just that. You can recreate something like these in any kind of language. But the methology of LUA and Monkey differs a lot. LUA is typeless and Monkey not. You can add anything to a LUA object/table at runtime. I have seen "dangerous" LUA code on the Corona forums back in the days where it made my heart skip.
If you have started out with LUA as your first language, you will have some problems understanding the concept of a "normal" programming language and will find it limiting. Which it isn't.

My framework is based on my own ideas which are influenced by many tools I have used in the last 10-15 years. I have created several frameworks/libs before (for 3DGameStudio, IBasic Pro, thinBasic, Inhouse stuff, etc.) and I am sure fantomEngine is not my last one.

So what is the best you ever worked with in terms of productivity and robustness


GameMaker and AGK

If someone would implement Cocos2d on top of Monkey (massive task, but seems the ports were all done basically by one person) all would benefit from the massive API knowledge on the web while benefitting from the cross platform-ness of Monkey.


Sorry, but if one is so limited in his knowledge and mindset that he/she is not able to adapt these informations to another toolset, then this developer is lacking something. :D


As you love Cocos2D so much, why are not using it fulltime? You can get Cocos2D running on some platforms I read.

That is what I will never get. People use one tool but rant/suggest that it should work like different tool. That makes me shake my head.


frank(Posted 2013) [#5]
> As you already have a strong oppinion about things, why does that matter?

I like to learn new things; I haven't tried all tools on the market, so maybe you like some stuff I never tried (as you actually did. And my opinion is not so strong :) Last I did fulltime game dev before this year (since 1/1/2013 I have an Indie game company) is 1983-1990. So I just try what I see. I do believe API's can be standardized once the underlying goal has been abstracted to a point everyone is happy. I was just trying to find out if there is anything like that.

> If you have started out with LUA as your first language, you will have some problems understanding the concept of a "normal" programming language and will find it limiting. Which it isn't.

I know; I prefer strongly typed languages any day. Still I don't know what a good API would have to do with that; an API is an abstraction to do something. Like user management, contact management, database management, cloud server management, ERP or 2d/3d game making. If you compare multiple API's for the same purpose, many of them are almost identical. Just with some different flavors added by the 'inventor' of his taste for it. Mostly nothing to do with the language. Could you point out, in the Corona *API* , so not the examples or the code under API, anything that would not fit Monkey or C++ as well?

> Sorry, but if one is so limited in his knowledge and mindset that he/she is not able to adapt these informations to another toolset, then this developer is lacking something. :D

Agreed, but that's most people i'm afraid. If people learnt a toolset they usually stick with it. There are plenty people still working with Cobol, Delphi, VB and PHP for that reason. There are better alternatives, but it is not easy for people to adapt.

> As you love Cocos2D so much, why are not using it fulltime? You can get Cocos2D running on some platforms I read.

I need HTML5 / Flash for my clients. And again, I didn't say I love it, I like it :)

> That is what I will never get. People use one tool but rant/suggest that it should work like different tool. That makes me shake my head.

I don't think API/Framework have much to do with this; there can be effective ways to do something without reinventing the wheel. If you read enough source code of bigger games on Corona/Cocos2d/Monkey you'll see the object structure and methods start to look an awful lot like eachother. That's not a coincidence; everyone tries to do the same thing but then 'a bit different' to reflect your own taste.


Paul - Taiphoz(Posted 2013) [#6]
I like diddy although not sure it's a full framework, but for me I use it because I like the way it does things, its easy to use and does not complicate my workflow.

I think when it comes to deciding on a framework for a project it will always boil down to which is the easiest for the programmer to use, which does he feel most comfortable with, even with the most feature rich set of features and functionality, if a framework is horrible to use and read less people will adopt it.


MikeHart(Posted 2013) [#7]
That's not a coincidence; everyone tries to do the same thing but then 'a bit different' to reflect your own taste.


No wonder. If you take 2D for an example, it all boils down to displaying images at given positions. You can invent the wheel only so many times.

When you look at all these different game dev tools, then you wonder why there are so many. Their creators praise them as the best thing since sliced bread. But yet, most of them differ only slightly. I think as a user you choose the one you are mostly productive with and maybe which community you like hang out the most. I don't know. Imho, the two awesome things about Monkey are its programming language and the openness. You can chnage everything yourself! There is only one language I like better and that is Pascal. Delphi and Freepascal are my favorites.

Could you point out, in the Corona *API* , so not the examples or the code under API, anything that would not fit Monkey or C++ as well?


Most if not all things could be implemented. Maybe not on all platforms and maybe some things need some fiddling in the build project later one, but I see nothing that could not be done.

When you look at different frameworks, they differ in the way they handle objects and how they tie things together. My framework was build with a strong usage of callback methods in mind and also that as much as possible was automated. I am kinda a callback junkie.
Thanks to Monkey it is still ultra flexible and it amazes me how people use it differently from the way I was imagine it.

Some people like to use frameworks because then they don't have to create a lot of functionality themself. It is already made for them and they can concentrate on the actual game. At the end it is all about creating games and apps, right?


therevills(Posted 2013) [#8]
The main screen based framework for Diddy is based off Grey Alien's Framework (GAF) but heavily monkeyized and gone past it with XML, i8N, Serialization, Tiled support etc.

When I moved to Monkey I really missed how I could quickly go between screens with GAF so I decided to write my own version. Although I made it a lot more user friendly and a lot less set up code.

Oh and Diddy really started as just extra commands for Monkey since it was pretty lacking in some of the basics when it was first released - I then added the framework parts and Samah jumped onboard adding his magic.

Taiphoz Writes: although not sure it's a full framework

What is a "full framework"?


Nobuyuki(Posted 2013) [#9]
Tightly-bound frameworks with heavy interdependency make me sad. I've built my own kit to use in various projects that -- when assembled -- replicates the core functionality of a framework like Diddy (screens, overlays, input abstraction, widgets, modal dialogs and transition effects) without making any individual code module hard to port to something else should the need arise.

The handiest library I've used so far has probably been box2d. It has a really weird bunch of inconsistencies from its port from c++ -> as3 -> Monkey, but despite that, the benefits of using it outweigh the inconveniences.


Samah(Posted 2013) [#10]
Lua is a word, not an acronym. Otherwise we code in PYTHON, JAVA, and MONKEY. ;)


MikeHart(Posted 2013) [#11]
And Pascal, PHP, JavaScript, etc.


therevills(Posted 2013) [#12]
PHP is an acronym.... a recursive acronym :-)


Paul - Taiphoz(Posted 2013) [#13]
"What is a "full framework"? "

yeah I only said that because I am sure i recall mark talking about it and seemed to NOT lump diddy in with the frameworks he mentioned.

personally I love it. and hope you keep working on it :)


therevills(Posted 2013) [#14]
yeah I only said that because I am sure i recall mark talking about it and seemed to NOT lump diddy in with the frameworks he mentioned.

Ah gotcha... well Diddy has a framework but it also has a bunch of modules, I think that's why Mark didn't know where to put it...


Thursten(Posted 2013) [#15]
If people learnt a toolset they usually stick with it. There are plenty people still working with Cobol, Delphi, VB and PHP for that reason. There are better alternatives, but it is not easy for people to adapt.

I fail to see how why people would not still be working with php for online content management applications? And i fail to see why high end php developers would not be able to adapt easely to new toolsets? Could someone explain?