@Sparr how did ToD deal with players that joined midgame?
aka, the fundamental problem is that player A would be growing his empire for X weeks and then when player B joins, either he is stomped by player A, or he gets bonuses to compensate (which are notoriously hard to balance)
most servers only support a limited number of languages, right?
games like Atlantis / Eressea / Lorenai / Overlord are open ended and players join mid-game with some frequency. a core part of those games is that the world grows at the edges over time, and traversing the whole map takes a prohibitive amount of time.
a player making all possible speed towards the edge of the map will barely keep abreast of new players joining, and that unit is unlikely to ever return to that player's original territory
I think the last time I saw a world map for eressea it would take the fastest ships (fantasy setting) something like 2 years of real time to cross the map
investing that much effort into getting to the edge of the map would be expensive and disastrous for whatever other plans you might have
very vague recollection: the fastest ships moved 7 hexes per turn. the map was a few hundred hexes wide and tall, and turns ran once a week. the ocean path from side to side was not at all straight.
at the nadir of the time I was playing, a handful of players were joining every turn/week.
most players didn't play long and gave up, so there were small abandoned towns and villages and such across most of the world to be found
it was likely you would play for a month or two before encountering another player for the first time
that was eressea. lorenai was different. in lorenai you could choose to start in the most populated part of the world, or in a less populated city. in overlord you got the choice of city or village or wilderness, so you might see a dozen other players on your first turn, or a few, or go a dozen turns before finding anyone.
overlord and lorenai had smaller maps than eressea. again vaguely recalling, but I think they might have been closer to 100x100 or even 50x50, but also with slower travel
all of this was via email
I think that if someone made a web/mobile game of this sort, it might be just barely financially viable today.
I'd go back to paying a dollar a week to play a modern version of the old games I loved
I don't want the ideal strategy to be "taking everything one turn at a time" but also not "fill up the entire program with random movement, and sit back and watch"
you'd probably limit it to N entries per person, to avoid one person continually adding new versions of their bots and filling up the list
Food Chain's "solution" to that problem was to have a relatively small number of possible entrants and not allowing duplicates of a certain subset of entry features. The actual game was to be the first person to come up with the best combination of features for the current game state
(and the game state mostly asymptotically approached a particular equilibrium between certain optimal entries)
I'd be interested to see the despawn/respawn approach applied to codebots 3 (or 2?)
one arena with 5000 bots in it, every hundred(?) ticks you despawn 1000 of the bots at random and replace them with an equal number of copies of every entrant. keep running until the populations stabilize, and that's the "end" condition of the contest.
or it could just keep going, after stability is reached new entrants could be contributed.
Core Wars KOTH simply ran a 1v1 match between a new entry and every entry already on the top 100, and then put the new bot in the spot for its score and kicked the #100 bot off
This is an adaption of Core War, a programming KOTH dating back to the 20th century. To be more specific, it is using an incredibly simplified instruction set primarily based off of the original proposal.
Background
In Core War, there are two programs battling for control over the computer. Th...
Java noob question: I have a game map implemented as a 2D array. There can be either empty space, a robot, or a crystal in each spot (no overlap allowed). What's the proper way of organizing my code? Make an interface/superclass to hold crystals and robots? But... that feels hacky, because crystals don't store information (they simply exist).
@PhiNotPi I don't know Java, but here's an idea: do an array of ints, where 0 is empty, 1 is crystal, and all other spots are pointers/id numbers of bots.
I have an idea for dealing with a question you badly want to be answered, which no one will answer, even after you've offered a large bounty: cash.
Users can offer cash, and whoever has the accepted answer can be paid, possibly via PayPal.
Does this sound like a good idea?
@PhiNotPi Have a Location object, which exists at a specific location. Also, you should use a Hashmap instead of a 2D array. it still has O(1) read access, is more space efficient, and allows for easy expansion of the world
then, each location has a boolean that indicates whether it has a crystal or not
Multiple markers at this line
- The method map(Function<? super List<Player>,? extends R>) in the type
Stream<List<Player>> is not applicable for the arguments (GameManager)
- Syntax error on tokens, delete these tokens
I have a project that I built for jdk 7, but I want to expand its compatibility for jdk 6 users as well. I have set the compiler compilance level to 1.6, but the project compiles normally, and fails running on a 1.6 jre due to the fact that the method revalidate was not added to java until java 7...
If you wait a day, I can ask him tomorrow if he'll accept Visa, MC, or maybe even bitcoins (who knows?). He's in bed now though, so it'll have to wait.
If you don't know already, a quaternion is basically a 4-part number. For the purposes of this challenge, it has a real component and three imaginary components. The imaginary components are represented by the suffix i, j, k. For example, 1-2i+3j-4k is a quaternion with 1 being the real component...
So, that said, you need a GameManager. A game manager is basically the "meta" for a game. It lets a tournament know how many players a game supports, and how to create a game
So, let's say that I want to implement as much of my KOTH as possible with this controller...
So, I'm making a new class with a main method, and the first thing I should do is to make a "tournament"? Let's say that I decide to do a MAM tournament (since this will be a everyone-at-once game).
It looks like I need to make a List<Player> and a Function<List<Player>, Game> first.