Intel Mac Speed

Moderator
Posts: 1,140
Joined: 2005.07
Post: #16
Instead of flying off the handle, how about some common sense? First of all, this isn't a sweeping change: all you must do is make sure the cases of the files you reference to and the strings you use to reference those files are the same case, not any of the game's code itself. This isn't going to be that many changes. Your game has relatively few assets at this point, so it may take, what, 10 simple changes? Second of all, it's always a good idea to keep the cases matching. It minimizes errors, whether it's with users who do decide to keep their volumes case sensitive, or if you're going to port your game to another platform. I don't think Windows volumes are case sensitive, but Linux volumes most certainly are.
Oldtimer
Posts: 834
Joined: 2002.09
Post: #17
Quote:Hey, .005% of the world might have a silly formatting system in effect...
In that case, why do you even bother to support those silly madmen? Keith found a bug for you that would have been very, very subtle and difficult to find. We should be happy to have his crazy drive around. Wink
Luminary
Posts: 5,143
Joined: 2002.04
Post: #18
igame3d Wrote:And does Xcode make any warnings about this when compiling?

Of course not, it can't tell the difference between a random piece of text that is some fragment of a path that might or might not refer to a file on disk, and any other random piece of text.

It just bugs me because it *is* an Apple-supported configuration (and has been since 10.0.0 -- there's always been a UFS option, though case-sensitive HFS+ is newer), and testing it is not difficult. Heck, if you're thinking as you program, you probably wouldn't get it wrong anyway.

FWIW, it's the reason I don't buy Aspyr game ports -- they are some of a very very few pieces of commercial software I've met that has problems with case-sensitivity. I don't know how many other people out there are like me, but I suspect that there are more than you'd like -- geeks coming from Unix-land are likely to choose that option.

Anyway, enough ranting. I'm glad you've got yourself a UB and a frame-rate again Smile
Member
Posts: 715
Joined: 2003.04
Post: #19
akb825 Wrote:Instead of flying off the handle,
Flying off the Handle is how I get around, I get discounts and Frequent Handle Miles.
akb825 Wrote:how about some common sense?
Common sense implies things commonly known, you are making a big assumption.
akb825 Wrote:First of all, this isn't a sweeping change: all you must do is make sure the cases of the files you reference to and the strings you use to reference those files are the same case, not any of the game's code itself. This isn't going to be that many changes. Your game has relatively few assets at this point, so it may take, what, 10 simple changes?

You continue making assumptions that are incorrect.
This GAME is not the only thing we have on our plate. Its very much just a test bed at this point while other work is going on, other work that one can only assume from OSC's statement may possibily break on his eccentric system.

akb825 Wrote:Second of all, it's always a good idea to keep the cases matching. It minimizes errors, whether it's with users who do decide to keep their volumes case sensitive, or if you're going to port your game to another platform. I don't think Windows volumes are case sensitive, but Linux volumes most certainly are.
I've had no issue with case sensitivity in over 20+ years of computing, Never on Mac, never on Windows native or emulated. Linux isn't really interesting at all, I'll let anyone else who cares about linux do so, but in seven years of hype I've not seen any one good reason to want anything to do with it.

Fenris Wrote:In that case, why do you even bother to support those silly madmen?
You answer your question below.
Fenris Wrote:Keith found a bug for you that would have been very, very subtle and difficult to find. We should be happy to have his crazy drive around. Wink

Don't I look Happy? Wacko

Okay OSC replied before I typed this for the second time!
OneSadCookie Wrote:Of course not, it can't tell the difference between a random piece of text that is some fragment of a path that might or might not refer to a file on disk, and any other random piece of text.

I'm here today, from... the otherside, to tell you, your life's mission is to make it do that.

OneSadCookie Wrote:It just bugs me because it *is* an Apple-
supported configuration (and has been since 10.0.0 -- there's always been a UFS option, though case-sensitive HFS+ is newer), and testing it is not difficult. Heck, if you're thinking as you program, you probably wouldn't get it wrong anyway.


UFS was used for servers, it was not ever a default configuration. In general people do not run random software on their servers. I can bet you oh, everything I've got that none of the 300 Macs across the street at my kids elementary school are UFS, including their server, its still Appleshare IP, ha!

OneSadCookie Wrote:FWIW, it's the reason I don't buy Aspyr game ports -- they are some of a very very few pieces of commercial software I've met that has problems with case-sensitivity.
But how much software are you using, there's a lot out there, what did Steve say 65,000 apps?

Aspyr is porting Games from an OS that dominates the planet and that has no case sensitive issues, games that have already raked in several millions of dollars, you and the handful of unix-geeks that switched to the Mac and your combined $500 in annual purchases don't drop in the bucket. Not that I'm a fan of Aspyr.

OneSadCookie Wrote:I don't know how many other people out there are like me, but I suspect that there are more than you'd like
Why are you suspicious of that?
Can you taste the birth control I've been putting in your water? Drats!

OneSadCookie Wrote:-- geeks coming from Unix-land are likely to choose that option.
Again this is not a majority and they certainly aren't switching to the Mac for games.


OneSadCookie Wrote:Anyway, enough ranting. I'm glad you've got yourself a UB and a frame-rate again Smile

Yeah give it a rest already.Rasp
Thanks again.
I'd probably have found the Case problem by now and posted a fix, but lost half this reply an hour ago, and to top it off I've got pink eye Love or maybe its case sensitivity.
Moderator
Posts: 1,140
Joined: 2005.07
Post: #20
igame3d Wrote:This GAME is not the only thing we have on our plate. Its very much just a test bed at this point while other work is going on, other work that one can only assume from OSC's statement may possibily break on his eccentric system.
Just how many path names do you have hard coded for resource files that would require adjusting? Assuming you do things correctly, using variables, #defines, etc., it shouldn't be very many. In fact, if this is for a general engine, it should require very, very few, with 99% being specified by the specific game. (for their textures, models, map files, etc.) And that is all that breaks under a case-sensitive file system: not general code, not linked libraries (unless you changed the names from their standard), but resource files that you provide file names to open, which are generally specific to the game itself, not the engine. Usually, it's not going to be a big deal.
Sage
Posts: 1,403
Joined: 2005.07
Post: #21
iGame3D Wrote:Flying off the Handle is how I get around, I get discounts and Frequent Handle Miles.
hehehe where do I sign up? Wow

akb825 Wrote:Assuming you do things correctly, using variables, #defines, etc.,

since when are #define the correct way to do things? LOL

Sir, e^iπ + 1 = 0, hence God exists; reply!
Member
Posts: 715
Joined: 2003.04
Post: #22
akb825 Wrote:Just how many path names do you have hard coded for resource files that would require adjusting?

Lets see off the top of my head what I can think of that can possibly conflict with what any random user might change one letter and break on UFS.

Emitters, textures, mesh, scripts, fonts, levels, shaders, maybe more.

Hard coded? I'm pretty sure that the paths expected of most of that stuff, and the data presented by the engine for that stuff is lower case.

Folders on my drive however are upper case first letter, making them easier to read in the heaping mess of data available. No problem doing things that way for four years, even if the files/folders on the computers in New Zealand, New York, Texas, Belgium, and/or Germany had different cases.


akb825 Wrote:Assuming you do things correctly, using variables, #defines, etc., it shouldn't be very many. In fact, if this is for a general engine, it should require very, very few, with 99% being specified by the specific game. (for their textures, models, map files, etc.)
You love to make assumptions, but I don't think you really know whats going on. [edit--not that you are totally wrong, really]

akb825 Wrote:And that is all that breaks under a case-sensitive file system: not general code, not linked libraries (unless you changed the names from their standard)
Moving to Intel/Universal Binary broke all that, and fixing it was the last two days of our lives prior to "oh by the way I have a funky file system".

akb825 Wrote:but resource files that you provide file names to open, which are generally specific to the game itself, not the engine. Usually, it's not going to be a big deal.


Can you even take a guess how many scripts and file resources I have built up after four years? Its enough trouble drag and dropping them to my app and saying "hmm something broke", much less going through them all saying "oh now what was the case on that extension of that one file in that folder of 800 items"

Anyway....

Instead of resting my swollen eyes, I just went through over 200 files
that I found in this package, (which I didn't create in the first place)
and fixed up their paths. A whole lotta paths.

And here you have your very own Case Sensitive Version,
tested on a freshly formatted Case Sensitive drive.
iFly_012307_CS.app.zip

Good Luck. Have fun. Don't crash.
Thanks again.
Sage
Posts: 1,403
Joined: 2005.07
Post: #23
Might be too late but, http://robert.wsi.edu.pl/awk/start.html
^_^

Sir, e^iπ + 1 = 0, hence God exists; reply!
Luminary
Posts: 5,143
Joined: 2002.04
Post: #24
igame3d Wrote:And here you have your very own Case Sensitive Version,
tested on a freshly formatted Case Sensitive drive.
iFly_012307_CS.app.zip

Good Luck. Have fun. Don't crash.
Thanks again.

Yay Grin

Thanks Smile
Moderator
Posts: 1,140
Joined: 2005.07
Post: #25
Wow, I guess trying to prove that it was a big deal motivated you to fix it. I may have to try this technique more often. Wink

I will admit that there were more resource files than I thought, and I did probably assume too much. However, now that it's case-safe, maintaining it should be much simpler. As long as you have a clear format to naming your files, it shouldn't be too difficult to maintain. Sure, if you're also letting other people use your engine, they may break it, but your concern is only the base engine: if they do stupid stuff afterwards, it's out of your control. Oh, and if a user ends up randomly changing resource folder names within your engine, they deserve whatever bad things that come up: they should know better than to change stuff like that. Rasp
Member
Posts: 715
Joined: 2003.04
Post: #26
akb825 Wrote:Wow, I guess trying to prove that it was a big deal motivated you to fix it. I may have to try this technique more often. Wink
Your ideas of big and little deals are weird.
Broken on one guys mac = big deal
Changing 200 or more files with possible breaking strings = little deal
But uh, yeah, its good to critique else nothing gets learned.

akb825 Wrote:I will admit that there were more resource files than I thought, and I did probably assume too much. However, now that it's case-safe, maintaining it should be much simpler. As long as you have a clear format to naming your files, it shouldn't be too difficult to maintain.
That clear format is now an item to be determined, a necessity that I'm not particularly looking forward to deciding and then trying not to forget or having to fix everything that could possibly not conform to it.

akb825 Wrote:Sure, if you're also letting other people use your engine, they may break it, but your concern is only the base engine: if they do stupid stuff afterwards, it's out of your control. Oh, and if a user ends up randomly changing resource folder names within your engine, they deserve whatever bad things that come up: they should know better than to change stuff like that. Rasp

iGame3D is specifically made for people to do stuff before and afterwards, making the creation process as painless for the end user as possible is the goal. I want good things to happen to people that hack around in the guts of a game.

I want game gut hacking to surpass television watching in popularity.
Moderator
Posts: 1,140
Joined: 2005.07
Post: #27
Not working on a supported option is a big deal. Changing 200 file names really isn't that big of a deal. By comparison, it took much longer to get a universal binary version up and running. (since you said it took 2 days for the universal binary, but the time between your posts is about 3 hours) Sure, this doesn't have as large of a benifit, and 3 hours is still a somewhat large chunk of time, but having a consistent naming scheme, including capitolization, is a good thing. At the very least, it will make checking names at a glance easier when looking at your paths and the resulting files.
Member
Posts: 715
Joined: 2003.04
Post: #28
2007.01.20, 08:51 PM -- UB Explanation Read
2007.01.21 05:00 AM -- UB code update begins
2007.01.22, 04:40 PM -- UB version posted
2007.01.23, 10:21 AM -- UB Case Sensitive Update posted

I don't think those dates and times are accurate, my server time must be off.
But it certainly was not three hours to get the UB up and running, I wish it was.

About three hours to change the assets in Smultron, test, upload, and post.

There are still a huge batch of compile warnings that haven't
even been looked into, so until they are all gone, its going to be greater than two days getting the UB out the door clean.

The IDE I build the application with is not even UB until the end of this month, hooray for progress.
Oldtimer
Posts: 834
Joined: 2002.09
Post: #29
Just for future reference: you could wrap fopen in a function that lower-caps every string sent to it, and then make every file lower-caps in the file system. In order to drop the pain levels for renaming all those files, use this Automator workflow.

Do not underestimate the power of Automator. I shall have it bear my children.
Member
Posts: 715
Joined: 2003.04
Post: #30
Just a note. I tried the Windows build on a Macbook Pro running BootCamp yesterday and got over 200FPS.
I suspect running on the mac side would have been equally speedy.

Meanwhile I was pointed to Warhawks which is about everything cool we wanted to do with this game and more.
Thread Closed