Hi, I've had a go at making a robot battle game in Haskell (a robocode clone), I was using Yampa for both the robots and the game logic - however using Yampa for the game logic presented a number of problems, mostly in ensuring every single piece of data "emitted" from the game logic portion was evaluated.
I had a fair amount of work done, and it was shaping up nicely, but it needed simplification, trying to add in too many extras such as physical simulation of collisions etc. turned it into a bit of a monster when the core design needed some work! http://saulzar.orcon.net.nz/robots2.jpg I'd definitely like to give it another go, this time without Yampa for game logic - though it seems fantastic for the user robot code, perhaps it needn't be compulsory - interested users could always use Yampa if they desired. Oliver Batchelor On 7/16/07, apfelmus <[EMAIL PROTECTED]> wrote:
Hugh Perkins wrote: > Had an idea: a real shootout game for Haskell. > > scripts "fight" in an arena for a second or so, and the results are > published to the website Sounds great :) There are lots of "robot battle" games out there, like http://realtimebattle.sourceforge.net/ http://robocode.sourceforge.net but none in Haskell, of course. I think there's a classic predecessor to those but I don't know exactly. > Each turn is represented by a function something like: > > doturn :: String -> [[GridValue]] -> (Action,String) The explicit state can be dispensed with by introducing a stream type data Robot = Robot (BattleField -> (Action, Robot) type BattleField = [[GridValue]] This way, the program is entirely free in how to choose its state representation. You can turn any doturn - based program into a stream-based one toRobot :: String -> (BattleField -> String -> (Action,String)) -> Robot toRobot s doturn = Robot $ \arena -> let (action, s') = doturn bf s in (action, toRobot s' doturn) The drawback is that it's no longer possible to save a snapshot of each program's state to disk and resume the fight later. Regards, apfelmus _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe