とりあえず、半日ほど費やして『将棋神やねうら王』のMac対応作業をしてみた。
『将棋神やねうら王』、Macでとりあえず動くところまでは出来たけども、MonoのGDI+まわりの実装、バグ多すぎで、それを回避するためのコードをめっちゃ書いたが、それでもまだ不十分。MonoのほうのGDI+のコード修正したほうが早いぐらいだ。MacもMonoももう嫌。 pic.twitter.com/QA8q08mYKi
— やねうら王 (@yaneuraou) September 29, 2018
画面を見ていただいてわかるように、ほぼ動くところまで来たのだが、色々おかしい点もあり、商品として販売できるレベルにはほど遠い。
たぶんLinux環境でもほぼ同じ状況だと思うので、Linux環境でも機種依存の部分のコード(MyShogi.Model.Dependent.Mono/MonoAPI.cs)を少し書き足すだけで動くと思う。
まあ、しかし、この作業は今回はここまでにしておく。
そもそももう少し待っていれば、MicrosoftがVisual Studio for MacでWindows.Formsでの開発できるようになっているかも知れないし、Monoももっと改善されているかも知れない。いま私のほうで、わざわざMonoのバグや画面表示のおかしいところを回避するようなコードをこれ以上書いても仕方がない。
ともかく、『将棋神やねうら王』のアップデート作業が一通り落ち着いてからまた挑戦してみようと思う。
動かしてみたい人のための資料
・Mac、Linuxで動作させるには?
// 適宜、情報は、この↑リンク先の記事に追加します。
[2018/10/23 16:45 追記] Ubuntu 18.04で動くようになりました。
とりあえず、Ubuntu18.04で『将棋神やねうら王』、ほぼ完璧に動くようになったけども、あとはMono側のbugでMonoのほうを修正しないとどうしようもないので、Ubuntuでの作業はこれでしばらくはお休み。Mac/Linuxで遊んでみたい人は、以下のテキストを参考にどうぞ。https://t.co/2WlFol7eAs pic.twitter.com/N7qJbvI3L0
— やねうら王 (@yaneuraou) October 23, 2018
MicrosoftやAppleが仕事するまで待つ作戦!
すごく良いと思います。
C#が出た時に拙者がVC++で頑張ったのは何だったの?
ってなったことを何となく思い出します。
下位モジュールに詳しくなるのは良いのですが。
製品にして後発が開発されるとき、開発箇所がダブってるとどちらかが損しますから。
(ござる略)
いま、Microsoftさんが、Mac/Linuxの.NET Frameworkの移植をガンガン進めてくれているはず…。