Author Topic: AGS engine Mac OS X port  (Read 39493 times)

JanetC

  • Mittens Serf
AGS engine Mac OS X port
« on: 10 Dec 2012, 19:12 »
Everything seems a little quiet round here. Is there any current progress on a port of AGS to Mac? Because Wadjet Eye gets a tonne of requests for Mac versions of our games.

The notes on the OSX port at https://github.com/adventuregamestudio/ags read:

Quote
The OSX port is currently only interesting for developers.

Main reason for this is that it only runs on OSX versions 10.6 (Snow Leopard) or lower. Important frameworks used by Allegro 4 were removed in later releases.

What were these important frameworks, and how feasible is a working port?

Re: AGS engine Mac OS X port
« Reply #1 on: 10 Dec 2012, 20:07 »
You could ask the Allegro Development list [1] how difficult porting Allegro 4 would be.
An alternative would be porting AGS to Allegro 5. [2]

[1] http://alleg.sourceforge.net/maillist.html
[2] http://www.adventuregamestudio.co.uk/forums/index.php?issue=355.0

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #2 on: 10 Dec 2012, 21:20 »
I'll add my "two cents". To be frank, I did not yet have chance to explore Allegro 5 and learn how much is different from A4 (code-wise). But the general issue is that allegro 4 calls are scattered throughout the engine (those that deal with graphics and controls mainly) instead of being groupped (like in helper functions or classes). If it is only about changing function names, it is not much of a problem. But I fear that there may be changes to logic of usage, in such case certain parts of AGS should be completely overwritten.

As I see it (just a basic idea) there is fast way and "good" way. Fast way is just discard all code style considerations and brute-force Allegro 5 into engine. "Good way" is to properly reorganize the code, hide Allegro 4 calls under interfaces, like Bitmap, Graphics, Mouse etc classes, only then port to A5. I like second way more, but I have no idea how much more time it will take. Depends on how many people involved, I guess. Maybe hacking A5 in place of A4 won't make AGS code too much worse, than it is :).

EDIT: Couple things more:
- The editor uses Allegro 4 too, for converting graphics. I guess (only guess) that is minor issue and could be fixed more easier.
- I really hope there's compatibility between A4 and A5 resources (like bitmaps structure). Otherwise there must be a conversion.

Re: AGS engine Mac OS X port
« Reply #3 on: 10 Dec 2012, 22:04 »
The graphics code including data structures has probably changed quite a lot. Allegro 5 was written for OpenGL, Allegro 4 for DOS. But then it's probably a good thing if AGS uses it's own data structures and the game file format is disentangled from the library dependencies of the engine.
« Last Edit: 10 Dec 2012, 22:09 by BigMc »

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #4 on: 11 Dec 2012, 10:08 »
@JanetC, also, a small note, seeing as you (https://github.com/JanetGilbert/ is your repository, right?) are merging our refactored code from time to time:
current 'ags/master' branch, while having more potential due to rewritten script interpreter (it is more compatible with 64-bit builds), is still considered a bit unstable (well, for the same reason ;)), and had new bugs in recent past. So if you are using your branch for shortly upcoming releases, I'd recommend not to update from our repository for some time.

JanetC

  • Mittens Serf
Re: AGS engine Mac OS X port
« Reply #5 on: 11 Dec 2012, 20:30 »
@JanetC, also, a small note, seeing as you (https://github.com/JanetGilbert/ is your repository, right?) are merging our refactored code from time to time:
current 'ags/master' branch, while having more potential due to rewritten script interpreter (it is more compatible with 64-bit builds), is still considered a bit unstable (well, for the same reason ;)), and had new bugs in recent past. So if you are using your branch for shortly upcoming releases, I'd recommend not to update from our repository for some time.

Do you mean not to update from Refactory or master? Because I haven't updated in a while, but when I do, I use Refactory.

Thanks for the info on Mac, guys. Sounds like quite a task!

When you say "You could ask the Allegro Development list [1] how difficult porting Allegro 4 would be.", BigMc, I googled quickly and the Allegro downloads page seems to show that Allegro 4 is already Mac compatible. Am I not following something?

http://alleg.sourceforge.net/download.html

Re: AGS engine Mac OS X port
« Reply #6 on: 11 Dec 2012, 20:39 »
It works up to Mac OS X 10.6 and Allegro 4.4 was released before Mac OS X 10.7, so that information is probably outdated.

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #7 on: 11 Dec 2012, 22:33 »
Do you mean not to update from Refactory or master? Because I haven't updated in a while, but when I do, I use Refactory.
I mean both. There was a big change made in refactory branch (script interpreter). Then we created master branch and now working in there.
I hope it will become safe in a while, people are using it to play games, so these changes will be tested.

Thanks for the info on Mac, guys. Sounds like quite a task!
Well, I do not want to overestimate things or scare people off. I don't think it is a year-long of work, maybe 2-3 months of work. There just should be dedicated someone who would do that fairly.
There's already my Bitmap class in use, someone need to do the rest (probably Graphics class for storing drawing settings like colors, Font class, etc).
I was hoping to work on this, but then I switched to something that I wasn't even planned to work on, and that distracted me for nearly 3 months.
If you have a will to help, you are most welcome :)

JanetC

  • Mittens Serf
Re: AGS engine Mac OS X port
« Reply #8 on: 12 Dec 2012, 14:43 »
I mean both. There was a big change made in refactory branch (script interpreter). Then we created master branch and now working in there.
I hope it will become safe in a while, people are using it to play games, so these changes will be tested.

When was the unsafe change made? I have a beta of Gemini Rue on iOS running on the Wadjet Eye boards at the moment, and we are getting a lot of crash reports.

