We have an open source editor and engine, yet to date we only have an OS X runtime.
Is there anyone out there who also feels that the runtime is really only half the gem when it comes to a hardware-specific platform.
The thing I love about Apple gear is it's incredibly low-maintenance, inter-component stability at the factory level, and it runs one of the most practical to use OS's I've experienced since XP.
Working on a Macbook Pro is one thing, developing my game on it while flying from one end of the globe to the other is to be a treasured experience.
I can't surely be the only mate here with Apple gear who's torn between BootCamp, AGS game making lust, a Lion from the mountain, and an impossibly dark void inside the soul that can only be filled with a noble porting exercise. (nod)
JJS, Crimson, Electroshokker, Anyone interested in opening up a Mac branch for the editor?
I had a look at the draconian edition via monodevelop. Only when I saw constant compiler errors that seemed to me to be non issues (an error being thrown because xxx does not have a value set), did I realise how out of my depth I was (I'm barely competent at C# as it is).
Not really a Mac user myself, but I think getting the editor running on osx, even if its just to compile windows exe's at first, should be a priority for reaching new iCustomers.
Does it not work with any of the wine/crossover/etc implementations on Mac?
Quote from: subspark on Mon 12/11/2012 21:53:24
JJS, Crimson, Electroshokker, Anyone interested in opening up a Mac branch for the editor?
Interesting how you've mentioned everyone except tzachs and Alan v. Drake, guys who were excessively working on editor in the past :).
I am afraid you may strike me out right away, I know literally nothing about Mac, let alone porting to one. Will be able to help with general coding though if such need arises. But so far, I was mostly in refactoring the engine, editor is beyond my knowledge at this moment.
Anyway, if I understand this correctly, this is about making editor code compatible with Mono prior to anything else? This question was discussed before few times, for example it is mentioned here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=46804.0.
That would be great, because it would also mean that it would work on Linux. From what I read here, the Editor should basically work with Mono, but the problem is that AGS.Native is a mixed mode dll and that works only on Windows. Porting requires splitting AGS.Native into managed and unmanaged code. sonneveld started doing that (http://www.adventuregamestudio.co.uk/forums/index.php?topic=45990.msg620882#msg620882), but he stopped and never uploaded his work in progress.
Quote from: BigMc on Mon 12/11/2012 22:43:23
problem is that AGS.Native is a mixed mode dll and that works only on Windows. Porting requires splitting AGS.Native into managed and unmanaged code.
While I did not do much changes to AGS.Native, except when changes in engine/editor shared code required that, I kept asking myself, how strong is the need to have a native code there at all. Surely, time and effort is required to rewrite everything to C#. Biggest problem is Allegro, I think; editor must convert all bitmaps and fonts to native Allegro format.
I wonder, how difficult that would be to make a stand-alone game compiler (as a native app), moving a) script compiler and b) graphics converter there?
Perhaps, more than one executable, like one for each task?
I think one of the reasons that there is some native code in their was to reduce code duplication since both the engine and editor need to do things like draw GUIs.
Personally, I dont think thats much of a concern here.
CJ did start making a pure c# compiler but never finished it. Check the repo.
Quote from: Calin Leafshade on Tue 13/11/2012 00:46:20
I think one of the reasons that there is some native code in their was to reduce code duplication since both the engine and editor need to do things like draw GUIs.
Personally, I dont think thats much of a concern here.
That is not only a concern of (not) having extra copy of a code per se, but ensuring that both engine and editor use same data structures and corresponding algorythms (e.g. for reading/writing game data).
Having those functions rewritten in two languages would require extra effort to keep track on changes in the both apps.
Of course, there's nothing that would be impossible. But, as usual, time is what adds restrictions to everything we do.
I
suppose that it would be faster to just move the code into stand-alone utility. That may be later rewritten in C#. But when I say "suppose", I mean that I make an assumption based on what I know... this need to be checked more thoroughly.
So a collection of separate apps for each major area of AGSEdit?
That might make stuff easier to port in a logical-sequential manner but would it be trivial to bundle it back up into an IDE again?
Perhaps the editor could be more easy to improve/fix/moderate this way generally. :-\
A simple shell to house each independently managed component under a single interface?
Let's not forget that the engine does not currently run on anything newer than Snow Leopard (because Apple removed the Carbon framework). This is a separate issue to mono compatibility but not being able to test the game would be a dealbreaker too.
I agree now that Carbon is deprecated, a spanner was thrown into the works. But in a poetic irony, that spanner could be used to get AGS running in Cocoa. This would seem great from consumer perspective because the barrier of availability is substantially minimal.
Upgradng Snow Leopard to Mountain Lion ($20) is a quarter of the expense for an upgrade to Win 7 upgrade from a prior version and the process is done on the spot. $20 for an under 20 minute online OS upgrade. 8-)
I've long appreciated why win software compatability comes in hops and skips but Apple have made upgrading your systems inexpensive and effectively seamless a little while ago.
I'd sure as heck offer my vote for a Cocoa powered AGS (Editor & Runtime) should any programmer be interested enough in exploring the potential. :-*
Quote from: subspark on Tue 13/11/2012 22:15:12
I'd sure as heck offer my vote for a Cocoa powered AGS (Editor & Runtime) should any programmer be interested enough in exploring the potential. :-*
You may not believe it, but your vote alone will not convince any programmer to lift a finger. :-*
(lol)
Note that while the native dll is the major issue here, the editor also needs some work to be fully mono compatible. I have made some improvements (http://www.adventuregamestudio.co.uk/forums/index.php?topic=46378.0) in that regard, but there's still more work to be done.
I just realized that the Windows (Winforms) version of Scintilla would also have to be ported to Mono first. Any thoughts about that?
It's certainly a popular idea. It appears Winforms 2.0 has been ported over to runs under mono already:
http://www.mono-project.com/WinForms (http://www.mono-project.com/WinForms)
The problem is that the Winforms version of Scintilla does not work with Mono. FlashDevelop was never ported to Linux/Mac because of the same issue. It is easy to miss, because Scintilla works with Mono, but only using GTK+ instead of Winforms as GUI toolkit. Since the AGS Editor uses Winforms, Scintilla also has to use Winforms.
Has anyone considered re-doing the editor from scratch using c++ and wxwidgets? Or even using q7basic which compiles to the main 3 OS or QT itself? I know this would be a huge under-taking, but it might be one that could solve the cross-platform editor issue.
QT has .NET bindings as well, but they've not been updated in nearly three years. Q7BASIC? Well, maybe, but as it'd require people to purchase it maybe not. WXWidgets also has .NET bindings, may be worth checking out?
Redoing the editor might well be the best way, but that'll require the compiler being fully separated from the editor code. Not sure if that's been done and added to the main branch at all, yet.
Winforms works under mono in OSX. The GUI toolkit is not the issue really. The problem is the same as linux, namely all the PInvoke stuff and the named pipes used for debugging.
The PInvoke stuff needs to be replaced with pure .Net and the named pipes need to be replaced with a TCP socket. On the former Tzachs has done a lot of work. The latter will be more involved but the actual mechanism of debugging will remain the same, just the method of communication needs to be changed which is not a huge issue.
This is all aside from the fact that the engine itself does not currently work on OSX. Rewriting the editor would be a massive undertaking and is really not necessary. Mono is perfectly compatible with OSX.
Quote from: Calin Leafshade on Sun 17/02/2013 15:48:44
Winforms works under mono in OSX. The GUI toolkit is not the issue really.
I didn't say that Winforms + Mono is a problem on Linux/OSX. I said that Scintilla for Winforms does not work on Linux and Scintilla for Linux does not work with Winforms.
If anyone's looking for a workaround, running the editor (or games) through Parallels with Windows 7 works very well.
It would be cool to get the editor to run completely in Mono, though! That might be the first step to moving the project cross platform. There's seems to be a lot of problems that can be worked around and solvable in the meantime:
- Scintilla issue - To start, the alpha version of the editor could live without it and have the user pick an editor of their choice (Textmate, bbedit, Sublime, TextWrangler, macvim...)
- PInvoke - Is it solvable in the long term? Could you make an editor without it first? (yeah, maybe it would mess the debugging... but it could get you to at least an alpha editor.)
- OSX Engine - I've seen a major AGS game working on iPhone. I wonder how close we are to take the next step and make it OS X compatible as well.
Yeah, it'd be nice to develop on these quality machines.
Quote from: Edmundito on Sat 02/03/2013 23:40:58
- PInvoke - Is it solvable in the long term? Could you make an editor without it first? (yeah, maybe it would mess the debugging... but it could get you to at least an alpha editor.)
IIRC the PInvoke needed because it uses C++ dll? I think the best is to rewrite everything to C#. The sources are open, so the problem is to find someone who will do that in a proper way.
Quote from: Edmundito on Sat 02/03/2013 23:40:58
- OSX Engine - I've seen a major AGS game working on iPhone. I wonder how close we are to take the next step and make it OS X compatible as well.
AFAIK, it is compatible with older OSX versions. Newer OSX versions cannot run Allegro 4 library. It is all explained here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=47264.0
I am working on updating the engine to use Allegro 5 library now. I am generally optimistic about this, although there are certain things that will be not easy to recreate (8-bit graphics support). For that reason I am planning to do make it as a parallel branch for the first time.
Quote from: Crimson Wizard on Thu 07/03/2013 08:06:46
AFAIK, it is compatible with older OSX versions. Newer OSX versions cannot run Allegro 4 library. It is all explained here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=47264.0
I am working on updating the engine to use Allegro 5 library now. I am generally optimistic about this, although there are certain things that will be not easy to recreate (8-bit graphics support). For that reason I am planning to do make it as a parallel branch for the first time.
I think two versions of the Engine (One for Allegro 4 and one for 5) would be nice. I would just wonder if its something that will go on surviving. I mean, basically you would have to implement the same features into both repositories of AGS, right? What if a feature you implement can only be done with A5 and not A4? I fully support a whole conversion to A5 as it supports all the major OS platforms and I Am sure it can be patched to work again with the PSP. As for the 8-Bit thing, is it something that is necessary? Whats the concerns with it exactly? Just a few thoughts.
Main reason I was posting here was for porting the editor to other operating systems...
Has anyone taken a look at this: http://xamarin.com/
It doesn't solve the Linux issue of the editor (Except for Mono), but it allows you to port to MacOSX, IOS/Android Tablets and it can integrate with MSVC#, so, who knows, might be worth looking at. Atleast it can still use much of the same code already created. I still think the best thing to do is to seperate the compiler and the editor so that users can use either text editing software or make their own editors to create AGS games and then just make the compiler cross-platform. AGAST (Though not cross-platform) had it set up that way.
xamarin is just a rebranded monodevelop.