Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help with Client for Machine Learning

#1
I'm working on a project where I'm training a bot to play this game and I'm trying to make a version of the client that exposes the game state information and controls and let's me communicate with my training files in python. For that last part, I'll planning on trying to use SWIG, since that works for C.
That being said, I've been having a hard time understanding the code structure enough to get that done. Can someone point me in the direction of where the client and server communicate? 
I briefly looked into xrcon but the console commands that the server supports didn't seem enough to spoof a player and all that. It seems like what I want is to have the client console exposed, since there are commands to connect to the server, press buttons, and lookup environment information, etc. Is there an easy way to run a headless mode of the game with access to the console?
Any help would be appreciated, thanks!
Reply

#2
I like the enthusiasm here -- our bots can use some intelligence (in addition to perfect aiming) in strategy.

However, this sounds very difficult. If this is a dissertation/thesis/term project, then you probably want to evaluate the time feasibility. However, if this is a pet project, then go for it!

I don't have much answer for you, but here are some food for thought:

Sending out commands to console is not fast enough, especially with Python.

Perhaps you can study how demo files are recorded and parsed back, and see whether you can inject your own function there.

Are you training your machine to beat the current bots? I'm not sure our bots are deterministic. You may need to collect humongous amount of data to start. Let alone the complexity of the nature of the game -- I can't imagine how wide your feature set could be.

What's your cost function? Final total score? Survival? Damage caused? Damage taken? This gets tricky quickly:
  • For example, for survival, perhaps you just need to find a spot where the other bots won't see you, and stay there until the game ends. Does that count?
  • For scores, just make your bot a super aim bot. I believe our current bots don't have perfect aims.
  • Does your bot listen for the direction of footsteps (and other enemy sounds) and then shoot perfectly?
That said, I think there are many interesting smaller scoped problems, even without the complexity of enemies.  For example, could your machine look at a map, and figure out how to travel around in it, making use of jumpads, teleporters, etc.? If so, we can either automatically calculate waypoints, or even implement your AI model.

Best of luck!
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  How can I analyze demo file or CLIENT TO SERVER packets? vighill9 0 3,643 06-19-2024, 09:48 PM
Last Post: vighill9
Heart Paid work to help demo an integration into Xonotic stuart 9 7,329 02-04-2020, 09:23 AM
Last Post: stuart
  Xonotic Git Help Molnija 4 5,765 01-20-2019, 11:38 PM
Last Post: Molnija
  New QuakeC virtual machine Lyberta 5 7,645 07-14-2017, 04:01 PM
Last Post: poVoq
  Rcon client Sl@va 1 3,340 05-26-2015, 04:25 PM
Last Post: -z-
  Weapon models WIP help. Beagle 1 3,759 05-17-2015, 06:52 PM
Last Post: Beagle
  Getting Position of Other Players/Bots Client-Side ehrenbrav 7 9,360 05-10-2015, 12:42 PM
Last Post: ehrenbrav
  Learning QuakeC? phim 13 20,493 12-24-2013, 03:07 AM
Last Post: aa
Question Hello and Offering Coding/Testing Help But Having Probs darrell_l 1 3,386 11-07-2013, 01:50 PM
Last Post: Mepper
  Lightning Gun / Machine Gun thread _Subzero_ 56 61,408 08-14-2012, 06:49 AM
Last Post: Lee_Stricklin

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-