Hey, we have forums!

Author Topic: Supported Platforms  (Read 206767 times)

0 Members and 2 Guests are viewing this topic.

Offline p3ter_st0ry

  • Bit Bit
  • ****
  • Posts: 64
  • Epic Beast!
    • View Profile
    • My Awesome Website
Re: Supported Platforms
« Reply #150 on: July 23, 2007, 03:38:24 pm »
Quote
Please read through the older posts in this topic and you'll understand why it's not that easy.
So poor Alec has to go through every file in his game and change them one at a time by hand, then he has to change all the references to those files, and then he has to get the music going and then he has to beta test and fix even more mistakes? That must suck.
"Legally-imposed culture-reduction is cabbage-brained!"

Offline Alec

  • Administrator
  • Dream Bit
  • **********
  • Posts: 2211
    • View Profile
Re: Supported Platforms
« Reply #151 on: July 23, 2007, 04:04:48 pm »
My plan is make everything lower case. Its easy to change all the filenames to lower case. What's hard is getting the code to work properly with that, because in some places its relying on the case... and its hard to find all those cases. Files can be referred to in the code, but they can also be referred to in the Lua scripts. It isn't like there's just a few places where files are loaded, there are many.

It seems now the major stuff is converted, but we have to test everything to make sure, and there's a lot of content in this game.

Offline p3ter_st0ry

  • Bit Bit
  • ****
  • Posts: 64
  • Epic Beast!
    • View Profile
    • My Awesome Website
Re: Supported Platforms
« Reply #152 on: July 23, 2007, 05:09:39 pm »
Wow!!! Keep up the good work!!!
Thanks for explaining that :)
"Legally-imposed culture-reduction is cabbage-brained!"

Offline nestor

  • Bit
  • ***
  • Posts: 23
    • View Profile
Re: Supported Platforms
« Reply #153 on: July 23, 2007, 05:41:28 pm »
Make Aquaria case in-sensitive like windows is.  This way you don't change the actual file names, but just change them internally, in the program code.  this is what Doom & Quake do.  This way developers and modders can call the files whatever they like, but inside the code the file names are run through a filter and changed to all upper or all lower. 

Offline Alec

  • Administrator
  • Dream Bit
  • **********
  • Posts: 2211
    • View Profile
Re: Supported Platforms
« Reply #154 on: July 23, 2007, 05:45:03 pm »
Yeah, I'm already doing that, and in some cases that works fine, converting everything to lower case internally and using no case string comparisons where applicable.

But not everything is handled by the "aquaria" code, e.g. including other lua files through lua. That's an automated lua process that I can't change, I just have to change all the include files in the 100+ scripts files and then ensure that they all work.

In the end, its never a case of "just" doing anything, there are lots of places where names of things are checked. There's no way I'm going to be able to catch them all just by "guessing", its going to require testing EVERYTHING.

i.e. Even in the "aquaria" code, there are many places where the names of objects are checked. Now that we're switching to lower case, they're not going to be consistent. There's no way I can know where all those instances are ahead of time, because there's a lot of different places where it can happen.


e.g.

entities used to be called stuff like
"HappyGoLucky"

That was my nice camel case filename convention that I had to let go of.

Now in the code they're all converted to lower case, all the filenames are lower case etc...

but I'm sure there's still some lua scripts out there that are getting the name back and comparing it to "HappyGoLucky", when now it'll be "happygolucky"

i.e. entity_getName(entity) == "HappyGoLucky"

that'll fail to run like it did

I'm sure there's a ton of other little things like that too.
« Last Edit: July 23, 2007, 05:48:53 pm by Alec »

Offline ski309

  • Mini Bit
  • **
  • Posts: 6
    • View Profile
Re: Supported Platforms
« Reply #155 on: July 23, 2007, 06:12:48 pm »
Perhaps you could use a regular expression search on your scripts? make it search for uppercase characters within strings/quotes? that might help the process.

Offline nestor

  • Bit
  • ***
  • Posts: 23
    • View Profile
Re: Supported Platforms
« Reply #156 on: July 23, 2007, 07:17:18 pm »
its going to require testing EVERYTHING.

judging by the forum you shouldn't have much problem finding testers.   ::)

In the end, its never a case of "just" doing anything

yeah, true that.  and I hadn't even considered lua.   forcing case consciousness for scripters might not be such a bad thing, after all, the fact that they are writing their own scripts implies a certain aptitude.

the leaked ubuntu video looks great btw.

Offline nestor

  • Bit
  • ***
  • Posts: 23
    • View Profile
Re: Supported Platforms
« Reply #157 on: July 23, 2007, 08:01:39 pm »
but I'm sure there's still some lua scripts out there that are getting the name back and comparing it to "HappyGoLucky", when now it'll be "happygolucky"

i.e. entity_getName(entity) == "HappyGoLucky"
wait, you can't do that anyway, compare a string with ==    can you?  unless its some overloaded C++ operator that I'm not aware of.  in this case you might still want to replace those with
Quote
  if  ( !strncasecmp( entity_getName(entity),  "HappyGoLucky", sizeof(typicalEntityString) )  )


Offline Alec

  • Administrator
  • Dream Bit
  • **********
  • Posts: 2211
    • View Profile
Re: Supported Platforms
« Reply #158 on: July 23, 2007, 08:04:18 pm »
In C++ you can with std::strings.

But I was referring to a script written in Lua. :)

And that's why I can't control it.

To do so, I'd have to replace entity_getName() with a function like entity_isName(entity, "Albadfkf!@4") so it can convert internally.

And I'm doing that to the scripts where possible, but obviously, changing all the script functions will still require a load of testing by us.

