simplest (but still fun!) programming game?

As some of you know, I’ve been working on a language called MiniScript for embedding into Unity games. I’ll probably use it myself for mod support in High Frontier, but I want to be sure it gets plenty of exercise. So I’m thinking about making a little programming game with it, just for fun.

As a yoot, I spent hours playing RoboWar, so that’s my golden standard for programming games:

You play this game by writing a script to control your bot, and turning it loose in the arena. Once the battle begins, you are only a spectator!So my first instinct would be to pretty much recreate this: 2-6 robots in an arena, shooting each other with various weapons and defending with energy shields, armor, dodging, and hiding.

But that’s not quite as easy as it sounds, because balancing all that stuff can be tricky. And I wonder if I’m limiting myself right off the bat, just because this is almost the only programming game I’ve ever played.

Are there other programming games which are fun, but even simpler than this? Or something you’ve always dreamed of but never seen?

1 Like

Have you looked at the games on Scratch? It’s a lot simpler than what you have, I’d say yours is the next step for teaching kids programming, but people have rebuilt the old Rampart game & stuff like that. Maybe a quick look will show you what most of the new players are building as their first game.

1 Like

If you wanted a cutesy game you could programme a dog to run an obstacle course in the quickest time. The course can be completed in any order as long as everything is ‘hit’ once by the dog. Award points for time & deduct points for ‘hitting’ things more than once so they learn to balance risk as well as plotting routes.

About the only programming game I’ve played is Colobot. It had another variant called CeeBot but that one was far later and never achieved quite the popularity. They were fun and gave me an early taste of C-style languages.

https://en.wikipedia.org/wiki/Colobot
https://github.com/colobot/colobot

Outside of those though the only other “games” I worked with were ZZT and MegaZeux, but those are more along the lines of game creation systems rather than actual games. Their languages are very primitive too. Closer to assembly.

https://en.wikipedia.org/wiki/ZZT
https://en.wikipedia.org/wiki/MegaZeux

1 Like

@tedthebug , I’m not sure I was clear that I’m not talking about something where the players (users) make a game… I’m talking about a game where writing code is the whole point of the game. Players play by writing code that controls entities in the game, instead of controlling them directly. It’s a pretty intellectual exercise and unlikely to ever catch on in a big way, but could be good fun over the holidays for geeks like us. :slight_smile:

I’m also not looking for an “Hour of Code” type learn-to-program experience, though you could certainly do that with MiniScript too (and I may look into that for next year). I want something we can challenge each other on, maybe have an informal king-of-the-hill tournament or something.

@Ryiah , I hadn’t heard of those, perhaps because they’re DOS/Windows games and I’ve always been an Apple guy. But they look interesting; thanks for pointing them out!

Does Final Fantasy XII count? Otherwise there is kOS the KSP mod, too much natural language for me though so I’ve never used it seriously.

I’m with @RockoDyne - I really liked how Final Fantasy XII approached the programmy-aspect of the game. The “Gambit System” revolves around “two” sets of things: instruction slots, and the instructions themselves.

Instruction slots aren’t a linear sequence, either, they’re more like priorities; your first slot is the highest priority, the second one slightly less important, and so on.

The instructions themselves consist of an overt condition (Ally HP <= 30%), an action (use Curaga), and usually some implicit conditions carried by the action (don’t cast Curaga if I don’t have enough MP for it.)

So it’s possible to have a ‘script’ that reads like this:

#1 - If Enemy HP = 100%, Steal
#2 - If Enemy, Attack
#3 - If Ally HP < 50%, Potion (requires > 0 Potions in inventory)
#4 - If Ally, Handkerchief (removes Oil status, can’t be used on characters not afflicted with Oil)
#5 - If Enemy HP < 30%, Summon Cu Chulainn (requires ability to summon)

I also like how instructions can be bought and found during the course of the game. It sort of helps with the whole Paradox of Choice thing, because instead of the game dumping you with all the possible instructions in the language after the break-in to Rabanastre, you have room to learn to set Gambits properly. Also, in the lead-up to the break-in, you have to control two characters without Gambits. It’s almost like the developers were like, “Hey player, it’s painful to control multiple characters, isn’t it? Welp, we have something that might help…”

