▼ Not recommended
15 hrs
A Brief Summary
Code Rivals is a robotics programming game in which the player directs tanks to destroy enemy droids using a visual programming language, the procedures and operations not too far off from the flow diagrams of a high school robotics class. While the premise and presentation are great, the programming leaves much to be desired. Namely, the editor has a number of dysfunctional and un-intuitive controls while the scope of the solutions is heavily restricted by the limits of the tank’s sensors and the game itself. If you’re someone who dreams of ‘if’ statements and algorithms, you may enjoy parts of this game.The Basics
The TankThe tank the player controls has a number of mechanisms that can be manipulated by the code. A tank has two engines to control its left and right treads. A single servo motor is used to rotate a turret carrying the laser sensor on top of the tank. The tank’s compass tracks its rotation relative to a fixed north. Offense and defence are accounted for by the gun and smokescreen respectively. Lastly, the impact sensor can detect if the tank is attacked. There are two models of tank, though only the Type-1 is used for the tutorial. The Type-1 wields a powerful single shot cannon fixed to its frame. The Type-2 has a fast firing long range cannon mounted on the turret with its sensor. Each has its own pros and cons.
Programming
Programs are collections of sequentially connected blocks on the grid. To move the tank, place a “game start” event and point its arrow to an “activate” action, with a component block to specify an engine. The blocks are organized into intuitive, color coded, groups. Actions are always blue, their targets dictated by green component blocks. Pink controls indicate when or if following blocks should be run. Red events can trigger sections of code in response to certain conditions, such when “play” is pressed. Custom events, variables, and functions can also be defined to get a little more leverage. Every block has a small and easily understood purpose. As with all programming, the challenge is in getting them to do something meaningful.
https://steamcommunity.com/sharedfiles/filedetails/?id=3021432832
When it does the thing~
Code Rivals excels in the feel of the tank. The engines and motors click and whir when their settings are changed, the tanks making immediate turns and smooth movements. The Type-1’s cannon violently destroys whatever is in front of it on demand, while the Type-2’s gun cleanly eliminates its targets from a safe distance. Success comes from a long chain of trials, errors, and improvements as a direct result of the player’s efforts. It feels good when it does what it’s supposed to.
Gamemodes
Tutorials
The ten and a half tutorials make up the bulk of the game’s content, the first of which teaching the player the bare minimum to move the tank. Next is how to shoot, and then how to move the tank to a target. With the basic systems out of the way, the game starts requiring more tasks of the player, such as killing two enemies in succession, then three. Code can be tested quickly during the tutorials, allowing a player to work out how far the tank will need to move or turn before shooting. Later levels push the player to automate more of the process by suggesting basic methods of detecting and targeting mobile enemies. Broadly, the tutorial sufficiently explains what can be done with the tank's functions, though it takes a bit of a leap in the later levels.
Survival
Survival stands as the primary application for a player’s code in the game, generating fairly diverse arenas with enemies airlifted to random locations for each wave. The goal? Kill as many enemies as possible without losing your main tank. Clearing all enemy droids and tanks will advance to the next map and wave, restoring the player tank’s hp and leaving a moment to prepare for the next wave. Due to the random nature of each map (walls, hazards, and traps), players are also allowed to stop their tanks and reprogram them in the middle of waves, though their tanks are vulnerable to attack during this time. To make things a more interesting, each wave starting from the third will award the player an extra tank up to a maximum of three. It can be exhilarating during later waves, each new level requiring a new tune up on the fly to clear, getting that much closer to a high score.
Problems
Every moment of triumph was met with at least two of frustration. The problems range from unintuitive controls to bugs, costing the player time and often interrupting or obscuring the development process.Clunky Controls
One of the first things a player is likely to notice is that code blocks aren’t selected on click, they’re picked up and placed. Lacking the notion of a selected block, deleting a block is done by right clicking the target and selecting delete. Clicking and dragging on the grid will generate a text box centered on the mouse best thought of as a tray that can be slid under sections of code, allowing the user to move everything in the area by moving the box. Functions and copy operations place their code "somewhere" on the page, failing if that "somewhere" happens to intersect with existing code. Even when understood, the system is slow—especially with the large number of blocks needed to perform basic operations. The time lost to the editor is further compounded by the lack of a good way to quickly test and debug code.
Limitations
Limitations are half the fun of programming, shaping how problems must be approached. However, the limitations of Code Rivals are such that many problems cannot be meaningfully addressed at all. The tanks are practically blind and work best in flat, open areas—unable to detect walls, avoid traps, target enemies when on uneven ground, and identify that the piles of barrels aren’t enemies. Movement, largely, must be hard coded into the programs as a result. While the tanks still function in spite of these limitations, the only problem left to solve is target acquisition and what fixed location the tank should move to when doing so.
Beyond the tank’s limited perception, doing anything fancy with more than one tank will bring the framerate to its knees, blinding tank sensors and turning the game into a slideshow. The challenge of survival isn’t about finding solutions smart enough to conquer ever greater challenges, but one that’s dumb enough to run while doing the bare minimum to keep losses down.
The enemies face no such limitations. Their capacity to ignore decoys, engage targets at any elevation, and pathfind around walls, all regardless of lag, almost feels like cheating.
Bugs
After some time testing, scratching my head as to why my tank would always turn right when targeting an enemy, I discovered that boolean variables couldn’t be set dynamically as the action would suggest. Further, setting and then reading a variable using sequential actions is not a safe operation without a delay block. The save button doesn’t work in the tutorials, while survival mode has a tendency to forget what code the player had between waves. Chunks of code can turn into invisible blocks when reverting changes, resulting in lost code and clutter. The “start” button can be clicked when code is running, initializing a new instance of the code and demolishing the frame rate. And so on go the bugs. Some are sneaky, and some are obvious; most are trouble.
Conclusion
Code Rivals poses interesting programming challenges, many of which cannot be addressed by the tools provided. The game is still being worked on, so it’s possible that some of the problems with the game will be rectified in the future. However, it’s not there yet.[quote]Follow our Curator page, Summit Reviews, to see more reviews regularly.
21 found helpful
Steam ↗
Comments
Log in to leave a comment.