🕸📝Fergus Duniho wrote on Sun, Nov 24, 2019 05:46 PM UTC:
Game Courier originally started out without any support for rule-enforcement. It offered a way to play games by email by generating diagrams from FEN strings that could be included in URLs. When I started working on what became GAME Code, I started with commands for automating some tasks, such as moving captured Shogi pieces off the board. In time, it became a programming language with the ability to be used for rule-enforcement. Because of the way that the language was added into Game Courier, it always remained optional rather than required. Besides that, some games could be too complicated to program, and using Game Courier just as a dumb board server would allow them to be played despite that. It also turned out that some people were a lot more interested in creating and trying out new variants than they were in programming, and they went ahead and created lots of presets without any programming.
As a programmer, my own preference has been for programmed presets. H. G. is also a programmer and might feel similarly as I do about the advantages of having programmed presets. I do want to make it easier to create programmed presets, but I also consider it important to still allow unprogrammed presets. This precludes the option of putting default code in presets. However, it could be helpful to have a GAME Code include file that includes default functions for a wide variety of common pieces. Another thought is to write new include files to require some values to be set before they are included. By require, I mean they would exit with informative error messages if any of these values were not already set. This would give programmers who include them reminders about what values might need to be set differently than for Chess.
This would still require some willingness to do programming, but it would at least make it easier.
Game Courier originally started out without any support for rule-enforcement. It offered a way to play games by email by generating diagrams from FEN strings that could be included in URLs. When I started working on what became GAME Code, I started with commands for automating some tasks, such as moving captured Shogi pieces off the board. In time, it became a programming language with the ability to be used for rule-enforcement. Because of the way that the language was added into Game Courier, it always remained optional rather than required. Besides that, some games could be too complicated to program, and using Game Courier just as a dumb board server would allow them to be played despite that. It also turned out that some people were a lot more interested in creating and trying out new variants than they were in programming, and they went ahead and created lots of presets without any programming.
As a programmer, my own preference has been for programmed presets. H. G. is also a programmer and might feel similarly as I do about the advantages of having programmed presets. I do want to make it easier to create programmed presets, but I also consider it important to still allow unprogrammed presets. This precludes the option of putting default code in presets. However, it could be helpful to have a GAME Code include file that includes default functions for a wide variety of common pieces. Another thought is to write new include files to require some values to be set before they are included. By require, I mean they would exit with informative error messages if any of these values were not already set. This would give programmers who include them reminders about what values might need to be set differently than for Chess.
This would still require some willingness to do programming, but it would at least make it easier.