From: Rick W. <wes...@pu...> - 2010-01-11 01:54:24
|
This may another one of those "I should not go there" type of questions. If so apologies in advance. Or I may be missing something obvious. At the moment I am learning the source of Rails via experimentation rather than intensive reading of the code. ============= A tile for a given game is defined in three places: The per-game TileSet.xml seems reasonable as it has a list of the tiles in the given game, quantity of tiles, upgrade path, and which SVG picture to use. The per-game Tiles.xml has the same list of tiles but this time with the colour of the tile (not the actual color on the time but the color phase), how many cities and towns and their positions; values of the cities/towns and a list of how the track is laid out (e.g., from side 0 to side 2, from side 1 to side 5). The whole-rails SVG files have the graphics for each of the tiles. Now for a given tile the relationship of the tile's SVG file and the tile's entry in Tiles.xml is fixed. In other words I can not a take a tile in the Tiles.xml file and change its track layout from 'side 0 to side 2' to 'side 0 to side 3' and expect that the tile will show up properly. Instead it will retain it's SVG representation. Ditto if I try to change the number of cities or their position. So ... why not have a global Tiles.xml file with three items in it and reduce the duplication across the games? That would make the per-game Tiles.xml smaller and more readable (and thus easier to debug). And/or combine the reduced per-game Tiles.xml file into the TileSet.xml file thus reducing another source of duplication and error. As I said this may have been hashed out before and there may be good reasons for the above files. In any case I will deal with what is current. ============= BTW#1: Is there any routine to display all of the SVG files? BTW#2: The README in the 'tiles' directory says that the XML files in said directory are not important. IMHO it should also say that the svg sub-directory is critically important. As you can imagine by my comment it took me a while to realize the importance of said directory. -- Rick |
From: Erik V. <eri...@xs...> - 2010-01-11 22:40:27
|
This may another one of those "I should not go there" type of questions. If so apologies in advance. Or I may be missing something obvious. At the moment I am learning the source of Rails via experimentation rather than intensive reading of the code. Feel free to ask any questions; however, I can't guarantee that the answer is always welcome. A tile for a given game is defined in three places: The per-game TileSet.xml seems reasonable as it has a list of the tiles in the given game, quantity of tiles, upgrade path, and which SVG picture to use. The per-game Tiles.xml has the same list of tiles but this time with the colour of the tile (not the actual color on the time but the color phase), how many cities and towns and their positions; values of the cities/towns and a list of how the track is laid out (e.g., from side 0 to side 2, from side 1 to side 5). The whole-rails SVG files have the graphics for each of the tiles. Now for a given tile the relationship of the tile's SVG file and the tile's entry in Tiles.xml is fixed. In other words I can not a take a tile in the Tiles.xml file and change its track layout from 'side 0 to side 2' to 'side 0 to side 3' and expect that the tile will show up properly. Instead it will retain it's SVG representation. Ditto if I try to change the number of cities or their position. So ... why not have a global Tiles.xml file with three items in it and reduce the duplication across the games? That would make the per-game Tiles.xml smaller and more readable (and thus easier to debug). And/or combine the reduced per-game Tiles.xml file into the TileSet.xml file thus reducing another source of duplication and error. 1. Why do we have separate TileSet.xml and Tiles.xml? TileSet.xml contains the game-specific tile properties, and Tiles.xml has the game-independent tile properties. The latter file is generated by rails.util.MakeGameTileSets (a stand-alone Java class/program) from TileSet.xml and the overall Tiles.xml file that has *all* tiles (this file and several other files that I'm going to mention are in directory 18xx/tiles of the CVS repository on Sourceforge). This program also checks TileSet.xml against Map.xml for consistency. 2. Why do we have separate XMLand SVG files? That is because we use an SVG renderer that understands SVG, whereas both I and the Java code I have written only understand XML. And I doubt if the twain will ever meet. 3. Where do Tiles.xml and the SVG files come from? Ultimately everything comes from a tile database named TileDesigner.18t created by Marco Rocci's TileDesigner program (see http://www.rails18xx.it/software.html). In the mean time I have added a lot of tiles to Marco's original tile set. From that database I export both the SVG tiles and an XML descriptive file called TileDesigner.xml. The SVG export is somewhat buggy. Originally Brett fixed that by a procedure that I don't have the details of. I have recently taken over and I'm now using a procedure described in the comments of a Perl script named CombineTiles.pl. That script builds the Rails SVG file set by combining parts from three sets of SVG files: - tiles with ID > 0 (layable tiles, the ID is printed on the tile). - tiles with ID <=0 (preprinted tiles, no ID on the tile; this is a separate export from TileDesigner) - special tiles that I have modified manually with Inkscape (such as the red off-board tiles -901 throught -903, which TileDesigner cannot create with "arrows". So for these tiles the XML does *not* exactly correspond with the SVG!). The XML export (TileDesigner.xml) is converted by another Java program/class named rails.util.ConvertTiles into the overall Tiles.xml that I mentioned before. I'm doing this conversion because I think that the latter format is better suitable for use in Rails. 4. Why is this procedure so complex? Well, we're doing the best we can with the limited knowledge and imperfect tools that we have. BTW#1: Is there any routine to display all of the SVG files? No. Only TileDesigner has everything. BTW#2: The README in the 'tiles' directory says that the XML files in said directory are not important. IMHO it should also say that the svg sub-directory is critically important. As you can imagine by my comment it took me a while to realize the importance of said directory It doesn't say that these aren't important, it only says that these are not [directly] used by Rails. These files in fact do form the basis of the per-game tile sets, as I hope I have explained well enough above. Erik |
From: Rick W. <wes...@pu...> - 2010-01-11 23:31:32
|
> > TileSet.xml contains the game-specific tile properties, and > Tiles.xml has the game-independent tile properties. The latter file > is generated by rails.util.MakeGameTileSets (a stand-alone Java > class/program) from TileSet.xml and the overall Tiles.xml file that > has *all* tiles (this file and several other files that I'm going > to mention are in directory 18xx/tiles of the CVS repository on > Sourceforge). This program also checks TileSet.xml against Map.xml > for consistency. > Eric: Thank you for the extensive reply. Knowing that there is the MakeGameTileSets program to autogenerate the per-game Tiles.xml and to check the Map.xml file is a big help. Although I do wonder why you don't simply read in the global Tiles files and use that. But, knowing XML, perhaps that is too much of a strain on the program. Anyway can you give this poor ol' non-Java programmer a short hint on how to run MakeGameTileSets? I am getting a 'NoClassDefError' on org/apache/log4j/logger when I try to run the class directly. I am probably doing something painfully obviously wrong. Thanks, -- Rick |
From: Erik V. <eri...@xs...> - 2010-01-13 18:35:03
|
Thank you for the extensive reply. Knowing that there is the MakeGameTileSets program to autogenerate the per-game Tiles.xml and to check the Map.xml file is a big help. Although I do wonder why you don't simply read in the global Tiles files and use that. But, knowing XML, perhaps that is too much of a strain on the program. XML parsing is slow. I don't like wasting CPU time and memory. Anyway can you give this poor ol' non-Java programmer a short hint on how to run MakeGameTileSets? I am getting a 'NoClassDefError' on org/apache/log4j/logger when I try to run the class directly. I am probably doing something painfully obviously wrong. I'm running it from within my development environment from a .bat file with java -cp \projects\Rails\18xx\classes;\Projects\Rails\18xx\lib\log4j-1.2\log4j-1.2.14 .jar rails.util.MakeGameTileSets %1 %2 %3 %4 %5 %6 %7 %8 %9 where \projects\Rails\18xx\classes is the directory below which the unpacked Rails .class files are. I suppose you can replace that part with path of the the rails .jar file, which contains the same. You may have to experiment a bit. Erik. |
From: Rick W. <wes...@pu...> - 2010-01-11 23:48:36
|
On the really-neat side of life, I was able to use an '<IfOption' within a Map.xml file. I was uncertain if it would work since none of the existing games use that feature. Although we probably could expand 1830 and 1835 in this manner since they have published map variants. -- Rick |
From: Erik V. <eri...@xs...> - 2010-01-13 18:35:53
|
Yes, <IfOption> is a generic feature that should be honoured by all Rails XML files. -----Original Message----- From: Rick Westerman [mailto:wes...@pu...] Sent: Tuesday 12 January 2010 00:49 To: Development list for Rails: an 18xx game Subject: [Rails-devel] IfOption in Map.xml On the really-neat side of life, I was able to use an '<IfOption' within a Map.xml file. I was uncertain if it would work since none of the existing games use that feature. Although we probably could expand 1830 and 1835 in this manner since they have published map variants. -- Rick ---------------------------------------------------------------------------- -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Rick W. <wes...@pu...> - 2010-01-13 18:41:54
|
Erik Vos wrote: > Yes, <IfOption> is a generic feature that should be honoured by all Rails > XML files. > I think I have found one place where it is not. But there may be a work-around. The place is in the 'GameManager' component within the 'Game.xml' file. The GameManager is, of course, where the GameOptions are defined so this may be a clue to the problem. Or as usual I might be doing something wrong. Anyway I wanted to change the PlayerShareLimit based on a GameOption. Could not do it in there. Other component sections in Game.xml do accept options. -- Rick |
From: Erik V. <eri...@xs...> - 2010-01-13 20:24:14
|
Hmm, yes, apparently the options cannot be used on the same level where these are defined (although in fact the IfOption tags are processed first). Perhaps these should be lifted out of the Component tags entirely. If you think it's really important, I could have another look at it. Erik. -----Original Message----- From: Rick Westerman [mailto:wes...@pu...] Sent: Wednesday 13 January 2010 19:42 To: Development list for Rails: an 18xx game Subject: Re: [Rails-devel] IfOption in Map.xml Erik Vos wrote: > Yes, <IfOption> is a generic feature that should be honoured by all Rails > XML files. > I think I have found one place where it is not. But there may be a work-around. The place is in the 'GameManager' component within the 'Game.xml' file. The GameManager is, of course, where the GameOptions are defined so this may be a clue to the problem. Or as usual I might be doing something wrong. Anyway I wanted to change the PlayerShareLimit based on a GameOption. Could not do it in there. Other component sections in Game.xml do accept options. -- Rick ---------------------------------------------------------------------------- -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Rick W. <wes...@pu...> - 2010-01-13 20:28:56
|
Erik Vos wrote: > Hmm, yes, apparently the options cannot be used on the same level > where these are defined (although in fact the IfOption tags are processed > first). > Perhaps these should be lifted out of the Component tags entirely. > If you think it's really important, I could have another look at it. > Well, yes, it is important. Two reasons: First is silly since 2-player 18xx is silly but for many 2-player variants the holding limit is raised from 60% to 70%. Second is important. As I recall a couple of Tresham's titles ('25, '53 if I have this correct) have a variable share limit depending on the number of players. So at some point this point will have to be addressed. > Erik. > > -----Original Message----- > From: Rick Westerman [mailto:wes...@pu...] > Sent: Wednesday 13 January 2010 19:42 > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] IfOption in Map.xml > > Erik Vos wrote: > >> Yes, <IfOption> is a generic feature that should be honoured by all Rails >> XML files. >> >> > I think I have found one place where it is not. But there may be a > work-around. > > The place is in the 'GameManager' component within the 'Game.xml' > file. The GameManager is, of course, where the GameOptions are defined > so this may be a clue to the problem. Or as usual I might be doing > something wrong. Anyway I wanted to change the PlayerShareLimit based > on a GameOption. Could not do it in there. Other component sections in > Game.xml do accept options. > > > > -- Rick Westerman wes...@pu... Bioinformatics specialist at the Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department of Horticulture and Landscape Architecture 625 Agriculture Mall Drive West Lafayette, IN 47907-2010 Physically located in room S049, WSLR building |
From: Erik V. <eri...@xs...> - 2010-01-15 20:13:36
|
<IfOption> in GameManager did not work because the game options were not passed down the Tag hierarchy from the top in that part of the tree. Now they do. I have put the 2-player 70% limit in 1830/Game.xml and it works for me. Actually, I wonder if there shouldn't be an additional GameOption to enable that conditional replacement of 60% by 70%. I found that the GameOptions in Game.xml are parsed but not used, so these are in fact redundant. For a while I'll leave them in. I could use these to validate the selected options from the UI. In principle everything that comes from the UI should be validated. But in this case the price of having duplicate GameOption specs might be too high. While I was at it, I found the GameManager contents a bit messy and have added another level by changing the structure of the GameManager component by putting <GameParameters> and <GuiClasses> tags around some of the existing tags. I would have done something similar for the GameOptions, if these wouldn't have turned out redundant. Rick, sorry for your documentation work - I'm afraid it will have to describe this additional level! But I think it's more logical this way. BTW in the code I'm also increasingly making a sharp distinction between values that exist in the game engine only, and those that are shared with the GUI. This should help making a future client/server split easier to do; but I think we are still pretty far away from that enhancement. Erik. -----Original Message----- From: Rick Westerman [mailto:wes...@pu...] Sent: Wednesday 13 January 2010 21:29 To: Development list for Rails: an 18xx game Subject: Re: [Rails-devel] IfOption in Map.xml Erik Vos wrote: > Hmm, yes, apparently the options cannot be used on the same level > where these are defined (although in fact the IfOption tags are processed > first). > Perhaps these should be lifted out of the Component tags entirely. > If you think it's really important, I could have another look at it. > Well, yes, it is important. Two reasons: First is silly since 2-player 18xx is silly but for many 2-player variants the holding limit is raised from 60% to 70%. Second is important. As I recall a couple of Tresham's titles ('25, '53 if I have this correct) have a variable share limit depending on the number of players. So at some point this point will have to be addressed. > Erik. > > -----Original Message----- > From: Rick Westerman [mailto:wes...@pu...] > Sent: Wednesday 13 January 2010 19:42 > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] IfOption in Map.xml > > Erik Vos wrote: > >> Yes, <IfOption> is a generic feature that should be honoured by all Rails >> XML files. >> >> > I think I have found one place where it is not. But there may be a > work-around. > > The place is in the 'GameManager' component within the 'Game.xml' > file. The GameManager is, of course, where the GameOptions are defined > so this may be a clue to the problem. Or as usual I might be doing > something wrong. Anyway I wanted to change the PlayerShareLimit based > on a GameOption. Could not do it in there. Other component sections in > Game.xml do accept options. > > > > -- Rick Westerman wes...@pu... Bioinformatics specialist at the Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department of Horticulture and Landscape Architecture 625 Agriculture Mall Drive West Lafayette, IN 47907-2010 Physically located in room S049, WSLR building ---------------------------------------------------------------------------- -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Jim B. <jim...@ya...> - 2010-01-15 20:50:11
|
I wanted to interject a couple of comments related to the xml- a) in the privates auction- it's nice to see the privates info under the info (i) button, but it sure is cryptic. could a textual description be added to the xml record, so that annotation/text displays instead? (if present) b) afaik, I can't get back to that help info later- that's problematic (the info is often critical, when you're trying to use the private) c) similar comment applies to trains- it's nice that the roster is listed in 1.1.1, albeit tersely- the rusting info is a key omission, in practice so, someday- throughout the game- maybe when you hover-over a private, a train-inventory, a particular major, etc- the help text could show in a popup. in general, rails' users might could use a little more care-and-feeding, in this area. %-} this seems related to the thread issues here, but, my apologies if it's too tangential- just wanted to slip these comments in. - jim On Jan 15, 2010, at 12:13 PM, Erik Vos wrote: > <IfOption> in GameManager did not work because the game options were not > passed down the Tag hierarchy from the top in that part of the tree. > Now they do. I have put the 2-player 70% limit in 1830/Game.xml and it works > for me. > Actually, I wonder if there shouldn't be an additional GameOption to enable > that conditional replacement of 60% by 70%. > > I found that the GameOptions in Game.xml are parsed but not used, so these > are in fact redundant. > For a while I'll leave them in. I could use these to validate the selected > options from the UI. > In principle everything that comes from the UI should be validated. > But in this case the price of having duplicate GameOption specs might be too > high. > > While I was at it, I found the GameManager contents a bit messy and have > added another level by changing the structure of the GameManager component > by putting <GameParameters> and <GuiClasses> tags around some of the > existing tags. I would have done something similar for the GameOptions, if > these wouldn't have turned out redundant. > Rick, sorry for your documentation work - I'm afraid it will have to > describe this additional level! > But I think it's more logical this way. > > BTW in the code I'm also increasingly making a sharp distinction between > values that exist in the game engine only, and those that are shared with > the GUI. This should help making a future client/server split easier to do; > but I think we are still pretty far away from that enhancement. > > Erik. > > > -----Original Message----- > From: Rick Westerman [mailto:wes...@pu...] > Sent: Wednesday 13 January 2010 21:29 > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] IfOption in Map.xml > > Erik Vos wrote: >> Hmm, yes, apparently the options cannot be used on the same level >> where these are defined (although in fact the IfOption tags are processed >> first). >> Perhaps these should be lifted out of the Component tags entirely. >> If you think it's really important, I could have another look at it. >> > Well, yes, it is important. Two reasons: > > First is silly since 2-player 18xx is silly but for many 2-player > variants the holding limit is raised from 60% to 70%. > > Second is important. As I recall a couple of Tresham's titles ('25, > '53 if I have this correct) have a variable share limit depending on the > number of players. So at some point this point will have to be addressed. > >> Erik. >> >> -----Original Message----- >> From: Rick Westerman [mailto:wes...@pu...] >> Sent: Wednesday 13 January 2010 19:42 >> To: Development list for Rails: an 18xx game >> Subject: Re: [Rails-devel] IfOption in Map.xml >> >> Erik Vos wrote: >> >>> Yes, <IfOption> is a generic feature that should be honoured by all Rails >>> XML files. >>> >>> >> I think I have found one place where it is not. But there may be a >> work-around. >> >> The place is in the 'GameManager' component within the 'Game.xml' >> file. The GameManager is, of course, where the GameOptions are defined >> so this may be a clue to the problem. Or as usual I might be doing >> something wrong. Anyway I wanted to change the PlayerShareLimit based >> on a GameOption. Could not do it in there. Other component sections in >> Game.xml do accept options. >> >> >> >> > > > -- > Rick Westerman wes...@pu... Bioinformatics specialist at the > Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department > of Horticulture and Landscape Architecture 625 Agriculture Mall Drive > West Lafayette, IN 47907-2010 Physically located in room S049, WSLR > building > > ---------------------------------------------------------------------------- > -- > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Erik V. <eri...@xs...> - 2010-01-15 22:52:10
|
I don't know what kind of stories you would put there; I find the current private info is pretty complete. And so far the assumption pretty much was that users were up to date on the rules. Including the game rules certainly isn't in the scope of this project. But sure it can be done. For instance an (optional) extra <Info> tag per company and train type. Such train and private info could nicely be made visible as extra items under the Info menu in the Map/OR window. I can write the code, but I need a volunteer to write the texts. Anyone? Erik. -----Original Message----- From: Jim Black [mailto:jim...@ya...] Sent: Friday 15 January 2010 21:50 To: Development list for Rails: an 18xx game Subject: Re: [Rails-devel] IfOption in Map.xml I wanted to interject a couple of comments related to the xml- a) in the privates auction- it's nice to see the privates info under the info (i) button, but it sure is cryptic. could a textual description be added to the xml record, so that annotation/text displays instead? (if present) b) afaik, I can't get back to that help info later- that's problematic (the info is often critical, when you're trying to use the private) c) similar comment applies to trains- it's nice that the roster is listed in 1.1.1, albeit tersely- the rusting info is a key omission, in practice so, someday- throughout the game- maybe when you hover-over a private, a train-inventory, a particular major, etc- the help text could show in a popup. in general, rails' users might could use a little more care-and-feeding, in this area. %-} this seems related to the thread issues here, but, my apologies if it's too tangential- just wanted to slip these comments in. - jim |
From: Phil D. <de...@gm...> - 2010-01-16 01:09:41
|
I'm happy to write up info text, Can do this for 18EU or 1870 which I both own which is a good start, after that I'd be reliant on other sources for solid data for input. I'd agree with the approach of not being too overt with the rules. There are certain things that might be a nice assistance such as when trains rust but I wouldn't want to put in too much data in this regard, just clean, simple reminders of certain key points 2010/1/15 Erik Vos <eri...@xs...>: > I don't know what kind of stories you would put there; I find the current > private info is pretty complete. > And so far the assumption pretty much was that users were up to date on the > rules. > Including the game rules certainly isn't in the scope of this project. > > But sure it can be done. For instance an (optional) extra <Info> tag per > company and train type. > Such train and private info could nicely be made visible as extra items > under the Info menu in the Map/OR window. > > I can write the code, but I need a volunteer to write the texts. Anyone? > > Erik. > > -----Original Message----- > From: Jim Black [mailto:jim...@ya...] > Sent: Friday 15 January 2010 21:50 > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] IfOption in Map.xml > > > I wanted to interject a couple of comments related to the xml- > > a) in the privates auction- it's nice to see the privates info under the > info (i) button, but it sure is cryptic. could a textual description be > added to the xml record, so that annotation/text displays instead? (if > present) > > b) afaik, I can't get back to that help info later- that's problematic (the > info is often critical, when you're trying to use the private) > > c) similar comment applies to trains- it's nice that the roster is listed in > 1.1.1, albeit tersely- the rusting info is a key omission, in practice > > so, someday- throughout the game- maybe when you hover-over a private, a > train-inventory, a particular major, etc- the help text could show in a > popup. > > in general, rails' users might could use a little more care-and-feeding, in > this area. %-} > > this seems related to the thread issues here, but, my apologies if it's too > tangential- just wanted to slip these comments in. > > - jim > > > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Aliza P. <ali...@gm...> - 2010-01-16 02:24:16
|
Many games include some form of player aid that spells out what changes in each phase of the game, that might be a good place to start. I'd be happy to try my hand at writing 1-line summaries of some of the 1856 unique features, like the rules for loans (shares in player hands) and conditional floating (shares sold out of IPO). 1870 would need a one-line explanation of price protection Any game that deviates from "one tile per company per OR" should have that mentioned. On Fri, Jan 15, 2010 at 5:09 PM, Phil Davies <de...@gm...> wrote: > I'm happy to write up info text, Can do this for 18EU or 1870 which I > both own which is a good start, after that I'd be reliant on other > sources for solid data for input. > > I'd agree with the approach of not being too overt with the rules. > There are certain things that might be a nice assistance such as when > trains rust but I wouldn't want to put in too much data in this > regard, just clean, simple reminders of certain key points > > 2010/1/15 Erik Vos <eri...@xs...>: >> I don't know what kind of stories you would put there; I find the current >> private info is pretty complete. >> And so far the assumption pretty much was that users were up to date on the >> rules. >> Including the game rules certainly isn't in the scope of this project. >> >> But sure it can be done. For instance an (optional) extra <Info> tag per >> company and train type. >> Such train and private info could nicely be made visible as extra items >> under the Info menu in the Map/OR window. >> >> I can write the code, but I need a volunteer to write the texts. Anyone? >> >> Erik. >> >> -----Original Message----- >> From: Jim Black [mailto:jim...@ya...] >> Sent: Friday 15 January 2010 21:50 >> To: Development list for Rails: an 18xx game >> Subject: Re: [Rails-devel] IfOption in Map.xml >> >> >> I wanted to interject a couple of comments related to the xml- >> >> a) in the privates auction- it's nice to see the privates info under the >> info (i) button, but it sure is cryptic. could a textual description be >> added to the xml record, so that annotation/text displays instead? (if >> present) >> >> b) afaik, I can't get back to that help info later- that's problematic (the >> info is often critical, when you're trying to use the private) >> >> c) similar comment applies to trains- it's nice that the roster is listed in >> 1.1.1, albeit tersely- the rusting info is a key omission, in practice >> >> so, someday- throughout the game- maybe when you hover-over a private, a >> train-inventory, a particular major, etc- the help text could show in a >> popup. >> >> in general, rails' users might could use a little more care-and-feeding, in >> this area. %-} >> >> this seems related to the thread issues here, but, my apologies if it's too >> tangential- just wanted to slip these comments in. >> >> - jim >> >> >> >> ------------------------------------------------------------------------------ >> Throughout its 18-year history, RSA Conference consistently attracts the >> world's best and brightest in the field, creating opportunities for Conference >> attendees to learn about information security's most important issues through >> interactions with peers, luminaries and emerging and established companies. >> http://p.sf.net/sfu/rsaconf-dev2dev >> _______________________________________________ >> Rails-devel mailing list >> Rai...@li... >> https://lists.sourceforge.net/lists/listinfo/rails-devel >> > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Erik V. <eri...@xs...> - 2010-01-16 13:59:08
|
There is one problem with such info if we put the full text in the XML: it will be in one language only. For internationalisation we should find a way to put the real text in the resource bundle, as we did with all other text normally displayed in the UI (except the game notes and credits included in Games.xml). I think all we can do, if we want to remain multi-lingual, is to define messages keys for each kind of feature we would like to be descibed via the Info menu, and put the one-liners into the resource bundle (LocalizedText.properties). Versions of this file in other languages would be named like LocalizedText_fr.properties (for French). These versions are picked up automatically once a language is set in my.properties. For private special properties it's easy to do, as each one has a specialized class. Many of these already generate localized menu item text under the Special menu. For trains/phases we have a fairly limited set of features that are worth describing this way - shouls also be easy to do. To avoid proliferation of similar texts in the resource bundle, texts should be as generic as possible, using placeholders for variable text. For instance, for an extra tile lay we could have something like: "Allows laying a tile on {0}, {1}, {2}, {3}closing the private" where {0} will take the name of the hex where a tile can be laid, {1} is "extra" or "not extra" {2} is "free" or "not free" {3} is "" or "not " You can already see a slightly different form of such text in the help text above the map if such special tile and token lays can be done. So far, these info texts can be made available automatically under the Info menu. That may also apply to other specialties, because most are already configured in the XML is some way, if only by a game-specific class werhe it can be hardcoded. I have more comments on trains and phases (which I think should be considered separately), but that's for another time. I'll try to make a start. In the meantime, any suggestions for features to be mentioned and texts to be displayed are welcome. Erik. -----Original Message----- From: Phil Davies [mailto:de...@gm...] Sent: Saturday 16 January 2010 02:10 To: Development list for Rails: an 18xx game Subject: Re: [Rails-devel] IfOption in Map.xml I'm happy to write up info text, Can do this for 18EU or 1870 which I both own which is a good start, after that I'd be reliant on other sources for solid data for input. I'd agree with the approach of not being too overt with the rules. There are certain things that might be a nice assistance such as when trains rust but I wouldn't want to put in too much data in this regard, just clean, simple reminders of certain key points 2010/1/15 Erik Vos <eri...@xs...>: > I don't know what kind of stories you would put there; I find the current > private info is pretty complete. > And so far the assumption pretty much was that users were up to date on the > rules. > Including the game rules certainly isn't in the scope of this project. > > But sure it can be done. For instance an (optional) extra <Info> tag per > company and train type. > Such train and private info could nicely be made visible as extra items > under the Info menu in the Map/OR window. > > I can write the code, but I need a volunteer to write the texts. Anyone? > > Erik. > > -----Original Message----- > From: Jim Black [mailto:jim...@ya...] > Sent: Friday 15 January 2010 21:50 > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] IfOption in Map.xml > > > I wanted to interject a couple of comments related to the xml- > > a) in the privates auction- it's nice to see the privates info under the > info (i) button, but it sure is cryptic. could a textual description be > added to the xml record, so that annotation/text displays instead? (if > present) > > b) afaik, I can't get back to that help info later- that's problematic (the > info is often critical, when you're trying to use the private) > > c) similar comment applies to trains- it's nice that the roster is listed in > 1.1.1, albeit tersely- the rusting info is a key omission, in practice > > so, someday- throughout the game- maybe when you hover-over a private, a > train-inventory, a particular major, etc- the help text could show in a > popup. > > in general, rails' users might could use a little more care-and-feeding, in > this area. %-} > > this seems related to the thread issues here, but, my apologies if it's too > tangential- just wanted to slip these comments in. > > - jim > > > > ---------------------------------------------------------------------------- -- > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > ---------------------------------------------------------------------------- -- Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Freek D. <sf_...@ma...> - 2010-01-20 14:06:11
|
Erik Vos wrote: [about making some changes to the XML format] > Rick, sorry for your documentation work - I'm afraid it will have to > describe this additional level! Out of curiosity: where can I find the documentation? I could not find it in the tarbal or on the website. Perhaps I overlooked it. Regards, Freek |
From: Rick W. <wes...@pu...> - 2010-01-20 14:08:38
|
Freek Dijkstra wrote: > Erik Vos wrote: > [about making some changes to the XML format] > >> Rick, sorry for your documentation work - I'm afraid it will have to >> describe this additional level! >> > > Out of curiosity: where can I find the documentation? I could not find > it in the tarbal or on the website. Perhaps I overlooked it. > > Regards, > Freek > > > I'm still working on it. A large part is understanding the program in the first place. And, as with all of us, doing this in my spare time. -- Rick Westerman wes...@pu... |
From: brett l. <wak...@gm...> - 2010-01-12 02:14:14
|
On Mon, Jan 11, 2010 at 2:40 PM, Erik Vos <eri...@xs...> wrote: > > 3. Where do Tiles.xml and the SVG files come from? > Ultimately everything comes from a tile database named TileDesigner.18t > created by Marco Rocci's TileDesigner program (see > http://www.rails18xx.it/software.html). In the mean time I have added a lot > of tiles to Marco's original tile set. From that database I export both the > SVG tiles and an XML descriptive file called TileDesigner.xml. > > The SVG export is somewhat buggy. Originally Brett fixed that by a procedure > that I don't have the details of. I have recently taken over and I'm now > using a procedure described in the comments of a Perl script named > CombineTiles.pl. That script builds the Rails SVG file set by combining > parts from three sets of SVG files: > > Erik > There really aren't many details to give. I used Inkscape to hand-edit the tiles to the dimensions we needed, which was not fun. Having a script do the direct conversion is a much better solution. To be honest, I'm not really sure why I never scripted it out myself. ---Brett. |
From: Phil D. <de...@gm...> - 2010-01-12 11:01:16
|
I'll second Rick and say thanks for the detailed reply, that really helps to understand how the system fits together :) Phil 2010/1/11 Erik Vos <eri...@xs...>: > > > This may another one of those "I should not go there" type of questions. > If so apologies in advance. Or I may be missing something obvious. At the > moment I am learning the source of Rails via experimentation rather than > intensive reading of the code. > > Feel free to ask any questions; however, I can't guarantee that the answer > is always welcome. > > A tile for a given game is defined in three places: > > The per-game TileSet.xml seems reasonable as it has a list of the tiles > in the given game, quantity of tiles, upgrade path, and which SVG picture to > use. > The per-game Tiles.xml has the same list of tiles but this time with the > colour of the tile (not the actual color on the time but the color phase), > how many cities and towns and their positions; values of the cities/towns > and a list of how the track is laid out (e.g., from side 0 to side 2, from > side 1 to side 5). > The whole-rails SVG files have the graphics for each of the tiles. > Now for a given tile the relationship of the tile's SVG file and the > tile's entry in Tiles.xml is fixed. In other words I can not a take a tile > in the Tiles.xml file and change its track layout from 'side 0 to side 2' to > 'side 0 to side 3' and expect that the tile will show up properly. Instead > it will retain it's SVG representation. Ditto if I try to change the number > of cities or their position. So ... why not have a global Tiles.xml file > with three items in it and reduce the duplication across the games? That > would make the per-game Tiles.xml smaller and more readable (and thus easier > to debug). And/or combine the reduced per-game Tiles.xml file into the > TileSet.xml file thus reducing another source of duplication and error. > > 1. Why do we have separate TileSet.xml and Tiles.xml? > > TileSet.xml contains the game-specific tile properties, and Tiles.xml has > the game-independent tile properties. The latter file is generated by > rails.util.MakeGameTileSets (a stand-alone Java class/program) from > TileSet.xml and the overall Tiles.xml file that has *all* tiles (this file > and several other files that I'm going to mention are in directory > 18xx/tiles of the CVS repository on Sourceforge). This program also checks > TileSet.xml against Map.xml for consistency. > > 2. Why do we have separate XMLand SVG files? That is because we use an SVG > renderer that understands SVG, whereas both I and the Java code I have > written only understand XML. And I doubt if the twain will ever meet. > > 3. Where do Tiles.xml and the SVG files come from? > Ultimately everything comes from a tile database named TileDesigner.18t > created by Marco Rocci's TileDesigner program (see > http://www.rails18xx.it/software.html). In the mean time I have added a lot > of tiles to Marco's original tile set. From that database I export both the > SVG tiles and an XML descriptive file called TileDesigner.xml. > > The SVG export is somewhat buggy. Originally Brett fixed that by a procedure > that I don't have the details of. I have recently taken over and I'm now > using a procedure described in the comments of a Perl script named > CombineTiles.pl. That script builds the Rails SVG file set by combining > parts from three sets of SVG files: > - tiles with ID > 0 (layable tiles, the ID is printed on the tile). > - tiles with ID <=0 (preprinted tiles, no ID on the tile; this is a separate > export from TileDesigner) > - special tiles that I have modified manually with Inkscape (such as the red > off-board tiles -901 throught -903, which TileDesigner cannot create with > "arrows". So for these tiles the XML does *not* exactly correspond with the > SVG!). > > The XML export (TileDesigner.xml) is converted by another Java program/class > named rails.util.ConvertTiles into the overall Tiles.xml that I mentioned > before. I'm doing this conversion because I think that the latter format is > better suitable for use in Rails. > > 4. Why is this procedure so complex? > Well, we're doing the best we can with the limited knowledge and imperfect > tools that we have. > > BTW#1: Is there any routine to display all of the SVG files? > > No. Only TileDesigner has everything. > > BTW#2: The README in the 'tiles' directory says that the XML files in > said directory are not important. IMHO it should also say that the svg > sub-directory is critically important. As you can imagine by my comment it > took me a while to realize the importance of said directory > > It doesn't say that these aren't important, it only says that these are not > [directly] used by Rails. These files in fact do form the basis of the > per-game tile sets, as I hope I have explained well enough above. > > Erik > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > |
From: Rick W. <wes...@pu...> - 2010-01-11 23:43:10
|
Ah, I think I just answered my own question on why there has to be a per-game Tiles.xml when the data is being generated from a global Tiles.xml file. It looks like -- for whatever reason -- there does need to be a one-to-one correspondence between the tiles in TileSets.xml and Tiles.xml. Thus since TileSets is limited on a per- game basis then so does Tiles.xml. -- Rick |
From: brett l. <wak...@gm...> - 2010-01-12 02:45:41
|
On Mon, Jan 11, 2010 at 3:44 PM, Rick Westerman <wes...@pu...> wrote: > Ah, I think I just answered my own question on why there has to be a > per-game Tiles.xml when the data is being generated from a global > Tiles.xml file. It looks like -- for whatever reason -- there does > need to be a one-to-one correspondence between the tiles in > TileSets.xml and Tiles.xml. Thus since TileSets is limited on a per- > game basis then so does Tiles.xml. > > -- Rick If memory serves, the reason we decided to do it this way is because there are a few tiles out there that use duplicated tile numbers. So, we need to be able to do things like, "Tile #88 in game X is image #1088" while "Tile #88 in game Y is image #2088". ---Brett. |
From: Rick W. <wes...@pu...> - 2010-01-12 14:11:04
|
brett lentz wrote: > On Mon, Jan 11, 2010 at 3:44 PM, Rick Westerman <wes...@pu...> wrote: > >> Ah, I think I just answered my own question on why there has to be a >> per-game Tiles.xml when the data is being generated from a global >> Tiles.xml file. It looks like -- for whatever reason -- there does >> need to be a one-to-one correspondence between the tiles in >> TileSets.xml and Tiles.xml. Thus since TileSets is limited on a per- >> game basis then so does Tiles.xml. >> >> -- Rick >> > > If memory serves, the reason we decided to do it this way is because > there are a few tiles out there that use duplicated tile numbers. > > So, we need to be able to do things like, "Tile #88 in game X is image > #1088" while "Tile #88 in game Y is image #2088". > > > ---Brett. > Definitely need that ability. And thus the need for a per-game TileSets which has the 'pic' option (along with others such as quantity and permissible upgrades.) It is just irritating that there is this firm one-to-one correspondence between the Tiles.xml file (which gets generated from a global file) and TileSets.xml. A missing or extra tile in one or the other other causes the program to complain & crash ... and not always coherently. On the other hand things are the way they are. I've certainly written my share of programs that have strange behaviors. Often because of retroactive modifications and growth. Since I hate it when people make suggestions on what I could do better without actually doing the work -- and since I am not offering to make the program any tighter (at least at this point) -- I'll just shut up on the topic and work with what exists. I am almost done with 1876-30. It has been like pulling teeth but maybe I will have a good document at the end of this process. -- Rick Westerman wes...@pu... |
From: Erik V. <eri...@xs...> - 2010-01-13 18:42:40
|
Yes, that was another reason. Thanks, Brett. Erik. -----Original Message----- From: brett lentz [mailto:wak...@gm...] Sent: Tuesday 12 January 2010 02:37 To: Development list for Rails: an 18xx game Subject: Re: [Rails-devel] Tiles.xml, TileSet.xml, and svg files On Mon, Jan 11, 2010 at 3:44 PM, Rick Westerman <wes...@pu...> wrote: > Ah, I think I just answered my own question on why there has to be a > per-game Tiles.xml when the data is being generated from a global > Tiles.xml file. It looks like -- for whatever reason -- there does > need to be a one-to-one correspondence between the tiles in > TileSets.xml and Tiles.xml. Thus since TileSets is limited on a per- > game basis then so does Tiles.xml. > > -- Rick If memory serves, the reason we decided to do it this way is because there are a few tiles out there that use duplicated tile numbers. So, we need to be able to do things like, "Tile #88 in game X is image #1088" while "Tile #88 in game Y is image #2088". ---Brett. ---------------------------------------------------------------------------- -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Rick W. <wes...@pu...> - 2010-01-13 18:51:36
|
Erik Vos wrote: > > Thank you for the extensive reply. Knowing that there > is the MakeGameTileSets program to autogenerate the per-game Tiles.xml > and to check the Map.xml file is > a big help. Although I do wonder why you don't simply > read in the global Tiles files and use that. But, knowing XML, > perhaps that is too much of a strain on the program. > > XML parsing is slow. I don't like wasting CPU time and memory. Once again I hesitate to make suggestions when I am not going to implement them and may not know what I am talking about ... however ... during the compile into a jar could the global Tiles file be converted into a Java-friendly format that is quick to read and parse? That way when the program actually runs it just picks up the pre-formatted data and does not need to do XML parsing. > > Anyway can you give this poor ol' non-Java programmer a short > hint on how to run MakeGameTileSets? I am getting a > 'NoClassDefError' on org/apache/log4j/logger when I try to run the > class directly. I am probably doing something painfully obviously > wrong. > Your suggestion works. Thanks. One of these days I'll have to sit down to actually learn Java and all about class paths. Maybe 'rails' will be first, ah, victim. :-) -- Rick Westerman wes...@pu... |
From: John A. T. <ja...@ja...> - 2010-01-13 20:09:23
|
On Wed, Jan 13, 2010 at 1:51 PM, Rick Westerman <wes...@pu...>wrote: > Once again I hesitate to make suggestions when I am not going to > implement them and may not know what I am talking about ... however ... > during the compile into a jar could the global Tiles file be converted > into a Java-friendly format that is quick to read and parse? That way > when the program actually runs it just picks up the pre-formatted data > and does not need to do XML parsing. The fastest to load would be serialized Java objects, and you can load the entire object graph at once. -- John A. Tamplin |