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.
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) ...
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.
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.
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.
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.
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.
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.
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.
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)
...