1st steps towards developing Windows 8

Monkey Targets Forums/Desktop/1st steps towards developing Windows 8

evren(Posted 2015) [#1]
Just downloaded the latest non-exprimental version (MonkeyPro82b).
Next step will be to get Visual studio express 2010?

Is Monkey meant to be used continually forever with Visual studio 2010 or newer versions to create Windows8 apps? What happens if you get the latest VS later on?


ImmutableOctet(SKNG)(Posted 2015) [#2]
Well, the current project files are for Visual Studio 2010 for the GLFW (Desktop) targets. That's only one option on Windows, though. The current preferred compiler for Windows is MinGW, but Visual Studio works fine. And of course, the older XNA target uses the C# version of VS2010 Express (Could possibly use something else with some tweaking). Mark has talked about moving to 2013 (Or newer) for the MSVC side, but nothing's been done yet. You can still use VS2013 (Or similar) to convert the projects over, if you're worried about that. It's not like they're a big deal. Visual Studio (And related tools) has/have systems in place for backward and forward compatibility of binaries, if you're interested. Monkey's output for the standard C++ target, GLFW targets, and as far as I know, the iOS target are all based on the same "generator" built into the compiler, and they produce standard C++ code. The Windows 8 / Windows Phone 8 targets are not standard C++ targets.

However, if you're talking about the Windows 8/8.1 specific targets, they're based on a managed variation of C++ that Microsoft has built. Code written in that basically compiles into DotNET byte-code. The Windows 8 and Windows Phone 8 targets rely on this, so if you're interested in deploying to those targets, this is the wrong section.

This section of the forum is for the GLFW 2 and 3 (OpenGL based) standard C++ targets, meaning they're compiled with the standard version of MSVC, as well as GCC/MinGW. To put it simply, the Windows 8 "Metro" targets have their own section, as they're different in many regards (They're also DirectX based, from what I remember).

To summarize: you generally can't use the 2010 projects with newer versions of Visual Studio, but they can convert the project pretty easily. If you need to do this, you should modify what's in the "targets" folders. Code-wise, there shouldn't be a problem. You can also use MinGW or GCC if you're not willing to use VS2010. The Windows 8/8.1 "modern app" targets are different, and they require a different version of Visual Studio altogether.

If you want to easily automate this process, there's this tool, and I think JungleIDE also has a tool for it (Not sure if that's available in the free version, though).

Yeah, I'll be honest, Microsoft is terrible about managing Visual Studio; I have half a dozen versions of it for everything I've done the last few years. In order to get all of Monkey's targets running (Assuming you want MSVC2010 for the GLFW targets), you'll need 3 versions of Visual Studio (Or you'll need to upgrade the project files). Of course, all of them are optional, but two are needed for a few targets. That's one of the prices to pay for using a tool like Monkey. This isn't really a Monkey issue, it's a Microsoft software management issue. Mark should probably update the project files already, though.


evren(Posted 2015) [#3]
Just want to say thanks for that amazingly complete answer. I totally mixed together the platforms together and actually never noticed the Win8 forum. Will try that tool ! Are all platform tools free?


ziggy(Posted 2015) [#4]
The current preferred compiler for Windows is MinGW, but Visual Studio works fine.
Just wanted to add that using the Microsoft compiler makes compilation about 10x or more faster than MinGW. So it's worth it to use that instead for big projects


ImmutableOctet(SKNG)(Posted 2015) [#5]
@evren: Most of the targets' SDKs are free, but you'll need to set up an account with Microsoft for the express/free versions of Visual Studio. It doesn't cost anything, and it's generally a good idea to make one. The license eventually runs out, but you basically just get prompted to get another one, which is also free. Other than that, you're good; MinGW and GCC are open source and have standard distributions, so they'll always be free. Quite a few targets aren't free when you want to release your games, though. Unless something's changed, the Android Store(s) have small fees for hosting. Not sure about Microsoft's new "modern app" store, but I imagine it's similar. The only major offender in this regard is iOS, where you can't even develop for it without a license from Apple (Which was $100 from what I remember). But for the targets we've been talking about, they're free to develop for.

And as Ziggy said, MSVC tends to be faster for large projects. This is because Monkey always uses a very high optimization level, you can generally make builds faster by changing the MAKE files in the "targets" folders. I personally use MSVC on Windows because it's easy to set up third party libraries, but it's not like MinGW is bad about this. I use GCC when developing on Linux and OS X. On Windows, I tend to use MinGW for small projects that aren't made in Monkey.


evren(Posted 2015) [#6]
Thanks, tonight I tried to use the tool to install but it said Windows8 and started to download VS 2012 something so I stopped it, (I have a 8.1 computer so I need Visual studio 2013 right?) I didn´t see any 8.1 option though? But I successfully added Android, VITA and GLFW and everything worked very happy about that, although Android only 3 and 10 showed up not 19 sadly?

Could you use GLFW to sell in microsoft´s shop? Because that´s the main goal choosing the platform actually, Really loved GLFW otherwise, abit choppy though compared to B3D which was perfectly smooth.


ImmutableOctet(SKNG)(Posted 2015) [#7]
Unfortunately not, in order to release on Microsoft's new "modern store", you have to use the explicit Windows 8 and Windows Phone 8 targets. I honestly haven't messed with the Windows 8 targets in a while, so I'm not too sure if there actually is a newer version of Visual Studio that supports the "modern app" stuff. 2012 is working just fine for me right now, I had to renew my license, but all I had to do was log in. I'm running Windows 8.1, and I am using Visual Studio Express 2012 (For Windows 8; update 4, specifically). That shouldn't be confused with the standard Visual Studio versions for normal desktop development. From what I know, there really isn't a proper 2013 express version for "modern apps" yet. I could be wrong, though. Regardless, it's working fine for me, so if Sub_Zero's tool (Or any other tool) has you get the Windows 8/RT specific version, then that's probably your best option. If a new free/express version supports the Windows RT / 8 / "modern" platform (I call it Metro myself, but MS doesn't anymore), then you should be able to convert the project/solution file(s) anyway. Also keep in mind that Monkey (As well as most programs) doesn't allow you to launch from a normal desktop environment (An annoying decision on Microsoft's side), so you're forced to open the solution manually in order to run it. From what I've heard, this hasn't changed. The builds Monkey and VS2012 produce shouldn't have any compatibility problems with Windows 8.1.

This makes me wonder if the commercial versions of 2013 have support for this platform, but it's not a big deal to begin with. 2015's going to be out pretty soon, anyway. If you're interested in that, I think preview builds are available, but Monkey doesn't support it yet.

As for the Android SDK version, unless you're using external/native code yourself (Or a module that needs a specific version of the API), you shouldn't need a higher version. The manifest file (Found at "targets/android_new/template/templates/AndroidManifest.xml") specifies the minimum and targeted SDK versions, so if you need something newer, then you should just be able to change them. The target I'm referring to is the one dedicated to experimental/newer versions of Android, so the targeted and minimum versions may by changed by Mark later down the road. I haven't messed with the Android targets in a while, so I'm not the person to talk to about that. To my knowledge, there isn't an explicit API19 target, as you can just request it via the manifest. The thing about Android is that people run different versions, so requesting a mid-range version of the API is ideal. Since Monkey doesn't directly need newer than 2.33-ish (Could change later), it's not really a big deal.

If GLFW is running choppy for you, there's as a number of reasons why that could be the case. For example, bad OpenGL drivers, or perhaps the standard C++ garbage collector needs to be configured, or it could be completely unrelated. I don't have any major problems using GLFW myself. And if it wasn't obvious, make sure you're making a release build, not a debug one. It's also completely possible that your program is having problems because of a system bottleneck. For example, if you're making a lot of objects in your update-routine, you could be causing unneeded overhead. I wrote some posts about this in the past, if you're interested. Reusing objects is especially useful on Android, where garbage collection is a nightmare for everyone. But, if you're having problems with the GLFW target, that's pretty unusual. The GLFW target's garbage collector is a custom one Mark made, and it tends to perform rather well on modern desktops.

Hope this helps, and just in case you were wondering; that's what I have installed currently (On this machine alone; obviously, those aren't all needed for Monkey). Microsoft is really bad at managing Visual Studio releases. Don't even get me started on the redistributables, libraries, and tools (Several of which weren't shown there).


evren(Posted 2015) [#8]
I see, thanks a bunch installed Ultimatye Visual studio 2012 with Blend , or rather It tried It might or might not be correctly installed it dissapeared so quickyly all the sudden so it might got interrupted halfway (during update 4). Will re-running the tool now but it seem it does not continue where it was but reinstalling Visual studio 2012 all over again, hope that does not screw things up later.


Danilo(Posted 2015) [#9]
ImmutableOctet(SKNG) wrote:
From what I know, there really isn't a proper 2013 express version for "modern apps" yet.

- Visual Studio Express 2013
- Visual Studio Community 2013

- Visual Studio 2015 Preview - Info (November 12, 2014)
- Visual Studio 2015 Preview - Downloads

- Visual Studio 2015 CTP6 (February 23, 2015)


ImmutableOctet(SKNG)(Posted 2015) [#10]
@Danilo: Does Visual Studio 2013 "Community Edition" support the Windows RT stuff? Because my version of 2013 (Express) doesn't seem to. Also, the 2015 stuff is still a preview, so it's probably not a good idea to use that yet.


Danilo(Posted 2015) [#11]
@ImmutableOctet(SKNG): Sorry, I don't know for sure. I'm using MSDN Premium subscription.
Anyway, I would expect it to include RT because VS is able to make "Any CPU" apps that work on all Win8 targets.
To make sure, you have to test it. The Express 2013 site says "New edition available" and links to Community Ed.


Danilo(Posted 2015) [#12]
- What Features are in Visual Studio Community 2013?
As for features, well, Visual Studio Community 2013 is essentially the Visual Studio Professional 2013 edition with usage restrictions listed above.

- Compare Visual Studio Offerings

Pro versions lists all/same targets like Premium.


evren(Posted 2015) [#13]
Abit new to Visual Studio overall, but so I got the Visual studio 2012 now, 30 days trial now. The Monkey platform for win8 mobile actually compiles now (I think, at least it shows no errors only warnings). But it needs Hyper v enabled to go all the way, and it is not yet. The tablet variant does not compile for some reason.

Is it okay to enable hyper v? why was it not on to begin with when I got the computer? Is it about security and battery life?

Would 30 days of Visual studio 2012 be a good start for coding Micrsoft stuff? I figure my languages would be C++ and C#. Or should I get the 2015 and not be confused by the differences later? I got the Community 2013 last time and I got to actually code something, a Hello world, and very happy about that production before the trials went out.


Danilo(Posted 2015) [#14]
evren wrote:
I got the Community 2013 last time and I got to actually code something, a Hello world, and very happy about that production before the trials went out.

- Visual Studio Community 2013
Q: How does Visual Studio Community 2013 compare to other Visual Studio editions?
A: Visual Studio Community 2013 includes all the great functionality of Visual Studio Professional 2013, designed and optimized for individual developers, students, open source contributors, and small teams.

Q: Who can use Visual Studio Community?
A: Here’s how individual developers can use Visual Studio Community:
• Any individual developer can use Visual Studio Community to create their own free or paid apps.

I understand that it's the Pro version and completely free to individual developers, including
for commercial development. For sure you need to register with MS... but it shouldn't be a Trial version only.

- Visual Studio for free... .NET an open source project? Yep, it's all true...
- Microsoft on GitHub

- Microsoft and Xamarin Expand Global Partnership
- Developing Native iOS, Android, And Windows Apps In C# With Xamarin And Visual Studio 2015
- Native Mobile Application Development for iOS, Android, and Windows in C# and Visual Studio Using Xamarin
- Understanding XAMARIN – Create iOS, Android, Mac and Windows apps in C#.

Microsoft is changing many things... ;)


evren(Posted 2015) [#15]
Ahh it might have been something about *registering eithin the community within 30 days* on that 2013 one, not a 30 day trial.
Still not sure if rt was free part of it though. Something tells me ms wants cash from all this.


evren(Posted 2015) [#16]
@ Immutable The choppiness has a distinct pattern it looks as if it was trying to imitate the vertical sync with a clock and gets in and out of sync slowly. (Vertical moving area of jittering) while the rest is buttery smooth.

Also there's a windows-slowdown some sec at start.