AI Competition

General Stuff about Armagetron, That doesn't belong anywhere else...
Post Reply
abrak.jamson
Posts: 2
Joined: Sun Sep 20, 2009 1:35 am

AI Competition

Post by abrak.jamson »

I've developed a simple competition to program Artificial Intelligence Light Cycle players. Basically you write a client in any language that sends instructions concerning how to move the bike to the server. Players compete by writing the best AI.

The graphics are very basic (more like Snake than Armagetron), but I'd like to implement Armegetron's graphics into my game. This would make it more interesting, and could lead to a new way to play Armagetron.

Do any devs know if this would be feasible, or is anyone interested in programming AI's?

https://sourceforge.net/projects/lightcycleai/
User avatar
kyle
Reverse Outside Corner Grinder
Posts: 1975
Joined: Thu Jun 08, 2006 3:33 pm
Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
Contact:

Re: AI Competition

Post by kyle »

we do have some better AI's in the game you may want to look at lp:~armagetronad-dev/armagetronad/trunk-armagetronad-fortress_ai

here is a topic relating to it

those may be a good start for looking out how to program the AI into the game (i am not 100% sure what yours does.

I'm a little interested in AI's but right now i don't have the time.
Image
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: AI Competition

Post by Lucifer »

I've got two ideas for you:

1. Make your server write the matches in the format of the debug recording. Then just watch it in the armagetron client.

2. Make your client libraries support armagetron's network protocol. Login to the server as spectators, but have the clients login as players, and watch them in real-time.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
abrak.jamson
Posts: 2
Joined: Sun Sep 20, 2009 1:35 am

Re: AI Competition

Post by abrak.jamson »

Thanks guys, both ideas are very interesting. For my purposes, I think creating a debug recording makes the most sense.

I took a look at a recording, but couldn't make sense of the game recording bit of it (though I expect the CONFIG lines don't need to change). Is there documentation on what exactly the T lines indicate? Looking at the source, I gather that the first number is the section, but I don't understand the next numbers. Also, the numbers on the INPUT lines are an enigma.

Is there documentation on the file, or some other place to look?
User avatar
pie goes moo
Round Winner
Posts: 306
Joined: Wed Aug 12, 2009 10:42 pm
Location: San Antonio, Texas, USA

Re: AI Competition

Post by pie goes moo »

This documentation might help.
Image
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: AI Competition

Post by Z-Man »

Debug recordings are very unlikely to be a feasible approach. For them to work, you'd first need to exactly replicate Arma's physics, and I don't see how that could be possible without copying the whole game code first.

The network protocol, now that could work. You may be able to replicate the server completely using your own game physics; to view the game going on, you'd just connect with an arma client. You don't need to care about too many of the network package types: Cycles and walls, obviously, and the game timer and the horrible gGame object (it's scary, but YOU would only need it to cycle through the various stages of between-round-states) should get you going. In LAN settings without packet loss, you pretty much can ignore everything the clients throw at you, apart from the login request, obviously. Oh, and you definitely should work with the protobuf based network protocol we have on the trunk. That's easier to get right, you can just copy our .proto files, and the wrapper data around the raw protobuf bytestream isn't too complicated.

Or, of course, you could just rip out our graphics code. Or write your own. It's really not that hard to write decent OpenGL rendering code if you don't care about top notch performance on all hardware ranges.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: AI Competition

Post by Lucifer »

Indeed, it may even be better to write POVRay files and then use mencoder to string them into a movie.

You should be able to get a basic rendering pretty easily, the rest is just tweaking the files themselves.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Your_mom
Match Winner
Posts: 653
Joined: Sun Jun 06, 2004 1:45 am

Re: AI Competition

Post by Your_mom »

OT - Sorry, but this post reminded me of something proposed a while ago, bots on rails. Was that idea abandoned?

http://forums3.armagetronad.net/viewtop ... 171#p68171
Post Reply