I’ve made some progress on tinysmash:
- There are now two tanks.
- Each tank runs from its own C# script.
- 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:
GitMerge for Unity actually works.
It lets you merge scenes and prefabs.
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.
GitMerge for Unity