Best way to release on PC?

Monkey Forums/Monkey Programming/Best way to release on PC?

benmc(Posted 2012) [#1]
Would I use XNA or GLFW to release a PC version?

I want to bundle it into a single download / executable preferably, hiding the assets and XML files the game loads.

GLFW appears to have a folder with all the assets in it openly available. Also, for audio to work, I had to download a special DLL which I think would be tough to ask users to do.

I'm not sure how to compile for PC using the XNA build, but if I do use XNA, would there be any special run-times required to run the game?

Basically, I'm trying to find a way to distribute a single EXE/Install file and protect the assets.

Any suggestions would be very helpful, thank you.


Soap(Posted 2012) [#2]
There are other options too. You can wrap a SWF using software - but most solutions suck. You can also wrap HTML5 games - using software which bundles Chromium/WebKit, but it will still be a while before the best options become available. There are a couple options now but none seem as obvious best choices.

Who is your primary audience? If the game is core then XNA would be OK. Anyone who uses Steam has XNA installed already.

Anyone know what happened to the possible BlitzMax runtime? Unity runtime? :)


benmc(Posted 2012) [#3]
I found some tools that do "packing" of EXE's, but upon further research, lots of people have complained that they throw virus warnings.

Sadly, most of my games run rather miserably in HTML5. They just don't render even close to a desirable frame rate.

I'd like to distribute my game similar to how Super Crate Box does on their website. Just an easy download and single-exe run situation. DRM free is fine.


Soap(Posted 2012) [#4]
Which browser are you testing for HTML5?

If you want a simple solution why not use something like Inno Setup to create an installer? Installers are user friendly for users. Power users would be fine with a zip and random misc files included.


benmc(Posted 2012) [#5]
IE, Firefix, Chrome, Opera and Safari on PC.

Opera is the only browser that runs the game flawlessly. The others are very very choppy.

I have the latest and greatest of all the browsers listed.


Karja(Posted 2012) [#6]
I'm aiming for a PC release in the foreseeable future, and these are my two cents:

If you go with either GLFW or XNA you'll have to create an installer. Partly for the data files, but also to install OpenAL/XNA redistributables. There are serious issues with switching between fullscreen and windowed for those, however.

If you go with Flash you can either do some tweaking by yourself (create a projector with the Flash player, add icons and remove menus with ResHacker, add AS3 commands to disable the right click menu, and so on), or wrap it with some program. This is pretty convenient, but if you want to allow switching between fullscreen and windowed, you have to modify the AS template to allow interpolated scaling. Also, there are a few people who turn off Flash's access to store data locally. That can result in very confusing errors.

I haven't really seen HTML5 as a viable solution so far, but that might be worth checking out...

Anyway, neither of the options are especially appealing to me. I will see if I can breathe some life into Diddy's BlitzMax target once I get close to my release date - otherwise, Flash seems to be the most feasible solution, even though I really would like to avoid it.

All in all, Monkey isn't mature enough for PC/Mac releases out of the box, in my opinion. Something really ought to be done about that - because it's great in most other ways. :)


anawiki(Posted 2012) [#7]
The best way to release on PC is to use... BlitzMax ;-)


Neuro(Posted 2012) [#8]
If you go with either GLFW or XNA you'll have to create an installer. Partly for the data files, but also to install OpenAL/XNA redistributables.

Actually i'm wondering now (since i havent messed around too much with GLFW/XNA) but i'm assuming you mean we can't just include an OpenAL DLL packaged along with the installation file?


Karja(Posted 2012) [#9]
I think it's just a bit cleaner to use a proper OpenAL installer, and apply the /s option to make it a silent install. But yeah, just plopping in the DLL should work too.


Winter Wolves(Posted 2012) [#10]
How big are the XNA/OpenAL files anyway? it's not uncommon to install 3rd party stuff in PC games nowadays :)


Karja(Posted 2012) [#11]
Open AL is just a few hundred KB, and I'm sure that the XNA redist package is just a couple of MB. But the real deal breaker for me is that it's not possible to switch between fullscreen and windowed on those targets...


Winter Wolves(Posted 2012) [#12]
Ah wow, no full/windowed toggling!? that's crazy indeed! :|
I've been looking at developing with monkey (even if I already bought it!) but this is quite a serious limitation since my main targets are still the good old PC/Macs :)


Karja(Posted 2012) [#13]
I know the feeling! So far I've managed a workaround for the GLFW target that allows fullscreen or windowed, but that has to be set during startup. (I.e. "this setting will take effect the next time you start the game.")

But I'm considering other options as well. Monkey is worth developing in for the excellent Android/iOS/Flash/etc support, IMO. I'll find some way to do the PC/Mac versions well too. :)


benmc(Posted 2012) [#14]
Yes, for Android/iOS Monkey has been AMAZING. But the PC release limitations are a bit frustrating. I want a single EXE with everything in it personally, but I just can't seem to get this to happen.


Soap(Posted 2012) [#15]
I agree that Monkey is worth it. HTML5/Flash/Mobile matter the most long term.

Mark, can you change/add what needs to be added to Monkey for the BlitzMax target possible to be made functional? Unless you already have something planned? If you read this can you also add a private members only forum so we can post changes to the closed source there? :)


Winter Wolves(Posted 2012) [#16]
Wouldn't the best option is to export to HTML5/Flash and then use either Titanium Appcelerator or Adobe Air? they both should have HW acceleration and don't need XNA or other stuff ?