26

Software engineers are usually efficient in spotting parts that can be automated, solved by an algorithm etc.

Are there any games where players can take advantage by being programmers?

That is, scripting repetitive tasks or coordinating complex tasks, looking for strategies using algorithms etc.?

  • This is kind of tongue-in-cheek, but technically all MMORPGs apply (example). – March Ho Jul 21 '15 at 14:27

13 Answers 13

11

Untrusted is the closest I can think of something that matches this description. It's an adventure game where you have to modify code to solve levels and escape.

However, I think it is a bit more literal than you may be getting at; I could imagine action adventure games where the solutions to puzzles are a bit more algorithmic, but I'm unaware of any.

8

I'm not sure how much you do in Linux, but Vim Adventures might fall under your qualifications.

The game is more of a teaching tool for VIM, but it's quite a fun game, and it can serve as a great refresher/new experience for anyone getting into text based development on Linux (well, VIM/VI anyway).

  • 1
    Being a Linux and Vi user, it sounds like a great way how to practice. Thanks! – Petr Pudlák Apr 27 '15 at 18:19
6

Colobot is an awesome game where you are required to program bots to achieve objectives.

program bots to achieve objectives

It is old. Yet awesome fun.

links of interest:
http://colobot.info/colobot-gold-edition/
https://github.com/colobot


Elevator Saga - The elevator programming game
http://play.elevatorsaga.com/

enter image description here

6

If you want more of a traditional game where you can optionally program solutions, I would try any big Minecraft modpack that has the Computercraft mod in it. I would recommend FTB Monster but really any pack (or your own group of mods) that has Computercraft would do.

I have seen people create some very advanced automation through Computercraft using the Lua programming language (and I myself have created some basic to moderately complex automated things).

Edit: I recently came across another similar mod called OpenComputers. It is harder to set up (in game, installation of the mod is the same as Computercraft) but has things that make it stand out from Computercraft. If you want you can do what I'm doing and use both mods (along with 200+ additional ones ☺).

6

CheckiO is a game purely about solving programming challenges (in Python).

I'm not sure if this fits your description since programming doesn't so much give you an advantage in the game, it's absolutely required.

The game presents you with different missions, some of them user created, that require you to write code that satisfies a given set of unit tests. Once you write any sort of code that passes those tests, the mission is considered solved, and you may publish your solution to have it reviewed by other players.

The missions start easy but increase in difficulty quite rapidly. Particularly the harder missions also require some knowledge of mathematics, geometry and computer graphics.

5

Screeps is the "world's first MMO strategy open world game for programmers".

You have to write JavaScript to play it.

You control creeps which can perform various actions, and the goal is to create your own empire and to conquer the territories of other players. Depending on how you program your creeps, they can react to events while you are offline.

The MMO (with a single persistent world) starts next week as "early preview", the duel mode (1 vs. 1) is in development, and the arena mode temporarily disabled, so currently you can only play the "Tutorial", the "Survival" mode (you against NPCs), and the "Custom Mode" (for testing).

For questions about the gameplay, you can head to Arqade, and for questions about the programming to play it, you can head to Stack Overflow.

4

There is this Belgian game currently in development, by Fishing Cactus: Algo Bot.

It's considered a serious game and is based on algorithms (hence the name) and programming. It looks very promising! :)

4

I've enjoyed playing Human Resource Machine. The player takes on the role of a person in a "factory", and you provide the instructions on how to process the inputs that come in on a conveyor belt to place the right values on the output belt. It's presented as a kind of puzzle game, but you essentially learn to program in an assembler language, starting with basic loops and ending with implementing standard algorithms like sorting items and factoring numbers. Using fewer instructions (either a shorter program or a shorter number of executed steps) provides an additional challenge.

It's in a bit of an odd place, in that it's probably too hard (at least the later levels) if one hasn't been exposed to programming, and can be too easy if one has. It's been used in schools as a way to teach some programming concepts, and I can definitely see its use alongside a guide or as a way to actually "see" what happens under the hood of a sorting algorithm, for example.

3

CodinGame is about writing little AI scripts to solve certain scenarios in a game-like environment, in almost any programming language you can think of.

  • Pretty impressive tech. I assume it must punt your code server side, compile it to some intermediate language (or perhaps cross-compile to JS) and send it back. I seem to remember looking at the Chrome inspector to try to figure it out, when I first heard about this :-) – Rikki Jun 11 '15 at 0:44
2

enter image description here

Robocode is a pretty straight forward robot battling game that is Java based. You code the brains of a tank by implementing a class in Java. It is event based so you're overriding methods like onHitWall and onScannedRobot. Then you toss a bunch of bots into a battlefield and run 1000 simulations or so to see which bot is superior.

It is a lot of fun and very scalable in terms of difficulty. There are very sophisticated bots and very simple bots. You could lose a lot of time studying the different techniques and strategies. Here is the simplest robot taken from this tutorial:

import robocode.*;

public class MyFirstRobot extends Robot {
    public void run() {
        while (true) {
            ahead(100);
            turnGunRight(360);
            back(100);
            turnGunRight(360);
        }
    }

    public void onScannedRobot(ScannedRobotEvent e) {
        fire(1);
    }
}

enter image description here

1

You can take a look at my favorite game of all time, the Zeus Carnage Heart series.

It got me into programming.

It's kind of robotic war game, you buy your hardware and program software to build a fighting robot.

1

You may be interested by TIS-100, which use Assembly-like language, and Shenzhen-IO, which mix embedded circuit and assembly-like programming.

Both are puzzle games: you get a limited board/LOC limit, a set of input, and instructions on what output is expected. While TIS-100 is closer to what you are asking, I enjoyed Shenzhen-IO more, since the complexity of your code is taken into account to grade your solution.

Both games don't have "one true solution", you may have a solution which is more obtuse but quicker, or slower but easily understandable...

TIS-100:

enter image description here

Shenzhen-IO:

enter image description here

1

Factorio fits the bill.

You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. Use your imagination to design your factory, combine simple elements into ingenious structures, apply management skills to keep it working, and protect it from the creatures who don't really like you.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.