I have yet to dive into the world of having my own website. As much as I love programming and Minecraft, you would think I would be obsessed with building one.
@JoeZ. well you could still make it responsive, so that there is a maximum width. anyway, I do like this kind of riddle. do you know ouverturefacile.com?
So I was thinking about giving KotH a go in a week or two (i.e. hosting one). I've got three ideas around which it could be based. Using all of them seems like too much ,but maybe combining two into a challenge could be interesting. So here are the ideas (if it's not obvious, I'm asking for feedback, what you find interesting and might be worth expanding on):
a) In the KotHs I've seen, submission whose only purpose was to support other submissions were disallowed. I think strategically that could be very interesting though. So I thought making a KotH where each player may submit a main bot and, say, up to two supporting bots could be interesting. I'd limit the way in which they can communicate, but the helpers could for instance be used to gather some form of (cartographic?) information for the main bot.
b) A KotH where you have to choose a "class" for your bot (in the RPG sense). So you the KotH lets you choose between one of, say, three classes that have different skills. This could be hard to balance but would also expand the strategy space, I think.
c) Less of a conceptual thing, I'd like to do a 3D-sequel to Rusher's survival (with his permission and/or co-operation if interested). That is, it could be underwater or something. On its own just extending the rules to a 3d grid is probably not interesting enough to not be marked as a duplicate, but I was thinking about combining this with idea b).
@Geobits yes that's one option. Or the main is just quite slow and needs faster scouting bots to map out the area so he doesn't waste precious moves.
The supporting bots could also work more in a fighting context as well, I don't have any fixed ideas about it so far. I just thought it could be interesting to not only stage bots against each other but also introduce multiple bots communicating and working together.
In general, I prefer simple rules and emergent features of games... which is why I prefer Go to Chess. ;) So I don't want to overload any single KotH with complex rules either.
@m.buettner Ok, in response to your first idea - if you allow up to three submissions and you allow support, keep in mind that now every competitor will feel obligated to write three submissions (which can be tedious) in order to win
@m.buettner I like the class idea if you can do it correctly (i.e., provide balance). Rock-paper-scissors is a game of perfect balance, so use that as a baseline?
@m.buettner This post has some interesting insights about "come from behind" mechanisms and avoiding situations where certain players simply have no chance of winning.
The one I like most is "If you take me out, I'm going to make it so that you can't win afterward."
btw an alternative to the multiple bots thing, which would also introduce the communication thing would be to just let people write one bot, which can communicate with other instances of itself.
@Rusher Thanks, bookmarked, I'll give that a read later.
@m.buettner I would LOVE to cooperate on a 3d game board. In fact, I had one written (the board that is) but no rules or any kind of interesting idea to go with it. I also wrote an alternate 2d board with "elevations" thinking about height advantage. Both of them lacked an interesting "game" to go with the board.
@Rusher Oh sweet, I really like the height map idea as well.
Well, I've got one more exam next Wednesday... until then I don't really want to procrastinate with implementing anything. But after that, should I just ping you so we can sit down and try to come up with some interesting set of rules?
sweet! I wish my first college had done that (I did a BSc in software engineering before)... but it didn't so I decided to do second degree separately ^^
Everyone else got certified in Security Systems, but the professor teaching them thought he invented the Internet and I couldn't stand listening to him.
@Geobits for some reason, the c++ one does not win that much over NiceBot.rb, it seems that being more performent is more of a handicap towards the end-game O_o
@Geobits I found an issue with the timeout code... if a player starts outputting, it goes outside the timeout checking code, so it can run indefinitly. I sent you a pull request, although it has some issues on its own.
Yea, I was looking at that. I'll play around with it later, but it might be simpler to just check the time inside the reading loop in addition to the available loop. Whichever works better, I'll use.
otherwise I love this :) the interactions between bots are a quite interesting topic, I'm starting to think that there are some points in a game when a bot should not try to do as good as possible
it seems like some bots can cause some "dead-ends"... for the test which starts at 12476, I sometimes see them struggle at 3400, but the best I saw was around 2800
@m.buettner the koth rpg thing makes think of the Tower Of God manhwa, which features team games with specific positions (ex: fisherman=melee combat, lightbearer=centralize communication in the team, wave controller=restrict opponents movement, scouts=detect opponents without being seen...)
@SirDarius combining classes and interbot communication would make for a very complicated challenge, I suppose. it would be very interesting, but it might be too much effort on the side of the participants, such that there would only be very few participants in total. I think it might be possible to give this a try if the two concepts turn out to be successful independently. thanks for the link though, I'll have a read!
@m.buettner heh, ty :P I guess i start at the totally not copied from you 3D terrain generation and the js rendering backend, i guess i should do it on the centos box ;_;
btw I just thought of another potential KotH (which anyone may feel free to snatch away from me) that wouldn't require a lot of originality to make balanced and interesting: Risk!
I've used WebGL for some 2D stuff. It's very similar and also very convenient for prototyping stuff, because you don't have to worry about all the correct types and stuff. Other than that it's very similar, but you have to limit yourself with the more sophisticated features.
I have no idea how to even go from boolean[][][] world to a bunch of cubes on the screen. Is it something you officially "learn"? Do you have to do all the "perspective" math yourself?
It's still a bit tricky when you first start. Learning about cameras, frustrums, zbuffers, clipping, face culling, etc. There are quite a few areas where you can trip yourself up and have no clue why.
There are tons of good tutorials out there, though. Draw a cube first, and work your way up :)
I can really recommend this tutorial for learning opengl (so that's the more hands-on approach without any frameworks in between). it's quite well-written and addresses both how to use OpenGL and the underlying maths you should no to work comfortably with 3D graphics.