Ludum Dare 23
April 20th-23rd 2012 :: 10 Year Anniversary! :: Theme: Tiny World
NanoTanks - A tiny programming game for a tiny world - mjb - 48 Hour Compo Entry
Windows | Linux | MacOSX | Source
Nanotank is programming game which pits your wits as a programmer against the tiny mind of the computer. Your creations (written in a tiny Scheme-like language) will battle for supremacy of the tiny world of the computer. Its a small and simple world, but the nature of the language makes it an extremely open one.
Contains a complete custom tank-controlling progamming language, graphics and some buttons. And a disabled slider bar. Read the README for documentation and instructions.
Stuff I was happy with
----------------------
- I like the concept. It's not that original, but programming little tanks in Scheme-like is actually quite fun (for me).
- The language implementation is pretty solid. I spent way too much time on it, but it's not that horrible.
Stuff I would have done with more time
--------------------------------------
- A better code editor. I recommend editing the code in a better editor and using cut and paste. Also syntax highlighting would be awesome.
- More game mechanics and balance. It's very minimal as it stands.
- Sound and Music.
- Much better language documentation. I had a tutorial planned, but ran out of time.
- Better looking UI.
- Testing on Windows and Mac.
View mjb's journal. | View all entries by mjb
Ratings
![]() | Coolness | 56% |
| #160 | Innovation | 3.52 |
| #524 | Overall | 2.81 |
| #695 | Audio | 1.60 |
| #715 | Humor | 1.62 |
| #737 | Mood | 2.16 |
| #748 | Graphics | 2.24 |
| #784 | Fun | 2.08 |
| #831 | Theme | 2.04 |
Comments
mitkus: Can you post the whole stack trace? And the last output before the stack trace if you run java with -v?
I updated my entry, and now should work on Windows, Mac and Linux (but only tested on Windows and Linux so far). Just unpack it and double click on the right .jar file for your platform.
So Sad, The game is link is down, I was excited about this one.
It works for me on Windows. It's clearly an amazing technical achievement. It's also very innovative and ambitious!
Unfortunately, I felt that the language isn't very approachable. Also, it's hard to want to learn a new programming language and change the code that's there without any goal in mind.
It seems like you can spawn two things and select two algorithms to control them(?) but there's no indication as to what is the "player" and what is "ai" or even which script controls which bot.
If the object was to modify some code to defeat a very simple AI (who's code you can't change and perhaps can't see), this would be a fun game!
I've played games like this and even written one, and they're fun, but it's hard to dive into a language like this without much tutorial. It might be cooler to have buttons for verbs that put in the right syntax rather than having to type the whole thing. The code screen is very neat and clean, and the arena part is easy to understand and cool-looking despite being a little low-rez.
Jedi: Thanks for your comments. The goal is to implement an AI in the language, and defeat either the built-in AIs or the AIs that you write. Any script you save can be loaded as an opponent.
Dave: Agreed. I had a more interactive editor planned (and, at least, syntax highlighting and checking) but ran out of time.
I'm sorry but I just couldn't get "into" it. It is obviously quite a technical achievement but something I cann't just pick up and play.
Great achievement!
However I would've chosen a language style that would be clearer or neared to what most people know. Lots of brackets around ;)
Lack of code reference and a poor GUI made it too difficult to get in to unfortunately. Looks like you had lots of ideas in there as far as the language goes, but it's not accessible for the average player.
Congrats on implementing the whole thing in 48 hours though, that's pretty impressive.
I can't make this game work on Mac OS X, but I'd really love to play it!
I've made my last two games for Ludum Dare in lisps (screw the haters), and am interested to see how this ended up working out.
My stack trace is here: http://pastebin.com/SEUUKtKy
Kudos for implementing a pretty legit language in such a short time.
> My stack trace is here: http://pastebin.com/SEUUKtKy
Thanks for the stack trace. I'll see if I can track down a mac to reproduce the issue. JOGL does some dynamic binding magic, which is what appears to be broken here.
I couldn't get it to work in mac with eclipse, but I think the issue may be the lack of a gluegen-rt-natives jar for mac? Tried downloading but had no luck. I'll see if I can get it working on my linux box later today.
Smart idea. Couldn't figure it out though, the language was pretty non-standard.
I'm not sure if it's that the language is too complicated so much as it isn't self documenting (what's mytsl?) and doesn't have comments.
I've been thinking of making a programming game myself. Didn't even occur to me to have the code and simulation displayed at the same time. Duh.
Anyway, kudos for doing a programming game. I'll probably spend more time on it some day in the future -- perhaps perusing the source as well -- interested to see a homegrown compiler.
Unable to run. The rendering canvas is filled with some artifacts.
I was really looking forward to playing this one, but it turns out that it goes way outside the bounds of my screen. (Playing on 1024x600, yeeee netbooks.)
I'll have to take another look when I'm back at my desktop.
Linux Mint 12:
java.util.zip.ZipException: error in opening zip file
doesn't work on mac, damn, I really wanted to check this :/ have to fix windows rig asap!
would be nice if there was some sort of visual cue's as to which one is mine or which is the "other" ai. Kinda reminds me of IBM's "robocode"...only played with the default AI's though.
You must sign in to comment.

Crashes for me on OS X:
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
...