So yeah, I said it above, I'll say it again, I'm trying to make things case insensitive where possible.

But that doesn't make things take any less amount of time.

Offline wesley

  • Bit
  • ***
  • Posts: 46
  • Ubuntu Developer
    • View Profile
    • Personal TechBlog (Dutch)
Re: Supported Platforms
« Reply #159 on: July 23, 2007, 09:29:49 pm »
Hey, if you want extra testing, I'll buy the game right now if you give me access to the linux alpha/b
Human Knowledge Belongs To The World - Antitrust (2001)
http://www.ubuntu.com

Offline Zam

  • Extra Bit
  • *****
  • Posts: 163
  • ph33r
    • View Profile
Re: Supported Platforms
« Reply #160 on: July 23, 2007, 10:30:39 pm »
If only it was that easy, Wesley....

Offline wesley

  • Bit
  • ***
  • Posts: 46
  • Ubuntu Developer
    • View Profile
    • Personal TechBlog (Dutch)
Re: Supported Platforms
« Reply #161 on: July 23, 2007, 11:47:56 pm »
If only it was that easy, Wesley....
True. But it doesn't matter.
They'll get it done.

I believe in alec ever since he did a coding spree to do a quick test/port from Bass to SDL_mixer ;)
« Last Edit: July 23, 2007, 11:50:04 pm by wesley »
Human Knowledge Belongs To The World - Antitrust (2001)
http://www.ubuntu.com

Offline nestor

  • Bit
  • ***
  • Posts: 23
    • View Profile
Re: Supported Platforms
« Reply #162 on: July 24, 2007, 01:03:40 am »
To do so, I'd have to replace entity_getName() with a function like entity_isName(entity, "Albadfkf!@4") so it can convert internally.

And I'm doing that to the scripts where possible, but obviously, changing all the script functions will still require a load of testing by us.

yes, this becomes a problem if parts of the Lua creatures are hardcoded.  but for the parts that are read in from external scripts, couldn't you convert everything to a unified case at read time?

So yeah, I said it above, I'll say it again, I'm trying to make things case insensitive where possible.

But that doesn't make things take any less amount of time.

sorry this is so much work.  you're doing the work of a whole team.  I hope you get to wade in swimming pool filled with money or date Jessica Alba or something for all your effort.  :)

edit: oh shit, sorry if you have a girlfriend

Offline Zam

  • Extra Bit
  • *****
  • Posts: 163
  • ph33r
    • View Profile
Re: Supported Platforms
« Reply #163 on: July 24, 2007, 01:09:25 am »

Actually, I was referring to how you want to get into the beta...


Anyway, The code monkeys are hard at the gridestone. Either way, I can't wait  :'(

Offline Xilon

  • Mini Bit
  • **
  • Posts: 3
    • View Profile
Re: Supported Platforms
« Reply #164 on: September 02, 2007, 08:06:19 am »
Sorry to bring up an old thread.

Firstly I'd like to ask how the Linux port is going? it seems the discussion died down about it somewhat.

I'm wondering how you guys are handling the OSX port in terms of case sensitivity. I don't really know why this hasn't been posted in this thread, but OSX's file system is also case sensitive (as are all the ones I've heard about apart from the Windows ones). OSX is based on BSD and hence is Unix-like, much like Linux. Both OSs use file systems which are case sensitive. Maybe the old HFS filesystem wasn't, HFS+ and the upcoming ZFS filesystem are case sensitive, so you would be running into identical problems as you are with Linux. I don't like how Linux is being blamed for that.
Also it's quite probable that, given that Windows will ditch backwards compatibility, Vienna (or whatever the next Windows will be called) will also feature a case sensitive FS since it's the logical thing to do.
Having skimmed over the Comparison of File Systems wiki entry I noticed NTFS is case-sensitive as well... so aren't you having problems either way? I might be being ignorant since such a thing would be hard to miss...

I'd also like to say that I am interested in the port. I won't say that I will buy the game, as I don't know if I would want to play it (irrespective of platform), but if I were to buy it I would only do so if it was a Linux port since that is my OS of choice.
I don't know about others but being a Linux user I tend to look at quality over branding/flashy graphics (not that Aquaria doesn't look great). Windows users may not see this as a great game because I think Windows users tend to look more at the graphics and how mainstream the product is, so selling it in that market may not be too great. The whole concept of having a 2d side-scroller is pretty much considered to be "old" and people don't like "old" stuff.

There is definitely a small market on the Linux platform, but it's a tricky issue. As someone has already mentioned it's a "Catch 22" scenario. You can't really buy anything that doesn't exist, so you can't accurately say how big the Linux market is. There are a lot of great games on Linux, a lot of them are open source, but most (apart from the commercial ones) tend to look old. I don't know why... either way there aren't many games that are attractive to a typical Windows user. There are games like the Quake, Doom and UT series as well as some other mainstream games but that's about it. People don't want to game on Linux because it lacks the big titles that are on Windows. Because of this companies also don't see any profit in Linux, and the circle closes, Linux is left without any major titles to bring in more users. There's also the issue of DirectX which locks in developers to the Windows platform, but luckily it does not apply for Aquaria.

It is early days for Linux, and gaming hasn't really been born yet. Linux (and *BSD and even OS X and similar) needs companies, or indies, to develop games so as to create the possibility of a market. Linux will most definitely grow, but it will grow faster if (good) games are available on it.

I'm not really targeting that at you, I'm just describing how I view the whole issue of gaming on Linux. I see that the port is going well, and hope that you do get there. It would be great to have a cool and original game like Aquaria on Linux and hopefully you will be part of the developer community that paths the future of Linux gaming :).