Cross-platform multiplayer; Cross-platform co-op; Windows Mixed Reality; Ray Tracing; 60 fps+; 120 fps; Optimized for Xbox Series X S; Cloud enabled; Smart Delivery; Console Keyboard & Mouse; PC Game Pad; Xbox Live Cross-Gen Multiplayer; More. When it comes to video games, cross-platform play, or simply crossplay, means the ability to play an online multiplayer game not only together with friends who are playing on the same hardware platform, like a particular console or PC, but also alongside people using different hardware.That makes it possible, that a player running a PC can play together and party up with friends using a XBox. Shop Titans is a cross-platform cooperative shop simulation game set in a fantasy kingdom. Partner up with other players to form a guild, craft items and gear for heroes and send them off on adventures.
After a full year of hand-wringing and anticipation, Apple finally gave developers the tools to make cross-platform iOS and macOS apps. Developers can now create apps with (mostly) the same binary for mobile and desktop.
But it’s not the ‘write once, ship everywhere’ pipe dream realized. Instead, as revealed at this year’s WWDC, it’s a lot more like retrofitting mobile apps for the desktop.
Here’s what it means for you.
The Bad
- Expect a deluge of bad apps to hit the Mac App Store.
- There’s no unified App Store; developers must post iOS apps to the App Store and macOS apps in the Mac App Store.
- This move further confuses the monetization landscape, especially as it relates to subscriptions.
- The Mac doesn’t have a huge market share.
- It’s not for iPhone apps (yet). Only iPad apps can make the move to Mac.
The Good
- Making iOS apps available to macOS is (conceptually) pretty simple.
- Though it can get confusing, this does open up more avenues to sell apps or encourage users to subscribe.
- Many apps will have an easy time making the move to macOS; there’s not a ton of work to do (more on that in a minute).
- This will undoubtedly help the Mac App Store be not-so-terrible.
Refactor (Our Take)
You’re undoubtedly wondering if this is a good thing. It is.
But it’s a good thing mostly because the Mac App Store is so dreadful. Apple recently made an effort to help the platform via a redesign and a similar editorial effort as the iOS App Store already receives, and it fell flat. It’s hard to discuss great apps and services when you just don’t have great apps and services.
Conceptually, it’s not hard to make an iOS app available for the desktop. Apple promises that minimal work needs to be done, but every developer knows the actual work is always more than anticipated, especially with a new paradigm or platform.
At WWDC, Apple also fell back on its message from last year that AppKit (the tired framework used to develop macOS apps) will handle Mac things such as keyboard input and trackpad/mouse tracking. It’ll also deal with window resizing. And that all sounds simple and awesome, but your apps may not take so well to it.
Some of your functions and method should probably be global, and they’re not. You may be calling an outside library for something Apple has available via its own APIs, and that could bork your port to macOS because the AppKit API call(s) want to work with Apple’s stuff, not third-party tooling. Expect issues.
We think of this like a deprecation of AppKit, much as Objective-C was deprecated when Swift arrived. Swift didn’t kill Objective-C, and the UIKit framework familiar to iOS developers isn’t killing AppKit. You can still write an iOS or macOS app in Objective-C, and you can still write a ‘traditional’ macOS app using AppKit.
Monetization remains confusing. Before today, you could – for example – sell an iOS app for $10, and its macOS counterpart for $20. But once things go cross-platform, asking $30 for what is essentially the same app is a hard sell. Subscriptions are also going to take some work, and we expect many developers will offer up added functionality for desktop apps while keeping the mobile app lighter.
Apple isn’t ready for iPhone apps to hit the Mac, and it may never be ready for that. The company has been positioning the iPad as a computer, and it’s not; nor is the Mac a mobile device. Nonetheless, apps can be shared between the two devices and platforms fairly simply.
If this is the dream of ‘Marzipan’ (official, just-revealed name: ‘Project Catalyst’) realized, it’s pretty sweet, and it’ll be exciting to see what comes of it all. Developers will have until the Fall when iOS 13, the new iPadOS, and macOS 10.15 actually land.
-->This walkthrough shows how to create a new project for iOS and Android using MonoGame. The result is a Visual Studio for Mac solution with a cross-platform shared code project as well as one project for each platform. This project will display an empty blue screen when run.
MonoGame enables the development of cross-platform games with large portion of code reuse. This walkthrough will focus on setting up a solution which contains projects for iOS and Android, as well as a shared code project for cross-platform code.
When complete, the project has the proper structure for performing game update logic and game drawing logic at 30 frames per second. It can be used as the base project for any MonoGame project. The project will look like this when run:
Adding MonoGame to Visual Studio
Important
MonoGame is not installed by default in Visual Studio 2019 or Visual Studio for Mac.
You should manually download and install the latest version from http://www.monogame.net/downloads/ then run the installer. You may need to restart Visual Studio for the templates to appear.
The Game Development section should then appear in the Add-in Manager.
To enable the MonoGame add-in for Visual Studio for Mac, select Visual Studio for Mac > Add-in Manager... . For Visual Studio 2019 on Windows, select Tools > Add-in Manager.... Select the Gallery tab, expand the Game Development category and select MonoGame Addin, then click Install...:
Once installed, MonoGame templates will appear in Visual Studio for Mac, as we will see in the next section.
Creating a new solution
In Visual Studio for Mac select File > New Solution. In the New Project dialog, click on Miscellaneous, scroll to the General section, select the Universal MonoGame Mobile application option, and click Next.
Name the project WalkingGame and click Create:
Cross Platform Multiplayer Games
Now our project will execute just like any other iOS or Android project. The project should run displaying a cornflower blue background:
Fixing Android Compile Errors
The current version of MonoGame’s templates includes a few syntax errors in the Android’s Activity1.cs
file. To fix these problems, replace the OnCreate
function with the following:
Summary
This walkthrough covered how to create a cross-platform MonoGame project using Visual Studio for Mac. The result of this is an empty blue screen. This project can be used as the starting point for any iOS and Android game.