If you have a will to help, you are most welcome :)

I have a will but no time, since I am busy on the iOS ports of our game and will be even busier with a baby next spring. :)

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #9 on: 12 Dec 2012, 15:00 »
When was the unsafe change made? I have a beta of Gemini Rue on iOS running on the Wadjet Eye boards at the moment, and we are getting a lot of crash reports.

29th November.

But according to network graph, you made last update from "refactory" 29th october, so it might be something different.
I don't remember anyone tested our latest changes on iOS. JJS should know better though. We confirmed it works on Windows, 32-bit Linux, 64-bit Linux and old big-endian Mac (I think).
Well, and Android (judging on this user report: http://www.adventuregamestudio.co.uk/forums/index.php?topic=44768.msg634773#msg634773)
« Last Edit: 12 Dec 2012, 15:10 by Crimson Wizard »

JJS

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2012, for his efforts in porting AGS to multiple platforms
    •  
Re: AGS engine Mac OS X port
« Reply #10 on: 12 Dec 2012, 18:15 »
The newest builds work for me on iOS too. But I have not done extensive testing, really. I would also recommend not to update your source to the latest "refactory" or "master" version because this might have new bugs and will have zero benefit for only running on iOS.

When was the unsafe change made? I have a beta of Gemini Rue on iOS running on the Wadjet Eye boards at the moment, and we are getting a lot of crash reports.
Doesn't sound so good. If you have something that seems to be a general port problem please forward it to me. The most likely cause of crashes is still the multithreaded audio. If so I would expect it to mostly affect devices with multiple processor cores.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Blackthorne

  • Infamous Quests
    • Blackthorne worked on a game that was nominated for an AGS Award!
      Blackthorne worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #11 on: 05 Feb 2013, 15:25 »
Hey guys - just a quick jump in, asking if there's still any development with this?  Just curious, because Infamous Quests is definitely interested in having a native Mac Port, instead of a Wine Wrapper.


Bt
-----------------------------------
"Enjoy Every Sandwich" - Warren Zevon

http://www.infamous-quests.com

JanetC

  • Mittens Serf
Re: AGS engine Mac OS X port
« Reply #12 on: 05 Feb 2013, 16:56 »
Dave posted a recruitment ad for someone to port AGS to Mac.

http://www.adventuregamestudio.co.uk/forums/index.php?topic=47577.0

Having our back catalogue on Mac is something Wadjet Eye Games really wants to do.

JanetC

  • Mittens Serf
Re: AGS engine Mac OS X port
« Reply #13 on: 08 Feb 2013, 22:01 »
Not much interest here... is it worth pointing out that Wadjet Eye would be willing to pay someone to do this port?

Re: AGS engine Mac OS X port
« Reply #14 on: 08 Feb 2013, 22:20 »
Not much interest here... is it worth pointing out that Wadjet Eye would be willing to pay someone to do this port?
On a practical note, maybe not many coders here have access to Mac OS X and/or XCode? Maybe you should try to advertise this on a freelancer site, maybe one orientated towards Mac programming.
Stuart "Sslaxx" Moore.

JanetC

  • Mittens Serf
Re: AGS engine Mac OS X port
« Reply #15 on: 08 Feb 2013, 23:00 »
On a practical note, maybe not many coders here have access to Mac OS X and/or XCode? Maybe you should try to advertise this on a freelancer site, maybe one orientated towards Mac programming.

That's the second option if no one is interested. I'd prefer to work with someone who understands AGS if possible. I might just do it myself, but that wouldn't be until at least late this year, probably next year, which would be a shame.

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #16 on: 10 Feb 2013, 15:46 »
I can't give any promises in regards to timeline, but I was going to work on separating Allegro 4 from the general code anyway. Or someone else could do that too to speed things up (I think more people are becoming interested in working on the engine, like scotchchiefbaker and Slaxx). I will be returning to this task very soon. I think the situation here would become more clear in couple of months.

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #17 on: 15 Mar 2013, 11:05 »
Something I totally missed, there was a Mac OSX port made by Nick Sonneveld using SDL: http://www.adventuregamestudio.co.uk/forums/index.php?topic=45708.0

Notice, it is said that Gemini Rue was successfully run with that port.

What is its status? Why was it discontinued?
Also, he mentions a reasonable argument about using SDL instead of Allegro 5. May anyone on comment that?
« Last Edit: 15 Mar 2013, 11:22 by Crimson Wizard »

Re: AGS engine Mac OS X port
« Reply #18 on: 15 Mar 2013, 15:36 »
What is its status? Why was it discontinued?
I guess it's much less polished than the the 3.3 engine.
Quote
Also, he mentions a reasonable argument about using SDL instead of Allegro 5. May anyone on comment that?
He just said Allegro 5 is lacking pixel drawing and palette manipulation features. Is pixel drawing really a problem? Do you think SDL provides everything, so that it would require less code to be moved to AGS itself?

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: AGS engine Mac OS X port
« Reply #19 on: 15 Mar 2013, 17:19 »
He just said Allegro 5 is lacking pixel drawing and palette manipulation features. Is pixel drawing really a problem? Do you think SDL provides everything, so that it would require less code to be moved to AGS itself?
I know nothing of SDL, so don't know if it's less coding... I just see there's already a Mac port that probably could be used to make few releases, like Wadget Eye wanted to.
Palette manipulation may be a problem if we care of supporting 8-bit games. I know there might be some solutions for A5 too, but don't know how difficult it will be to implement them (and how effective they would be). Not sure what he meant about pixel drawing though (I ignored that part); if he means setting certain pixels, or setting raw bitmap data, Allegro 5 supports that pretty well.