gamedevlists-general Mailing List for gamedev (Page 29)
Brought to you by:
vexxed72
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(28) |
Nov
(13) |
Dec
(168) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(51) |
Feb
(16) |
Mar
(29) |
Apr
(3) |
May
(24) |
Jun
(25) |
Jul
(43) |
Aug
(18) |
Sep
(41) |
Oct
(16) |
Nov
(37) |
Dec
(208) |
2003 |
Jan
(82) |
Feb
(89) |
Mar
(54) |
Apr
(75) |
May
(78) |
Jun
(141) |
Jul
(47) |
Aug
(7) |
Sep
(3) |
Oct
(16) |
Nov
(50) |
Dec
(213) |
2004 |
Jan
(76) |
Feb
(76) |
Mar
(23) |
Apr
(30) |
May
(14) |
Jun
(37) |
Jul
(64) |
Aug
(29) |
Sep
(25) |
Oct
(26) |
Nov
(1) |
Dec
(10) |
2005 |
Jan
(9) |
Feb
(3) |
Mar
|
Apr
|
May
(11) |
Jun
|
Jul
(39) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
|
2006 |
Jan
(24) |
Feb
(18) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(29) |
Sep
(2) |
Oct
(5) |
Nov
(4) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
(9) |
Oct
(5) |
Nov
(4) |
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(34) |
Jun
|
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Eero P. <epa...@ko...> - 2003-12-26 19:43:12
|
Brian Hook wrote: > About a year and a half ago there was a fairly major brouhaha on the > algorithms list about this line of code: > > int x = * ( int * ) &somefloat; > > Now, let's push aside endianess and size issues, the concern was that > since there was "type-aliasing" that Something Bad could happen. > Something Bad, of course, being a rather ambiguous statement. > > I'm aware of all the bad things that can happen if you have > type-aliasing in conjunction with pointer aliasing, which is related, > but that one line above doesn't seem like it should be bad _with a > legal C compiler_. > > The major concern are optimizations that the compiler may make that > affect order. For example: > > somefloat = 1.0f; > x = * ( int * ) &somefloat; > > In theory, a heavily optimizing C compiler would see that the > assignment to somefloat should not affect the assignment to x since > they are incompatible types, which may allow it to decide to assign to > somefloat _after_ the assignment to x. > > But that would be illegal. The C specification states that the end of > every expression is a sequence point, and thus the assignment to > somefloat MUST be flushed before any subsequent statements are > executed. > I have understood sequence points quite differently... I see them as rules on what I should do, not as promises what the compiler will do. It is true that if I obey the rules the compiler will (hopefully) provide me the illusion that it is also doing the same. Still expecting that some value actually gets written to memory at a certain time based on the sequence points is IMHO incorrect. For actually getting values really written out you need a Voodoo priest, three (black) chickens and the volatile keyword. I think specifically the compiler according to the latest rules has the right to really fool with your code, because according to the rules the float and integer values cannot be related to each other anyways, so why would the compiler care about ordering. > Of course, granted, using a union makes more sense and is a bit > cleaner, I'm fine with that: > > union > { > int i; > float somefloat; > } u; > > u.somefloat = 1.0f; > x = u.i; > > But according to the C standard, the above is undefined ("If the value > being stored in an object is accessed from another object that > overlaps in any way the storage of the first object, then the overlap > shall be exact and the two objects shall have qualified or unqualified > versions of a compatible type; otherwise, the behavior is > undefined."). > I also pointed this at the algorithms list, apparently the union trick is something which is specifically ok with gcc, but I agree it is not a good general solution. I think there is a valid answer through the pointer manipulation though. I have heard that (someday I must purchase the standard instead of relying on hearsay) the new rules consider char * special so that the compiler will not do any aliasing optimisation around it. So converting your float variable address to char pointer, and constructing the integer through it should be the correct way. I just tried and gcc seems to stop the aliasing warning even if I only do this: float s=t; int x= *(int *)(char *)&s; return x; But I am certainly not sure if that is really enough. (Although both pointer conversions separately should be ok) > Anyone have something more authoritative on this issue? > Ooops, well you got my opinion at least... Eero |
From: Brian H. <ho...@py...> - 2003-12-26 18:04:17
|
About a year and a half ago there was a fairly major brouhaha on the algorithms list about this line of code: int x =3D * ( int * ) &somefloat; Now, let's push aside endianess and size issues, the concern was that since there was "type-aliasing" that Something Bad could happen. Something Bad, of course, being a rather ambiguous statement. I'm aware of all the bad things that can happen if you have type-aliasing in conjunction with pointer aliasing, which is related, but that one line above doesn't seem like it should be bad _with a legal C compiler_. The major concern are optimizations that the compiler may make that affect order. For example: somefloat =3D 1.0f; x =3D * ( int * ) &somefloat; In theory, a heavily optimizing C compiler would see that the assignment to somefloat should not affect the assignment to x since they are incompatible types, which may allow it to decide to assign to somefloat _after_ the assignment to x. But that would be illegal. The C specification states that the end of every expression is a sequence point, and thus the assignment to somefloat MUST be flushed before any subsequent statements are executed. So, I can buy that the aliasing thing is a serious concern if there is concern about a C compiler aggressively optimizing and doing it incorrectly, but that doesn't seem to be the argument. Of course, granted, using a union makes more sense and is a bit cleaner, I'm fine with that: union { int i; float somefloat; } u; u.somefloat =3D 1.0f; x =3D u.i; But according to the C standard, the above is undefined ("If the value being stored in an object is accessed from another object that overlaps in any way the storage of the first object, then the overlap shall be exact and the two objects shall have qualified or unqualified versions of a compatible type; otherwise, the behavior is undefined."). Anyone have something more authoritative on this issue? Brian |
From: Colin F. <cp...@ea...> - 2003-12-25 03:57:29
|
What? Another vote for XML?! Yay! J/K ;^) >>> Packing fun. >>> [...] >>> >>> gcc 3.0 >>> sizeof(Alice)==sizeof(Bob)==8 and funnier enough, STRUCT_OFFSET(Char2) < >>> sizeof(Alice) >>> >>> VS.NET 2003 >>> sizeof(Alice)==8, sizeof(Bob)==12 |
From: Daniel V. <vo...@ep...> - 2003-12-25 01:38:04
|
Packing fun. // both gcc 3.0 and VS.NET support the pack pragma #pragma pack(4) struct Alice { int Integer1; char Char1; }; struct Bob : Alice { char Char2; }; gcc 3.0 sizeof(Alice)==sizeof(Bob)==8 and funnier enough, STRUCT_OFFSET(Char2) < sizeof(Alice) VS.NET 2003 sizeof(Alice)==8, sizeof(Bob)==12 Is anyone aware of in-detail documentation on variable packing for both gcc and VS.NET? Thanks, -- Daniel, Epic Games Inc. |
From: Kent Q. <ken...@co...> - 2003-12-24 13:55:44
|
I was looking at this last week. Personally, I don't think it's a win to have to code in C++ for your scripting language. ALL you get to save is compilation time; nontrivial, but compared to the productivity of, say, Python, you're going to write 3-5x as much code. Also, I feel comfortable letting nonprogrammers write certain types of code in Python; that's a lot harder in C++. At 05:24 AM 12/24/2003, you wrote: >I stumbled across this today. Note the SDK and embedding stuff. > >If you want a good scripting language for programmers, this looks amazing. I >haven't done any testing on speed and the like, but it's well worth a shot I >say. > >Not sure how easy/possible it is to use it on the ps/2 etc, as it doesn't >seem to include source. > >http://www.softintegration.com/products/chstandard/ > >_____________________________________________________ >Programmer, Sudeki - http://www.xbox.com/en-US/Sudeki >Gareth Lewin - http://www.garethlewin.com > >"Try or Try not, there is no Do" > > >------------------------------------------------------- >This SF.net email is sponsored by: IBM Linux Tutorials. >Become an expert in LINUX or just sharpen your skills. Sign up for IBM's >Free Linux Tutorials. Learn everything from the bash shell to sys admin. >Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click >_______________________________________________ >Gamedevlists-general mailing list >Gam...@li... >https://lists.sourceforge.net/lists/listinfo/gamedevlists-general >Archives: >http://sourceforge.net/mailarchive/forum.php?forum_id=557 ---- Kent Quirk CTO, CogniToy |
From: Gareth L. <GL...@cl...> - 2003-12-24 10:27:29
|
I stumbled across this today. Note the SDK and embedding stuff. If you want a good scripting language for programmers, this looks amazing. I haven't done any testing on speed and the like, but it's well worth a shot I say. Not sure how easy/possible it is to use it on the ps/2 etc, as it doesn't seem to include source. http://www.softintegration.com/products/chstandard/ _____________________________________________________ Programmer, Sudeki - http://www.xbox.com/en-US/Sudeki Gareth Lewin - http://www.garethlewin.com "Try or Try not, there is no Do" |
From: Brian H. <ho...@py...> - 2003-12-23 17:22:15
|
I've been doing a high-level analysis of different scripting languages, and I was surprised that, on the surface, JavaScript seems to have a lot in common with Lua: - typeless/loosely typed - fundamental type is table - prototype based - C-like syntax - garbage collected - relatively easy to embed Does anyone know of the major differences between the languages other than performance (JavaScript is much slower) and minor language differences like JavaScript's exception handling? Brian |
From: CAVEY G. <GER...@sg...> - 2003-12-22 14:24:57
|
Hi there In your opinion what is the best scheme to use for a modern engine that supports shader ? In my first attempt i designed my engine as a static library in which i made a root object Application that contains different sub = systems.the user of the engine only had to override virtual sub systems methods to customize engine. Input , Graphics, Gui,etc... each one had basics functions = OnInit,Shutdown etc... during dev i realized that this was not the optimal architecture and = that i was about to have some communication problems between sub systems. Furthermore i realized i almost only used the Graphics sub system so i wondered "why several sub systems if almost everything is in one?". Another thing ; i denied to use linked list for example my model class = could have inheritance from linked list (since we know that new/delete during runtime is not good) but no i decided to use a simple array of models stored in Graphics system.This way when i manage my models no one knows nothing about the others .... = really bad. So my organization was a bit naive :D .If someone wants to share = his/her experience about this that would be nice. Regards GC ************************************************************************= * Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et etablis a l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisee est interdite.=20 Tout message electronique est susceptible d'alteration.=20 SG Asset Management et ses filiales declinent toute responsabilite au = titre de ce message s'il a ete altere, deforme ou falsifie. D=E9couvrez l'offre et les services de SG Asset Management sur le site www.sgam.fr=20 ******** This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited.=20 E-mails are susceptible to alteration. =20 Neither SG Asset Management nor any of its subsidiaries or affiliates = shall be liable for the message if altered, changed or falsified.=20 ************************************************************************= * |
From: Brian H. <ho...@py...> - 2003-12-22 00:18:29
|
Not looking to start a religious war here, but outside of "it doesn't work on other operating systems", what were the complaints (if any) about the Mac-style file/creator type IDs? Did any other operating systems use these (NeXTStep?). Brian |
From: Mike W. <mi...@ge...> - 2003-12-18 21:06:34
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 there is a wmtalk list i know, but that's more for streaming issues etc, ~ and there is a specific programming list as well, but can't recall what the name of it is. mike w www.gekidodesigns.com scoubidou944 wrote: | Thanks I haven't found this way of search :O | | Vincent | ----- Original Message ----- | From: "Mike Wuetherick" <mi...@ge...> | To: <gam...@li...> | Sent: Tuesday, December 17, 2002 11:53 PM | Subject: Re: [GD-General] Windows Media Player | | | | there is a windowsmedia programming list available from | discuss.microsoft.com that has WiMP guru's on it. | | might suggest you try there | | mike w | www.gekidodesigns.com | | scoubidou944 wrote: | | hi, | | | | writing an application for multimedia presentation, I must (too long to | | explain why ;p) use Windows Media Player 9 (not Media Classic Player) to | | play video files. | | But I have one problem : getting play list. | | | | First method : | | Get HWND of WMPlayer | | Use Spy++ Visual Tool to get HWND so we have : | | WMP | | WMPAppHost "WMPAppHost" | | WMPPlaylist "" | | ATL:SysListView32 "Current Playlist" | | SysHeader32 | | Using FindWindowEx() I get an HWD on 'ATL:SysListView32' | | hCurrentWnd = // Windows Media Player handke | | hWndAppHost = FindWindowEx (hCurrentWnd, NULL, "WMPAppHost", | NULL); | | hWndPlayList = FindWindowEx (hWndAppHost, NULL, "WMPPlaylist", | | NULL); | | hCurrentList = FindWindowEx (hWndPlayList, NULL, | | "ATL:SysListView32", NULL); | | But using : | | u32ItemCount = ListView_GetItemCount (hCurrentList); | | return always 0 :( | | | | Does ListView_GetItemCount() limited to Current process ? or does it | | work only on standard object but non ATL ? | | | | Second Method : | | Getting system file access coming from WMP to get file added but a | |> bit | | | wild isn't it LOL ? | | | | Thirs method : | | Rerieve WMP file history.... not a good way too. | | | | Havin' an idea ? | | | | Thx | | | | Vincent. | | | | | | ------------------------------------------------------- | | This SF.net email is sponsored by: IBM Linux Tutorials. | | Become an expert in LINUX or just sharpen your skills. Sign up for | |> IBM's | | | Free Linux Tutorials. Learn everything from the bash shell to sys | |> admin. | | | Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click | | _______________________________________________ | | Gamedevlists-general mailing list | | Gam...@li... | | https://lists.sourceforge.net/lists/listinfo/gamedevlists-general | | Archives: | | http://sourceforge.net/mailarchive/forum.php?forum_id=557 | | | | - ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ Gamedevlists-general mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-general Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=557 | ------------------------------------------------------- | This SF.net email is sponsored by: IBM Linux Tutorials. | Become an expert in LINUX or just sharpen your skills. Sign up for IBM's | Free Linux Tutorials. Learn everything from the bash shell to sys admin. | Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click | _______________________________________________ | Gamedevlists-general mailing list | Gam...@li... | https://lists.sourceforge.net/lists/listinfo/gamedevlists-general | Archives: | http://sourceforge.net/mailarchive/forum.php?forum_id=557 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3-nr1 (Windows 2000) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE/4hefayxbsNU2vhwRArA3AJ9B5Y5KV5FijHg9Cnv3XfacW+/T1QCfSbFM Ba5+TChwHd47uI/mEldbkbQ= =minl -----END PGP SIGNATURE----- |
From: Stefan B. <ste...@di...> - 2003-12-18 09:59:10
|
> But for arguments sake lets get rid of all those games released before the > year 2000 when your average PC came with 98/SE/ME... which leaves BF1942. > I'm not sure what relevance it being a popular online game has, while it's > a fantastic game I don't think it's sales were anything remarkable. *cough cough* I believe BF1942 has sold in the region of 2.3million units which makes it one of the ten best-selling PC games ever ;) That said, I don't know if saving the preferences to the application directory is such a brilliant idea. Cheers, Stef! :) Stefan Boberg Chief Technical Officer Digital Illusions CE AB |
From: scoubidou944 <sco...@ho...> - 2003-12-17 22:57:51
|
Thanks I haven't found this way of search :O Vincent ----- Original Message ----- From: "Mike Wuetherick" <mi...@ge...> To: <gam...@li...> Sent: Tuesday, December 17, 2002 11:53 PM Subject: Re: [GD-General] Windows Media Player > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > there is a windowsmedia programming list available from > discuss.microsoft.com that has WiMP guru's on it. > > might suggest you try there > > mike w > www.gekidodesigns.com > > scoubidou944 wrote: > | hi, > | > | writing an application for multimedia presentation, I must (too long to > | explain why ;p) use Windows Media Player 9 (not Media Classic Player) to > | play video files. > | But I have one problem : getting play list. > | > | First method : > | Get HWND of WMPlayer > | Use Spy++ Visual Tool to get HWND so we have : > | WMP > | WMPAppHost "WMPAppHost" > | WMPPlaylist "" > | ATL:SysListView32 "Current Playlist" > | SysHeader32 > | Using FindWindowEx() I get an HWD on 'ATL:SysListView32' > | hCurrentWnd = // Windows Media Player handke > | hWndAppHost = FindWindowEx (hCurrentWnd, NULL, "WMPAppHost", > NULL); > | hWndPlayList = FindWindowEx (hWndAppHost, NULL, "WMPPlaylist", > | NULL); > | hCurrentList = FindWindowEx (hWndPlayList, NULL, > | "ATL:SysListView32", NULL); > | But using : > | u32ItemCount = ListView_GetItemCount (hCurrentList); > | return always 0 :( > | > | Does ListView_GetItemCount() limited to Current process ? or does it > | work only on standard object but non ATL ? > | > | Second Method : > | Getting system file access coming from WMP to get file added but a bit > | wild isn't it LOL ? > | > | Thirs method : > | Rerieve WMP file history.... not a good way too. > | > | Havin' an idea ? > | > | Thx > | > | Vincent. > | > | > | ------------------------------------------------------- > | This SF.net email is sponsored by: IBM Linux Tutorials. > | Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > | Free Linux Tutorials. Learn everything from the bash shell to sys admin. > | Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > | _______________________________________________ > | Gamedevlists-general mailing list > | Gam...@li... > | https://lists.sourceforge.net/lists/listinfo/gamedevlists-general > | Archives: > | http://sourceforge.net/mailarchive/forum.php?forum_id=557 > | > | > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.3-nr1 (Windows 2000) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQE9/6r/ayxbsNU2vhwRAkPXAJ0emxlD0ZJred1cIhal2JNPtE0RKwCgr9So > nPCQU7eBrbSjBoTiiZNvXLg= > =/oRn > -----END PGP SIGNATURE----- > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > Gamedevlists-general mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-general > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=557 > |
From: Mike W. <mi...@ge...> - 2003-12-17 22:50:30
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 there is a windowsmedia programming list available from discuss.microsoft.com that has WiMP guru's on it. might suggest you try there mike w www.gekidodesigns.com scoubidou944 wrote: | hi, | | writing an application for multimedia presentation, I must (too long to | explain why ;p) use Windows Media Player 9 (not Media Classic Player) to | play video files. | But I have one problem : getting play list. | | First method : | Get HWND of WMPlayer | Use Spy++ Visual Tool to get HWND so we have : | WMP | WMPAppHost "WMPAppHost" | WMPPlaylist "" | ATL:SysListView32 "Current Playlist" | SysHeader32 | Using FindWindowEx() I get an HWD on 'ATL:SysListView32' | hCurrentWnd = // Windows Media Player handke | hWndAppHost = FindWindowEx (hCurrentWnd, NULL, "WMPAppHost", NULL); | hWndPlayList = FindWindowEx (hWndAppHost, NULL, "WMPPlaylist", | NULL); | hCurrentList = FindWindowEx (hWndPlayList, NULL, | "ATL:SysListView32", NULL); | But using : | u32ItemCount = ListView_GetItemCount (hCurrentList); | return always 0 :( | | Does ListView_GetItemCount() limited to Current process ? or does it | work only on standard object but non ATL ? | | Second Method : | Getting system file access coming from WMP to get file added but a bit | wild isn't it LOL ? | | Thirs method : | Rerieve WMP file history.... not a good way too. | | Havin' an idea ? | | Thx | | Vincent. | | | ------------------------------------------------------- | This SF.net email is sponsored by: IBM Linux Tutorials. | Become an expert in LINUX or just sharpen your skills. Sign up for IBM's | Free Linux Tutorials. Learn everything from the bash shell to sys admin. | Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click | _______________________________________________ | Gamedevlists-general mailing list | Gam...@li... | https://lists.sourceforge.net/lists/listinfo/gamedevlists-general | Archives: | http://sourceforge.net/mailarchive/forum.php?forum_id=557 | | -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3-nr1 (Windows 2000) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE9/6r/ayxbsNU2vhwRAkPXAJ0emxlD0ZJred1cIhal2JNPtE0RKwCgr9So nPCQU7eBrbSjBoTiiZNvXLg= =/oRn -----END PGP SIGNATURE----- |
From: scoubidou944 <sco...@ho...> - 2003-12-17 20:55:13
|
hi, writing an application for multimedia presentation, I must (too long to explain why ;p) use Windows Media Player 9 (not Media Classic Player) to play video files. But I have one problem : getting play list. First method : Get HWND of WMPlayer Use Spy++ Visual Tool to get HWND so we have : WMP WMPAppHost "WMPAppHost" WMPPlaylist "" ATL:SysListView32 "Current Playlist" SysHeader32 Using FindWindowEx() I get an HWD on 'ATL:SysListView32' hCurrentWnd = // Windows Media Player handke hWndAppHost = FindWindowEx (hCurrentWnd, NULL, "WMPAppHost", NULL); hWndPlayList = FindWindowEx (hWndAppHost, NULL, "WMPPlaylist", NULL); hCurrentList = FindWindowEx (hWndPlayList, NULL, "ATL:SysListView32", NULL); But using : u32ItemCount = ListView_GetItemCount (hCurrentList); return always 0 :( Does ListView_GetItemCount() limited to Current process ? or does it work only on standard object but non ATL ? Second Method : Getting system file access coming from WMP to get file added but a bit wild isn't it LOL ? Thirs method : Rerieve WMP file history.... not a good way too. Havin' an idea ? Thx Vincent. |
From: Gareth L. <GL...@cl...> - 2003-12-17 15:17:35
|
Not sure what email to use (I tried clicking on the links at the bottom of the emails). Javier Arevalo [jare (at) pyrostudios.com] says he has problems posting to this list (sourceforge bouncing him). Is it possible to resolve the problem ? _____________________________________________________ Programmer, Sudeki - http://www.xbox.com/en-US/Sudeki Gareth Lewin - http://www.garethlewin.com "Try or Try not, there is no Do" |
From: Richard S. <Ric...@ei...> - 2003-12-17 14:51:25
|
> Who else is using xml already and who isn't? We are using XML to describe rules for a rules based system, formula data for a mathematics engine, resource info for desribing front-end textures and some other=20 minor uses. I don't think the preferences library not using XML would actually stop us using it. Given the choice we would prefer it to write its data in XML for many of the reasons already given elsewhere in the thread and also to maintain coherence in our data formats.=20 Well, and its shiny buzzword thing which makes our producers happy :*) > Brett Rich |
From: Brian H. <ho...@py...> - 2003-12-17 12:07:33
|
> the developers already use XML and are comfortable with it, a > portable prefs library that doesn't use xml will likley put people > off simply because they could whip up their own in xml. Ironically enough, the thing that originally started all this (portable prefs library) was intended to use system preferences and thus make the whole concept of XML/file formats rather moot. Under Windows, it would use the registry, and under OS X, it would use Preferences (which, doubly ironically, are in XML), and under Linux, some simple text file format (not XML, because then it starts getting rather large). Things have been inverted for the library quite a bit. Specifically, the preferences aspect is now decoupled from the properties aspect, and the pref lib is simply there to serialize/deserialize properties into a property list. Brian |
From: Brett B. <res...@ga...> - 2003-12-17 09:17:29
|
Perhaps the correct question is not to debate the merits of XML, but = rather to ask "Who is _already_ using XML anyway?" If most of the = developers already use XML and are comfortable with it, a portable prefs = library that doesn't use xml will likley put people off simply because = they could whip up their own in xml. If most people are _not_ using xml = then it seems clear a simple ini style is the only logical choice. We are already using xml and we would serisouly consider the portable = library if it used xml, we would likely not use it if it is ini based. Who else is using xml already and who isn't? Brett |
From: Nicolas R. <nic...@fr...> - 2003-12-17 08:53:56
|
Hi, Just re-read the entire thread, but its getting too long (at least for me) and couldn't find any suitable answer to XML pros and cons. As already stated, XML is just a way of storing things. Just like some kind of "dynamically extensible binary format" in the text form. There is one word here which is (in my sense) the most important one (at least for preferences ! :) ): EXTENSIBLE. It means that you can add/substract any kind of data/command/tag without having to rewrite entirely everything. Let's take an example: You have the following memory data: Struct C { ...Some data ... }; Struct B { ...Some more data... C m_c; }; Struct A { ...Still data... B m_b; C m_c; }; Now you want to read/write several A entries from a persistant location: - simple "raw" file: pros: fastest possible. cons: breaks as soon as the C or B structure has changed (having to "patch" all files contains some A data as well, but how one would know ? => you need some kind of "big-data-boss" knowing what needs to be "re-saved"). - version tagged file: you write some kind of "version" value for each structure, each structure has its own loading/saving functions (usually virtual generic load/save in C++). Loading depends on version read, saving always saving latest version. Pros: fast. Backward compatibility. Cons: Becomes a real mess when you have 6/7 versions around to support. No backward compatibility (file v2.1 cant be read by v2.0). - property tagged file: You write each data entry with its own "tag" (basically a "property name", a "property type" and its value). Unknown tags are discarded. Pros: Almost same speed as the version tagged file. Full backward/upward compatibility. Cons: nx times slower than the "raw" reading. Here comes the XML: XML provides a completely "normalized" way of doing solution 3 in a portable, easily editable way (nice for debugging). We have completely dropped solution 2. Solution 1 is kept for large binary intrasic formats (textures, mesh-data, ...). For preferences this is a good choice since it must be fully upward compatible (I simply hate those programs that reinitialize preferences at update), fully backward compatible (I can send my preferences to a friend who is not having the exact same version), and editable by anyone (don't you just hate when you select a crashing config, reloaded each time you launch the game, making impossible to change it back, without reinstalling the game... Saw one such game earlier this month !). Preferences don't need to be that fast (for us, it appears that time spent in CreateFile is bigger than in any other parts of the code during preference loading). We did prefer another choice of script-form preferences (mainly for code reusage reasons) ... But hey, doing: Rendering-prefs { api = OpenGL; width = 1600; height = 1200; } Or <RENDERING> <PROP name="api">OpenGL</PROP> <PROP name="width">1600</PROP> <PROP name="height">1200</PROP> </RENDERING> Is quite the same anyway ! :) Nicolas. |
From: Alen L. <ale...@cr...> - 2003-12-17 07:47:47
|
> The code in question does: > > sz = get_size_of_file () > read (h, buf, sz) > parse (buf) > > As such load and parse are entirely separate. I see. > This is an old slow machine, a PII-333 -- I said it was far from > cutting-edge. Frankly, I'd like to have that to be more like at least 10-20MB/s on a Celeron 733. Not to mention some even slower CPUs, that most of us would like it to run on. ;) > > A 40xCDROM... > > I was reading from disk possibly NFS over 100bT (can't check right now, > don't have access to that machine from where I am now). That machine > doesn't have a CD. I mentioned the 40xCD as a yardstick to compare the speed against. It is deemed as something very slow, and your CPU activity while loading should always have much better throughput than that. Alen > > ... has transfer rate of 6MB/s. You say you are parsing data at that > > rate? Those are certainly not some impressive numbers. :( > > Certainly they're not impressive. They weren't intended to be. I > suggest you check them on a more representative host with code that > wasn't written as quickly as possible and for data that more closely > matches your loads. > > -- > J C Lawrence > ---------(*) Satan, oscillate my metallic sonatas. > cl...@ka... He lived as a devil, eh? > http://www.kanga.nu/~claw/ Evil is a name of a foeman, as I live. > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > Gamedevlists-general mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-general > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=557 > |
From: Alen L. <ale...@cr...> - 2003-12-17 07:47:46
|
From: "Jeff" <je...@sp...> > And didn't it raise a firestorm this time, with an inordinate number of > people who didn't seem to be able to understand that a file format for a > PREFERENCES system need not have the same requirements as those for a 3D > LEVEL loader... It was me who asked what people have to say on using XML for everything, so this is not going in the wrong direction, it merely forked. It is hardly noticeable, but in the mean time, the subthread got " but has nothing to do with them anymore" suffix in the subject. ;) Alen |
From: Jorrit T. <Jor...@uz...> - 2003-12-17 07:26:20
|
Gareth Lewin wrote: >Oh, and please Jorrit, I never meant to offend. I feel (based on offline >emails) that I might have offended. I'm sorry if that happened, as I think I >have posed only technical issues and nothing personal. > > I'm not easily offended :-) Greetings, |
From: Jorrit T. <Jor...@uz...> - 2003-12-17 07:25:08
|
Gareth Lewin wrote: >But I think the point has been missed. The issue here (the reason I entered >this discussion) was that not only the data format was (imo) bad (text file >not parsed) but a lot of proccessing goes on with the data. He mentioned >kd-tree generation for example. > >Hell, why not just pre-generate the kd-tree and store that into the xml ? >Surely that is a step in the right direction ? > > As I explained in another mail I cannot do that because the kd-tree is not fixed. Depending on hardware configuration a different kd-tree setup may be selected. But it doesn't matter. kdtree calculation is VERY fast. Greetings, |
From: Jorrit T. <Jor...@uz...> - 2003-12-17 07:23:01
|
Gareth Lewin wrote: >I'm sorry Brian, but that is besides the point. We were discussing how best >to do something, and his argument wasn't just one of time, but that his idea >was better. > > Where did I said that my idea was better? I never said that. I only say that's how we do it in CS and for CS I still think that the XML way is the good way. Greetings, |
From: Jorrit T. <Jor...@uz...> - 2003-12-17 07:20:42
|
Gareth Lewin wrote: >>Oddly enough, there is no single right or wrong way of >>looking at these >>issues because there is no single right definition of game data. >> >> > >There might be many right ways, but there are definitly some wrong ways. >Loading up vertex and face data, and then actually processing said data >(buidling kd-trees, bsd trees, light map calculatio, stripping etc) is just >wrong. > > Note that the building of the kd-tree differs depending on conditions (i.e. depending on hardware vs software rendering a different depth of tree may be build). So it is not possible to precompute the kdtree as it is dynamic EVEN at the start. Note that building the kdtree is extremely fast though. Lightmap calculation is obviously precalculated as that takes hours on big maps. Greetings, |