Monkey X for Desktop Games?

Monkey Archive Forums/Monkey Discussion/Monkey X for Desktop Games?

RetroRusty(Posted 2014) [#1]
Hi,

I was looking through the list of published games on the forums when I noticed that almost all of them were either for the iPhone/iPad or an Android device.

This brings me onto the question that I'm sure has been asked many times before, but I'm going to ask it again as the evidence is stacking up against it.

Is Monkey X really suitable for PC/Mac Desktop games?

Is it the case that people are just releasing everything on iPhone/iPad as Monkey is more suited for mobile games and they seem to be simpler games? Or is it that because it has to support so many platforms that it's not 'powerful enough' for more advanced desktop games?

Don't get me wrong, I'm not saying anything negative about Monkey, I'm asking because I really have no idea of the capabilities of the language and thought the best thing would be to discuss it with more knowledgeable people on this forum.


wiebow(Posted 2014) [#2]
I'm working on a desktop only framework in Monkey right now, as I decided that mobile development is not for me. The language capability is there, and was really improved with recent versions. So I have high hopes. I KNOW some people are using Monkey to develop commercial desktop games, so I have hope :)


Soap(Posted 2014) [#3]
We're using Monkey in a current live Windows/Mac/Linux game which is available on Steam and it's working great.

I don't like to promote my own work though so I won't be linking it, but know that it is solid and is perfect for 2D desktop games. When Mojo3D is ready it will probably be perfect for 3D too.


Raz(Posted 2014) [#4]
Soap, I'm intrigued, what game is it? And how easy was it to get working with Steam? Did you have to do anything special?


Soap(Posted 2014) [#5]
Not going to say, and anyone who knows please do not say.

If you search this site you can find posts which describe Steamworks support. They are enough to get you started. Basically all you need to do is make sure the libraries are in the right place and then extern the right functions.


rIKmAN(Posted 2014) [#6]
Why the big secret?


therevills(Posted 2014) [#7]
Check out SlopeOak's Cypt of the NecroDancer, its a desktop game built with MonkeyX and I believe it is going to be released on Steam:
http://www.monkeycoder.co.nz/Community/posts.php?topic=5335&page=1


muddy_shoes(Posted 2014) [#8]
The problem here is defining "suitable". Monkey's support of desktop has improved but it still doesn't offer comprehensive and simple solutions to issues with windowing/full-screen, resolution switching, refresh options and things like ensuring audio support. There's nothing stopping you solving all those problems yourself but you would need to be prepared to roll up your sleeves.


Gerry Quinn(Posted 2014) [#9]
I think the reason is probably that if you are targeting mobile, there doesn't seem much point in targeting native desktop (and you can always do a browser-based version). And games targeted at desktop are probably mostly too elaborate for mobile - and here, while Monkey is adequate, there are better pure desktop solutions available


muddy_shoes(Posted 2014) [#10]
A couple of years ago that was true but the overlap between low-end desktop and mid to high-end mobile platforms is now substantial. There are increasing numbers of games hopping from mobile to desktop and vice versa. With very capable GLES 2+ hardware being the norm in mobile and with Steam increasingly becoming an open publishing platform the trend will only continue.

I'm sure Mark is juggling a dozen different priorities but bolstering the desktop support layer alongside creating a GLES2-ish capabilites mojo with shaders seems a reasonable near-term goal to me. As I said (unpopularly) in a thread complaining about the audio compatibility situation, moving to an SDL2 base in pursuit of this looks like the sensible move here.


AdamRedwoods(Posted 2014) [#11]
monkey desktop is still on GLFW2, i think GLFW3 would help with some graphic issues.


muddy_shoes(Posted 2014) [#12]
True. I prefer SDL because it covers more ground feature-wise, supports Android and iOS, and has the tacit backing of Valve as the cross-platform library of choice for their SteamOS/Linux push. I could certainly see that GLFW3 looks like an easier step from where we are, I'm just less sure it's the best choice in the medium to long term.


Raz(Posted 2014) [#13]
Soap: OK suit yourself! But now I'm intrigued as to why it's so secretive!


MikeHart(Posted 2014) [#14]
Just some heads up. I am running Xcode 5.1 on OSX 10.8.5. The newest Monkey versions can not compile Desktop and STDCPP anymore. For desktop it requires a 10.9 compatible project and STDCPP can't be compiled because Trans was changed a few Versions before and Mark can't be bothered to change that.

So you need the absolute newest OSX/Xcode setup for newer Monkey Versions. Even if you don't wanna publish to the app store.


Soap(Posted 2014) [#15]
MikeHart, what version of OS X are you currently targeting?


MikeHart(Posted 2014) [#16]
Targeting? I press BUILD in Monkey and that's it.


Oddball(Posted 2014) [#17]
You have to open the Xcode project and change the target OS to 10.8 as it defaults to 10.9. After that it'll always build for 10.8.

@Soap: I'd be very interested to know if you have Steamworks setup for monkey as I'm porting my Steam game over to monkey at the moment. I'm porting it for iOS and Android support, but being able to use the same code for the Steam build too would be awesome. If you don't mind sharing your knowledge then give us a shout - contact@...


Soap(Posted 2014) [#18]
http://www.monkeycoder.co.nz/Community/posts.php?topic=5463&post=61152 Should be a good start. I'll say hi and if you need help just ask.

> I press BUILD in Monkey and that's it.

Inside of the xcode project you can modify the target OS X version based on SDK. I'm curious which you build for.


RetroRusty(Posted 2014) [#19]
Does anyone know if there is anything in the pipeline to improve the desktop side of things?

@Gerry Quinn What other frameworks/language would you say are better for desktop games?

I think the bottom line here is, is Monkey X (in it's current state or soon(tm)) suitable for desktop games? Do I spend the time on Monkey X or do you think that it's a long way off from doing some of the things that some of you have pointed out here?


Soap(Posted 2014) [#20]
RetroRusty, what do you need it to do? I vouch for it being good for desktop games. The gotchas people have pointed out are possible to be solved yourself. And Mark is for sure going to continue dev to make it even better.

If you want to make 2D games Monkey is the best for desktop and mobile dev. You might need special things which we don't know about which would make an other tool better for you.


dawlane(Posted 2014) [#21]
Targeting? I press BUILD in Monkey and that's it.
At some point you have to get your hands dirty and open the compilers target project file.


RetroRusty(Posted 2014) [#22]
@Soap I would like to make 2D games for the desktop, but from reading some posts on these forums, I wasn't sure if Monkey was suitable. But if you think it's the best for 2D desktop games then I'm good with that.


Gerry Quinn(Posted 2014) [#23]
I had no particular alternative in mind, but there are some slightly clunky issues like the use of OpenAL. I just feel that there are probably a whole lot of frameworks that target PC desktop directly which would be easier to use if you are just targeting that. Certainly there's nothing to stop you using Monkey for desktop projects.


Soap(Posted 2014) [#24]
Steam lets you set a checkbox for installing OpenAL with your game. If you want to make desktop games, then Steam is your goal, and at least on there it's easy to make sure it's installed with your game. Having the OpenAL installer run silently when you install your game directly is easy too, and I've posted instructions on how to do it here before.

I've used many tools and I would not trade any of them for Monkey.

RetroRusty, if you come to any problems just search the site / ask here on the forum. There are several of us who are also making games for desktop (but also for all other targets as well) and we've found solutions for all of the major pitfalls with desktop games.


RetroRusty(Posted 2014) [#25]
@Soap Thanks for the support and for putting my mind at rest in using Monkey for desktop games. I'm sure there will be many times that I will be either searching these forums or asking for some help on a particular issue.


Supertino(Posted 2014) [#26]
Not sour the milk and I might get lynched for saying this but if it's purely a desktop target you're targeting Mac\Linus\Windows you might want to look at Blitzmax http://blitzbasic.com/Products/_index_.php


Nobuyuki(Posted 2014) [#27]
I'm gonna contradict the above post: Bmax is going to be a dead language soon. I don't see Monkey as an offshoot of the dialect as much as I see it as its successor. (Who uses B anymore compared to C?)

Eventually, most likely everything you wanted to do in bmax is going to be possible in Monkey, should Mark find a pressing need for it himself. That's how I feel, anyway.


Neuro(Posted 2014) [#28]
This game here developed with monkey was built specifically for the desktop.


RetroRusty(Posted 2014) [#29]
Do you think that there will eventually be support for DirectX and FMOD? I can see this being a problem for some people and preventing them from using Monkey for desktop games.


therevills(Posted 2014) [#30]
support for DirectX


There is the BMax target, which supports DirectX:
https://code.google.com/p/monkey-max/


rebelas(Posted 2014) [#31]
I agree with many comments here. MX can be used for desktop. I used it with glfw + MinGW. However, like BMAX, I am not sure it will have decent 3D.