Programmer-game concept

Started by
10 comments, last by iequalshane 17 years, 6 months ago
Hello! I just got this idea of a game targeted to (mostly AI) programmers. Here's how it'd work : A kind of soccer game is created with the game logic, graphics, physics and sound and all but no AI. The game itself must be very simple : Two teams of a certain number of players (let's say 5) plus a goaler, a ball and that's it. I was thinking about a top-down viewpoint and the players as simple circles but it could be more elaborated. The players can only move in every direction and if they touch the ball, the ball gets kicked at a constant velocity (the same for every kick). Now for the fun part : A scripting system would be implemented to control the players. To play, two players (well... programmers) must script an artificial intelligence for the goaler and each of the players (or only one for the goaler and one for the players). Once this is done, the game starts. Noone can control the game, you just watch the AI-driven characters playing the simplified soccer game and trying to score. Whoever made the best AI and makes the biggest amount of scores in a t8ime limit wins. I'd like to have comments or suggestions about this concept, I find it very interesting, what about you?
Advertisement
It certainly sounds interesting, but with such a simple type of game it might be a bit limiting. Honestly you'd have to make the game much more complex in order to enable a deep scripting system. It kind of reminds me of FFXII's gambit system in a way. If it's just a simple kick a ball around and into the goal though there's really no strategy involved and mostly relies on reflexes.
Although that sounds interesting, AI programming isn't nearly as easy as people make it out to be (especially for a dynamic game such as soccer), and since the player has no particular control during the game, or of any idea how the game will react in certain ways, it would be hard to be able to devellop a consistent strategy, rendering the game isomorphic to the flipping of a coin...
define tactics "Liverpool":
PASS <triangles> around defence
MAKE <defensive errors>
FINISH (4th) <again>
LOL <evertonians>
SHOULD-HAVE-BOUGHT <andy-johnson>
END <title-challenge> REPEAT

[/bias]
"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
Take a look at Carnage Heart. My very first experience with programming. It uses a circuit-board like layout, with customizable and plottable chips having a true/false pathway, and the whole thing loops. Even though the game did poorly as far as sales go, I thought it was a beautiful thing, and fell in love with it easily. This was a time before I even turned on my first PC, so it's not like I was super tech-aware. Although perhaps a gaming freak.

I think sports are a great way to get this working. But robots are also nice, because you can allow your players to 'buy' AI types instead of writing them. Combined with purchasing hardware, they have a game, even if they can't get around the complexity of the programming.
It's a good idea, but maybe a bit too niche (niche isn't that bad for games, but the amount of work required for decent AI scripting is pretty hard; you'd have to make it very easy and intuitive to do).

Plus it sounds pretty much exactly like the Robocup Simulation League. Have a look at that for some ideas.
Have a look at this game for an interesting method of scripting
http://roboships.sourceforge.net/

The idea is, in a way similar to yours, except that you are attempting to destroy the other ships (not score goals - but you still have to script the AI).

There is also a robotics competition where the entrants must program a robot to play soccer, so you might even be able to use that to help promote tyour version (and visa-versa).
The biggest problem I see is that it's pretty difficult to code a sports AI. In order to approach the skill of a human, each player will have to track tons of stuff to make good choices. Maybe something like tennis would be easier to make.

Question: how would coding each unit to act independently differ from coding a singe "entity" with multiple "parts"? If one proves easier than the other, that would make construction slightly less difficult.
Quote:In order to approach the skill of a human, each player will have to track tons of stuff to make good choices.

Frmom what I understood from the orridinal post, the AIs would not be playing against humans, but against other AIs. It is the one who programs the best AI wins.

They will, of course, still have to track a lot and make many decisions, but as they are not going against humans, it will make it a little easier.
I don't think a simplified version of basketball, hockey, or soccer would be too complicated. Football has a lot of complicated positions, though. So that would require multiple types of AI on each team. No matter how you look at it, to play a sport, you normally need at least an offense and a defense.

Here's a simple AI for offense. There may be some holes in it.
If BallIsHeldByOwnteam{   VAR ballcarrier = GetBotWithBall()   If ballcarrier == 0   {       seek Ball.Position       end AI loop   }   If ballcarrier == Me   {       seek Goal       end AI loop   }   If Me.Position - ballcarrier.Position > 50   {       seek ballcarrier.Position       end AI loop   }   VAR opponent = FindEnemyInRadiusOfPosition( ballcarrier.Position, 50 )   If opponent == 0   {       seek ballcarrier.Position       end AI loop   }   If opponent.Position > GRABRADIUS   {      seek opponent.Position      end AI loop   }   grab opponent;   end AI loop;}

I'm sure the language would be even more simplified for the game, but you can see how easy this could become even for non-programmers. Or I think so. Things like FindEnemyInRadiusOfPosition and grab could be expanded to be made more customizable. Or alternatives could be made for that reason, still allowing simplified actions as well.

This topic is closed to new replies.

Advertisement