Official Version for mac/linux - We need one

Fun versions for any operating system, including online games or phone apps.
Post Reply
ronyhe
Posts: 4
Joined: Thu Sep 24, 2020 11:05 am

Official Version for mac/linux - We need one

Post by ronyhe »

I think we need a cross-platform official clone that will be acceptable for submitting records.
I'm a software developer and I'm willing to put in the effort.

What are the requirements?
Who should I contact for more information?
Who would be interested in helping out?
User avatar
Tommy
Posts: 256
Joined: Mon Dec 01, 2008 9:22 pm
Location: Vienna

Re: Official Version for mac/linux - We need one

Post by Tommy »

The main issue is gonna be to make it official.

I don't wanna discourage you - I exclusively use Linux, except for the Windows VM I use to compile vsweep, and I agree that it's way overdue - but getting a completely new clone accepted might be very hard. See also: Freesweeper

I guess the best option is probably to push for freesweeper to be accepted, tbh, and if it is determined that there are issues with it that block acceptance, to help fix those.

In the meantime, I know that vsweep runs really well under WINE (at least under Linux) (disclaimer: I'm the maintainer of vsweep). I'm not sure about other versions, but from what I remember, they work well under WINE too.
Don't anthropomorphize computers - they don't like it.
User avatar
Tommy
Posts: 256
Joined: Mon Dec 01, 2008 9:22 pm
Location: Vienna

Re: Official Version for mac/linux - We need one

Post by Tommy »

Oh, and also, there is MySweeper:
https://minesweepergame.com/forum/viewt ... f=26&t=273

And there is this thread where I started a discussion about definitive requirements for official clones:
https://minesweepergame.com/forum/viewt ... f=12&t=238
Don't anthropomorphize computers - they don't like it.
ronyhe
Posts: 4
Joined: Thu Sep 24, 2020 11:05 am

Re: Official Version for mac/linux - We need one

Post by ronyhe »

Tommy - Thank you so much for the detailed explanation.
I'm going to take a look at the thing you mentioned and I'll probably post here again afterwards.

Just FYI - Since OSX Catalina 10.15 dropped 32bit support, it's incredibly difficult to get things working on mac through wine.
I run Minesweeper X through wine on my ubuntu machine without issues, but my work machine is a mac.
User avatar
Tommy
Posts: 256
Joined: Mon Dec 01, 2008 9:22 pm
Location: Vienna

Re: Official Version for mac/linux - We need one

Post by Tommy »

You're very welcome! I'm glad to see this issue being talked about again - especially if the lack of 32bit support in Catalina makes it more pressing. Having to use WINE is suboptimal, but having to use a VM is kinda unacceptable. We should really work out official requirements for official clones I think, I'll reply to the other thread and try to get that discussion started again.
Don't anthropomorphize computers - they don't like it.
ronyhe
Posts: 4
Joined: Thu Sep 24, 2020 11:05 am

Re: Official Version for mac/linux - We need one

Post by ronyhe »

I took a look at the versions and threads that Tommy mentioned. (Thanks again, Tommy!)
It seems to me that the difficulty isn't a technical one, it's reaching consensus.

There are several approaches to solving such a difficulty, but perhaps it can be side stepped entirely?
Is there a way to open-source or take a look at the code for the current official versions?
Maybe we can alter them to be cross-platform or simply re-compile them for other platforms?
Perhaps we can mimic them in a cross-platform fashion?

If we can come up with a way to create a cross-platform version that's based on an already established version - perhaps it will be easier to reach agreements?
I'm not sure this is possible, but perhaps it's worth a try.

WDYT?
User avatar
Tommy
Posts: 256
Joined: Mon Dec 01, 2008 9:22 pm
Location: Vienna

Re: Official Version for mac/linux - We need one

Post by Tommy »

ronyhe wrote: Sat Sep 26, 2020 5:34 pm I took a look at the versions and threads that Tommy mentioned. (Thanks again, Tommy!)
No problem!
ronyhe wrote: Sat Sep 26, 2020 5:34 pm It seems to me that the difficulty isn't a technical one, it's reaching consensus.
Yes, absolutely.
ronyhe wrote: Sat Sep 26, 2020 5:34 pm Is there a way to open-source or take a look at the code for the current official versions?
The source code (besides the checksum writer) of at least an old arbiter version is available:
https://minesweepergame.com/forum/viewt ... p=911#p911

Not sure @ MSX.

I'll get to vsweep later.
ronyhe wrote: Sat Sep 26, 2020 5:34 pm Maybe we can alter them to be cross-platform or simply re-compile them for other platforms?
Unfortunately, I'm pessimistic there.

This section is based on speculation which is in turn based on posts the current devs/maintainers made, I'd be happy to be corrected/proven wrong here.

But for one thing, Curtis was planning a cross-platform clone:
CBright wrote: Thu Apr 05, 2012 8:59 am Nice job, Cryslon. I would be even more thrilled if it wasn't for the bittersweet fact that I had also been working on a cross-platform clone; an old dream of mine which I was actually working on in February. Another project got in the way in March, but I was hoping to start on it again. Actually, first I was planning on adding a RawVF player to MSX so we could finally have one, but you have beaten me to the punch there as well! This reminds me of the time when I updated Arbiter only to find afterward that you had already done it. :lol:
So apparently this is non-trivial to the point where a rewrite is preferable.

From what I can tell from a brief scan of arbiter's FMain.pas this is also not looking great:

Code: Select all

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, ExtCtrls, Buttons, ImgList,  shellAPI, {lmdcompo,} lmdclass, {lmdmmS,
  lmdnonvS, lmdnwgui, lmdnonvA,} ShlOBJ,ActiveX, ComObj, Jpeg, MATH, StdCtrls,
  AppEvnts,FileCtrl, LMDWndProcComponent, LMDTrayIcon, LMDGlobalHotKey,
  LMDCustomComponent, LMDTimer;
Also, I'm pretty sure Cryslon would have compiled Arbiter for Linux ages ago if that were somewhat easily possible. Case in point, Cryslon developed Freesweeper instead.

ViennaSweeper is based on MFC, I guess it would be possible to port it to Qt [1], but that would still be quite a bit of work. Probably still our best option, tho, given that we at least know what we'd be facing and a framework for what we'd be trying to do exists. How is your C++? Mine is unfortunately not great, I've made modifications to vsweep before, but I am very slow, so that kind of huge refactor would take ages. OTOH, if you're proficient, I can imagine that I may be overestimating the amount of time involved if you were to do it significantly?
ronyhe wrote: Sat Sep 26, 2020 5:34 pm Perhaps we can mimic them in a cross-platform fashion?
A Minesweeper Clone Clone? I like the idea! ViennaSweeper and MSX both make sense as targets, I'd say, they're both fairly small.
ronyhe wrote: Sat Sep 26, 2020 5:34 pm If we can come up with a way to create a cross-platform version that's based on an already established version - perhaps it will be easier to reach agreements?
I'm not sure this is possible, but perhaps it's worth a try.

WDYT?
I think that I like how you think, and that we've found a couple of options that seem kinda promising. Also, personally I'd love to just offer to make you co-maintainer of vsweep (if you want) based on your input here - the main reason I'm not doing this is that I feel that that step would require community support, especially given that so far, there is very little info about you (please feel free to change that, tho! :D).

But perhaps I could give you access to a modified version of the code without the checksum generation, similar to the arbiter release. Also, in theory, would you be willing to sign an NDA?

[1] https://resources.qt.io/videos/how-to-p ... fc-to-qt-2
Don't anthropomorphize computers - they don't like it.
Cryslon
Posts: 130
Joined: Sun Dec 28, 2008 7:41 pm

Re: Official Version for mac/linux - We need one

Post by Cryslon »

Also, I'm pretty sure Cryslon would have compiled Arbiter for Linux ages ago if that were somewhat easily possible. Case in point, Cryslon developed Freesweeper instead.
freesweeper predates me getting access to Arbiter code. Arbiter is written in Delphi, and the modern cross-platform replacement for that is FreePascal and GUI widgets from Lazarus, which is looking quite okay, though I have no experience working with it. The imports from FMain.pas are not actually that bad (3rd party LMD-whatever has to go, though), but other parts of Arbiter do use some widgets that aren't readily available for Lazarus, for example, TOutline which was deprecated by Dephi 6. I made several attempts to compile a useable Arbiter version with Lazarus, and the really big problem is that I lose interest in that too quickly to finish anything: too big piles of Delphi copy-paste, too little free time to clean the mess, too few people interested in it.
Go IRC! (try mibbit)
ronyhe
Posts: 4
Joined: Thu Sep 24, 2020 11:05 am

Re: Official Version for mac/linux - We need one

Post by ronyhe »

Well then, I guess this is an opportunity to tell you a little bit about myself.
My name is Rony Herut, I'm 32 years old and I live and work in Tel-Aviv, Israel. Which is also where I was born and raised.
I've been playing Minesweeper for a long time, and on this website I'm ranked 3rd in Israel, which is something I'm quite proud of.

Currently I'm a front-end developer at wix.com, but in addition to JS, I'm proficient in Java, Scala and Python.
I've played around with almost all major programming languages since that's an area of software design the interests me.
That includes (but is not limited to) Haskell, C, C++, C#, PHP and others.
However, I'm far from being proficient in these languages. (To answer your question)

On a personal note I love cats and dogs and I'm a huge Metal and Death-Metal fan, I also play bass guitar.

Regarding the NDA, I'm going to have to check if I'm allowed to sign such a document or work on closed source software as part of my employment contract. This will have to wait a bit since right now is a time of vacation in Israel due to Jewish holidays.
However, I don't think that would be a problem.

BUT, having read through the links you shared, it became obvious that I'm not well versed enough in many technical aspects that were a major part of the discussions. For example, I was only vaguely aware of 3BVS and its meaning. I don't know anything about the different video formats and so forth.
I'd like to learn these things though, and I'd love to get some more links to resources!
In other words, I'd love to start helping out where I can, but it seems I still have a lot to learn in order to help out on the major stuff.
User avatar
Tommy
Posts: 256
Joined: Mon Dec 01, 2008 9:22 pm
Location: Vienna

Re: Official Version for mac/linux - We need one

Post by Tommy »

Hi!

First of all, I'm sorry for taking so long to reply - real life happened, and in the breaks I had I was really not in the right headspace.
Cryslon wrote: Tue Sep 29, 2020 8:23 pm
Also, I'm pretty sure Cryslon would have compiled Arbiter for Linux ages ago if that were somewhat easily possible. Case in point, Cryslon developed Freesweeper instead.
freesweeper predates me getting access to Arbiter code. Arbiter is written in Delphi, and the modern cross-platform replacement for that is FreePascal and GUI widgets from Lazarus, which is looking quite okay, though I have no experience working with it. The imports from FMain.pas are not actually that bad (3rd party LMD-whatever has to go, though), but other parts of Arbiter do use some widgets that aren't readily available for Lazarus, for example, TOutline which was deprecated by Dephi 6. I made several attempts to compile a useable Arbiter version with Lazarus, and the really big problem is that I lose interest in that too quickly to finish anything: too big piles of Delphi copy-paste, too little free time to clean the mess, too few people interested in it.
Ah, thanks for setting the record straight there, and sorry for misrepresenting the facts!
ronyhe wrote: Fri Oct 02, 2020 2:03 pm Well then, I guess this is an opportunity to tell you a little bit about myself.
My name is Rony Herut, I'm 32 years old and I live and work in Tel-Aviv, Israel. Which is also where I was born and raised.
I've been playing Minesweeper for a long time, and on this website I'm ranked 3rd in Israel, which is something I'm quite proud of.
I didn't realize you were a long-standing member of the community! That is awesome, especially re: giving you vsweep source code access.
ronyhe wrote: Fri Oct 02, 2020 2:03 pm Currently I'm a front-end developer at wix.com, but in addition to JS, I'm proficient in Java, Scala and Python.
I've played around with almost all major programming languages since that's an area of software design the interests me.
That includes (but is not limited to) Haskell, C, C++, C#, PHP and others.
However, I'm far from being proficient in these languages. (To answer your question)
Nice! Have you by any chance ever worked with Django? Scoreganizer is a Django project, and could definitely use some love - while that wouldn't be a direct contribution to a native linux/mac clone, it could maybe free up resources for me. I'm strongly considering open-sourcing it once I'm done with that, so if you're definitely allowed to contribute to FOSS projects, that might be an option?
ronyhe wrote: Fri Oct 02, 2020 2:03 pm On a personal note I love cats and dogs and I'm a huge Metal and Death-Metal fan, I also play bass guitar.

Regarding the NDA, I'm going to have to check if I'm allowed to sign such a document or work on closed source software as part of my employment contract. This will have to wait a bit since right now is a time of vacation in Israel due to Jewish holidays.
However, I don't think that would be a problem.
No worries if you can't - I was mainly exploring options :)
ronyhe wrote: Fri Oct 02, 2020 2:03 pm BUT, having read through the links you shared, it became obvious that I'm not well versed enough in many technical aspects that were a major part of the discussions. For example, I was only vaguely aware of 3BVS and its meaning. I don't know anything about the different video formats and so forth.
I'd like to learn these things though, and I'd love to get some more links to resources!
In other words, I'd love to start helping out where I can, but it seems I still have a lot to learn in order to help out on the major stuff.
To be completely honest - not that much difference to me there. ViennaSweeper is the only "real" C++ project I ever worked on, and while I've written a python library to parse .rmv, I have no idea about how the other formats work, either (which is a shame, as I'd love to support using other clones on Scoreganizer!).

That said, I'd say that this thread is pertinent to this discussion: https://minesweepergame.com/forum/viewt ... ?f=26&t=86
Don't anthropomorphize computers - they don't like it.
Post Reply