STEAM GROUP
Giant Multiplayer Robot MRobot
STEAM GROUP
Giant Multiplayer Robot MRobot
16
IN-GAME
226
ONLINE
Founded
9 March, 2012
Location
United States 
Tazzik 26 Mar, 2015 @ 8:28am
Multiplayer Robot Mac/Linux Open Source Initiative
As part of the new Multiplayer Robot, we'd like to have desktop apps for Mac and Linux. However, since neither of us have experience developing for Mac or Linux, we're creating open source initiatives in hopes that the community can help to create these apps. To help these apps come along as easily as possible, we're going to put the Windows app on GitHub to use as a reference. This should happen next month as part of the Oracle release (see: Trello[trello.com]). Around the same time, we'll also create official repositories for the Mac and Linux apps.

Here's some of the general ideas we've had regarding the development of these apps:

Use a programming language with an existing SignalR[signalr.net] client library.
• All Multiplayer Robot communications happen over SignalR, so this will make things go much easier.

Match the look and feel of the target platform
• This is the main reason we're making two separate repositories for Mac and Linux, instead of one cross-platform one. We want the app to feel natural and at home on its given system.
• It may make sense, however, to derive a core library of common functionality in its own repository that the individual apps will reference.

Mimic the core features of the Windows app
• Turn notifications, downloads, and uploads are the most important features.

For now, we'd like to get the conversation started for these apps. Here's some topics which we want to discuss:

What languages/frameworks should be used?
• The Windows app is written in C# and targets .Net 4.5. A Mono-compatible core library could be refactored from it that could be used on either Linux or Mac.

What should the interfaces look like?
• The Windows interface is minimalist, allowing users to play turns without ever even looking at its UI. We'd like to carry this over into the other apps.

Would it be beneficial if we added server-side push notifications to the Apple APN to work in conjunction with the Mac app?
• If this is the case, we may need some pointers from Mac developers on how to do this :)

So, if you're a Mac or Linux developer who is interested, sound off below. We need your help!
Last edited by Tazzik; 26 Mar, 2015 @ 8:34am
< >
Showing 1-15 of 51 comments
gertadam 26 Mar, 2015 @ 4:37pm 
Hi guys
What a brilliant idea.
I am a Mac user, but unfortunately - that's all I am - I haven't written one single line of serious code since 1997 when I started being tasked as PM.
I will however be on hand, if a thorough Mac-tester is ever needed.
Also - Let me know if there are other menial tasks I could help with :)
Last edited by gertadam; 26 Mar, 2015 @ 4:41pm
NullMaster 28 Mar, 2015 @ 10:10am 
Thanks Gert, all help will definitely be appreciated and you're certainly welcome to participate as much you'd like!
Kavalor 30 Mar, 2015 @ 10:35am 
And here you have a Linux Tester - plan to make the final switch fromWindows to Linux nex month - if everything goes right. But I'm not a developer either.
Silasary 18 Jul, 2015 @ 7:04pm 
I'm a developer who frequently works with Mono and OSX.
More than happy to help with the Mac Client.
cansanao 15 Sep, 2015 @ 8:00pm 
I have experience in programming for Linux, Android and iOS. Me and my team strongly believe that the best approach for GMR is to have a single implementation that could work for Linux, Mac, iOS, Android and Windows Phone. We recommend using QT ( www.qt.io ) as it is very robust, widely supported and multiplatform. QT has an open source SignalR client: https://github.com/p3root/signalr-qt

To allow for the per platform look and feel, it is easy to design different interfaces for multiple platforms (using QML: http://doc.qt.io/qt-5/qtqml-index.html) while keeping the core implementation the same.

I personally consider that mobile apps with APNS and Google Cloud Messaging notifications are essential. I have used node-pushserver for that ( https://www.npmjs.com/package/node-pushserver ) but I'm not sure how comfortable you'd be to integrate with the server (GMR runs on Azure, right?). Even if you'd rather implement it in C# there might be some libraries for that, I do not recommend implementing it yourself because mapping device IDs to users can be more complicated than it looks.
NullMaster 17 Sep, 2015 @ 8:23pm 
Thanks for the feedback BlackXIII!

I agree that it would be great to have a single, cross-platform desktop client! I'd never heard of QT before. It seems fairly professional and robust with lots of options. I'm not so sure about having the client be in C++, I'm fluent in it but prefer higher level languages in general. Also am I correct in understanding that QT is a paid for tool, on a subscription? Is there a "no strings attached" version of the framework and tools?

I also really like your idea of supporting pushing to mobile apps and would be willing to integrate a node-pushserver into our web infrastructure.
Kavalor 18 Sep, 2015 @ 11:25am 
Yes there is - Qt is duallicensed , commercial in case and LGPL to my knowledge . For Example the Plasma Desktop (KDE) is based on Qt . But I'm afraid I'm not a Lawyer so I don't know if you can use the LGPL Version .
I would be very happy with a Qt Version

btw. its Qt - pronoucend cute (afaik) - i think QT would be Quicktime
but this is just a nitpick :D
Last edited by Kavalor; 18 Sep, 2015 @ 11:27am
NullMaster 19 Sep, 2015 @ 6:57pm 
Haha, thanks, I'll be sure to refer to it properly in the future! And an LGPL license sounds promising, I'll look into it some more. This might be a good way to go!
NullMaster 21 Sep, 2015 @ 5:44am 
So reviewing the LGPL license for Qt I believe it would work just fine for what we're doing. I've also done some research into the libraries available and I believe it could easily support all of the key features I feel the desktop app needs to have, including:

  • SignalR Client
  • Filesystem Monitoring
  • System Task Tray Icon
  • Toast Notifications

I think Qt is a strong option for developing a cross-platform desktop client for the new MR, even replacing what we've already done for Windows. Before we take off in that direction though are there any other libraries or frameworks we could consider that would also work?
Kavalor 21 Sep, 2015 @ 10:07am 
not sure as I'm not a developer but I can easily be a betatester.
Witwenmacher 21 Sep, 2015 @ 11:19am 
I'm also glad to help out as a tester on Linux if needed.
bleissem 27 Sep, 2015 @ 5:09am 
Hello guys,
I developed a (very small) client for GMR at
https://yagmrc.codeplex.com/
I used .Net with WinForms, because it runs under Linux with the Mono framework.
Do you plan to opensource the server components too ?
Regards
Alex B.
Kavalor 28 Sep, 2015 @ 7:48am 
Mono works on Linux but I'm not sure how well it is maintained . To my knowledge its only maintained by a small Team and I'm not sure where their focus is. .net is still very microsoftcentric
Andruh 1 Oct, 2015 @ 6:05am 
Hello!

I'm skilled C++-programmer, and have some experience with Qt. But only with desktop apps, not phone. I agree with BlackXIII that it is good choice for cross platform client.

Unfortunately, I have little time to ensure my participation in development. But I would like to have access to the description of the protocol communications with the server over SignalR. Another option - to get the source code for the client running Windows, for understanding the communication protocol with the server.

The ability to gain access to the protocol or application on Windows, will give an impetus to the development of a cross platform prototype. If not me, then someone else will do it.
NullMaster 7 Oct, 2015 @ 7:56pm 
Thanks Andruh! We have open sourced the new Windows client on GitHub here: https://github.com/n7software/MRobot.Windows

You can see the SignalR and API methods we use in the source for it. We hoped it would be a good starting place for developing a cross-platform client.

@bleissem: That's awesome! I had no idea you were working on a Linux client. Is it fully functional? We're not planning on open sourcing the server at this time.
< >
Showing 1-15 of 51 comments
Per page: 1530 50

Date Posted: 26 Mar, 2015 @ 8:28am
Posts: 51

More discussions