where is the code?
An alpha on CPAN in a couple of weeks, I hope. (-: I wouldn't waste everyone's time with such a big pain if I wasn't making it free! :-)
Since this seems understandable (-: at last :-) I mostly need to finish the CGI example.
your goal is to create a way to build a referee that can be handed a gamestate and a prospective move and it tells you if the move is legal or not?
The problem was more modest -- modelling a part of a game called Car Wars. It was quite popular at the end of the 80s and noone ever wrote an implementation for the design rules, but many have certainly tried. The rules have too many exceptions and ugly special cases. Which is the main reason I worked on solving it.
I'll do some examples, but don't really think anyone will use it for what I use it. That is why I try to get the documentation understandable before releasing.
Maybe a type-inferencing language like ML would be more appropriate.
You're certainly correct!
I didn't really know what I was doing from the beginning -- this grew organically. I choose Perl mainly because I wanted to find a project with it. If I rewrote this, it wouldn't be in any "normal" language, I think.
I don't know if five or five thousand people will have a use for this. But, as I wrote, when this tool fits well, then it will solve very hard problems.
| [reply] |
The problem was more modest -- modelling a part of a game called Car Wars. It was quite popular at the end of the 80s and noone ever wrote an implementation for the design rules, but many have certainly tried. The rules have too many exceptions and ugly special cases. Which is the main reason I worked on solving it.
Heh. Car Wars is a great game! A Steve Jackson game, if I remember correctly. There is an official computer game called AutoDuel, which was based on the same ruleset. As AutoDuel was released between 15 and 20 years ago targeting primarily the C64 market, it wasn't able to match the complexity of the full ruleset.
That said, given the success of the AD&D computer gaming market, I cannot imagine that the current Car Wars ruleset would be that difficult to model. If I remember correctly, it's primarily a bunch of tables with a few interactions thrown in. That's extremely easy to do using the methods from those types of games. Look at how Warhammer and Battletech have been done. BTech has a number of computer games, especially console and arcade games, which means that the special-casing can be easily handled.
Ruleset modeling has a ton of real-world uses. For example, trading everything from commodities to currencies uses rulesets to aid the traders in which situations need their personal attention. A lot of the work on those systems was done based on the research that looked into modeling chess.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
| [reply] |
2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
By that criterion, perl is definitely not good software. I guess that shows that (1) is a fair bit more important than (2). :-)
(Sorry for the topic drift.)
| [reply] |
First I should say that my beloved Car Wars implementation feels a bit irrelevant, now. :-) I did most of it and started making a real lib out of this instead. This is a hobby that I lost control over and took time off to finish.
computer game called AutoDuel, which was based on the same ruleset.
I haven't seen it, but... did that game really implement the whole rule set??
All exceptions and links between weapons, different loads in one magazine, variants of turrets like external weapon pods/rocket platforms/sponsons, different kinds of rockets and laser links, component armor etc, etc?? It implemented a real time game, so why should it?
(Update: I missed the text "it wasn't able to match the complexity of the full ruleset" about AutoDuel. Totally missed the argument.)
given the success of the AD&D computer gaming market, I cannot imagine that the current Car Wars ruleset would be that difficult to model.
It hasn't been done, as far as I know. And there were lots of computer people that loved it.
You have lots and lots of exceptions, etc. If you start implementing away, it will become really, really ugly. I started this as a hobby when I got the idea to model the cars as hierarchic structures and make them OO, so I could override behaviour everywhere. Then it becomes quite neat!
Also, the finished object tree would be relatively easy to extend so you can have "behaviours" like possible moves, taking damage and when it is legal to shoot (and hit). Ergo, something that could play the game, too.
(-: That said, I was at the Nordic Perl Workshop this weekend. I got a feeling there were a dozen people in the room that could throw something together over a weekend. :-)
Ruleset modeling has a ton of real-world uses.
There should be real world uses to make things easily that is very hard otherwise, but I have no idea which.
If I knew who it would be worth money to, I would probably have sold it because I really could use the money or a high paying job. :-)
(-: So, if you think up a good use, send a suggestion for enough money that I will go back on promising to publish it. It better be much, since I'd have to change name and move a long way. :-)
N B The previous paragraph was a joke. (-: I think. :-)
| [reply] |