Scripts are loaded from text assets in the Resources, so they can be edited and re-loaded while the game is running.
Bullets now destroy tanks.
This is much more quickly than expected getting me to the point where I can start designing the commands and sensors that the tanks (soon to be robots) expose to the player.
I’ve dived into a fun side project called tinysmash, and it’s an homage to RoboWar, the 1990 Mac programming robot battle game.
There are certain very magical things about RoboWar, summarized as follows:
The concept of a “robot” is very abstract, since you can create any icon art you want. This allowed for conceptual robots and subverting and playing with robot design.
The game held tournaments, and you could build your robot against copies of the recent tournament winners, so the overall metagame continued to evolve.
I also want to make at least one change to the RoboWar formula:
RoboWar’s very low-level programming language RoboTalk actually gets in the way of tactical focus. I want to use a higher level language that gets the players thinking strategically right away. This comes at a cost of “hotrodding” your robot by shaving off clock cycles, etc.
I mocked up a basic arena, and today I searched for interpreters that could run the code to control my robots. I considered Python and LUA interpreters, but decided on Dynamic C# by TrivialInteractive. It’s a wonderful, simple package, and I’m using their tank game demo as a basis for further tinkering:
It is easy to install, feels appropriate to the dialects of both Unity and Git, and has a nice, visual merging interface. And, it’s free and open source.
I will be using this in every project from now on.