Also, given that half of the game revolves around characters making Batman Gambits based on knowledge of other characters, the mechanic is thematically appropriate, too.

1 Like

Like the tank tutorial AI comp that is running atm?

You could do a race track with the players having limited weapons that they can code when to use.

Did you want multiplayer or single?

I found these for inspiration
https://codecombat.com/about
http://stackoverflow.com/questions/25952/best-programming-based-games

I had no idea Final Fantasy XII had any such thing! (I confess, I’ve never gotten more than 15 minutes into any FF game, and have never understood what all the hubbub was about, though I’d like to someday.)

I’ve got it! Brilliance struck in a sudden flash over dinner just now:

Robo-Reindeer Rumble!


Program your robotic reindeer in a game of all-out domination in a snowy North Pole arena! Attacks include snowballs, name-calling, and laser nose. Defenses include flying, shields, and hot cocoa. Last reindeer standing is the winner!

(And yeah, I just googled up that image above… there’s almost nothing you can’t find an image of on the internet, is there?)

5 Likes

FF12 has problems - the pacing is one of them, the fact that the ‘main’ character Vaan was a last-minute write-in, and how homogenous the progression system is - but it has plenty of good points. The story is pretty much Star Wars meets Lord of the Rings in the best possible way, but with the antagonists having actual screen-time and non-cartoonish motives!

If I had to describe the gameplay, I’d say that - besides the Programming Game built into it - it’s an offline MMORPG (it came out after FF11, which is an MMO, and according to TVTropes, the battle system can be summed up as the Chainspell ability, expanded out more.)

Bear in mind - to get to the Programming game, you’re going to have to invest about two hours of time to unlock the Gambit system. I recommend H.C. Bailly’s Let’s Play of FF12, as he’s pretty thorough and does a good job of taking very efficient paths through the game.

This looks good, does the winner get to lead the sleigh or just doesn’t end up on the dinner table?

2 Likes

Well - as we all know - the key to eating a robot comes down to the sauces. You can’t just slap some marinara on a Roomba and call it supper. You’ve got to get the pepper flavor just right.

1 Like

I was thinking cyborg, you eat the bits that are left over & serve with a side of nuts as long as it isn’t to greasy

1 Like

And so… it begins!

while 1
  heading = heading + 5
  wait(0.01)
end while

EDIT: Or even better, using this asset:

(Running the same MiniScript as above. Jumpiness is in the animated GIF; rotates butter-smooth in real life.)

1 Like

It’s 4v1 as the reindeer attempt to overthrow that evil despot slave driver better known as Santa. If they can battle past him to the workshop they should be able to release the elves who will help craft & upgrade their reindeer weapons so that, working together, they can all gain their freedom, much to the dismay of children everywhere.

1 Like

Will you make a WebGL player that we can upload our MiniScript to? Maybe trim down the options if time’s short and give us a leaderboard?

I will probably do Unity plugin rather than WebGL… I haven’t experimented with WebGL much yet, though I suppose I could take this as an opportunity. But as you say, time is short.

It will look something like this:

…where the Edit button by each reindeer will let you edit its name and source code. Then you just Reset and Play, and see what happens! While the game is running, Edit will probably be replaced with something that lets you view the output console for each deer (though the last output message is also shown in the speech bubble).

As for a leaderboard, I may have to just manually run that… I don’t know that I have time to set up a server before next week. When the game is ready to play, I’ll start a separate thread for it, maybe over in the work-in-progress forum (or would General be more appropriate?). Folks can just paste their scripts there, and then copy them into their own games to try them out.

I could also throw any script that makes it to the top of the hill in my own mini-tournaments up on my web server next to the app, and make those easily loadable from within the game. (I believe the web player security restrictions will allow me to load those, as long as their on the same server.)

4 Likes

Ugh… of course, if I can’t paste multi-line text into an InputField, then this whole thing just got a lot harder. :frowning:

1 Like

This is supposed to be fixed in 5.3.0. Otherwise, as a workaround, what about an HTML form and a post?

1 Like