Questions RE Monkey features for commercial projec

Monkey Forums/Monkey Programming/Questions RE Monkey features for commercial projec

AaronK(Posted 2012) [#1]
Hi guys. I'm just looking at starting my next title (TrapIt for iOS was my first) and am considering using Monkey for it's cross platform support.

However I have a couple of questions that I need answered if someone can help.

1) Will Monkey be sandbox friendly on OSX? Apple is forcing all developers who want to release on the Mac Store to make sure their apps are sandboxed.

2) Can Mac Store apps be generated successfully? I imagine so, seeing as iOS ones can but I want to make sure.

3) Is it easy to extend Monkey with my own C/C++/Objective C libs? I will want to put in GameCenter support at some point and also maybe use Box2d or some other third party libraries.

4) Can resolution be controlled in game for platforms that support it like Win32 and OSX? I realise all the mobile platforms are fixed but it'd be nice to allow resolution selection for PCs.

That's all the questions I have for now, but I'm sure there will be more.

Cheers
Aaron


Beaker(Posted 2012) [#2]
1) & 2) Possibly not in this point in time. Someone else might know better. It's probably not too difficult to add this yourself.

3) Yes. If you do a search on these forums you will find gamecenter and box2d libraries already exist.

4) I think Diddy adds support for this. I'm not sure about switching to/from fullscreen tho.

Hope this helps.


Xaron(Posted 2012) [#3]
2) Yes. I already did it even though it was rejected but due to other reasons. The Mac app itself ran well. Finally you have a XCode project, so XCode itself takes care of all that stuff including packaging and so on.


AdamRedwoods(Posted 2012) [#4]
1. from what ive read, monkey is pretty well sandboxed. the only questionable thing is SaveState and LoadState but this could be easily addressed.


marksibly(Posted 2012) [#5]
Hi,

> 1) Will Monkey be sandbox friendly on OSX?

Should be - it only loads assets from its own assets dir, and LoadState/SaveState use the recommended mechanism for loading/saving app settings so it should be sweet. If not, it'll be fixed!

> 2) Can Mac Store apps be generated successfully? I imagine so, seeing as iOS ones can but I want to make sure.

Haven't tried making a Mac store app, but I don't imagine it'd be a huge problem. Haven't actually thought much about mac app store, perhaps it's time for a new target?

3) Is it easy to extend Monkey with my own C/C++/Objective C libs? I will want to put in GameCenter support at some point and also maybe use Box2d or some other third party libraries.

Basically, 'if all else fails', you can always customize the generated output xcode project however you want - add frameworks, tweak the NIB/info.plist, hack stuff into main.cpp etc. This is generally how people add gamecenter/ad support.

It's not particularly pretty, and is something I hope to make easier sometime soon, but there are quite a few 'how tos' floating around to get you started.

As for box2d, take a look at muddy_shoes' excellent Monkey-native port!

4) Can resolution be controlled in game for platforms that support it like Win32 and OSX? I realise all the mobile platforms are fixed but it'd be nice to allow resolution selection for PCs.

There is no 'resolution selector' capability built-in. The 'easiest' way to do this I can think of would be:

* Write a separate 'launcher' app that allows user to select resolution etc before launching main app.

* Modify main app's glfw.cpp main.cpp to load width/height/fullscreen etc settings from the config file.


AaronK(Posted 2012) [#6]
Thanks guys for the info, and thanks Mark. It sounds like I'll be able to do most of what I need without too many problems.

I'm just starting on my game framework for all the boilerplate stuff, then I can get into the game proper.

Cheers


therevills(Posted 2012) [#7]
Can resolution be controlled in game for platforms that support it like Win32 and OSX?


I added this to diddy awhile ago, but when I looked into GLFW you cant got between fullscreen and window mode - hopefully Im wrong about that...

	static void setGraphics(int w, int h)
	{
		glfwSetWindowSize(w, h);
		GLFWvidmode desktopMode;
		glfwGetDesktopMode( &desktopMode );
		glfwSetWindowPos( (desktopMode.Width-w)/2,(desktopMode.Height-h)/2 );
	}