🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Requests for GDArena

Started by
66 comments, last by khawk 20 years, 10 months ago
quote: Original post by Khawk
quote: Original post by Infinisearch
1.Could you add a function to the interface to return the time left in the match?


I can consider that one, although each bot can do that internally. What is the reason?


What about if you later change it to not run in realtime? i.e., add a fixed frame rate and disable the rendering so you can simulate a 3 minute match in a few seconds.

Chess is played by three people. Two people play the game; the third provides moral support for the pawns. The object of the game is to kill your opponent by flinging captured pieces at his head. Since the only piece that can be killed is a pawn, the two armies agree to meet in a pawn-infested area (or even a pawn shop) and kill as many pawns as possible in the crossfire. If the game goes on for an hour, one player may legally attempt to gouge out the other player's eyes with his King.
Advertisement
Do we get told if we take more than 0.01s for our turn? What actually happens in this case?

Do we get distance to objects or is that not implemented (my compiler is on a different PC).
If there is a tree/rock between me and the enemy can we see each other?

[edited by - d000hg on August 4, 2003 4:46:30 AM]
quote: Original post by d000hg
Do we get told if we take more than 0.01s for our turn? What actually happens in this case?


When you specify "release" in the gdarena.ini, it lets you know when a bot has gone past its 0.01s limit.

quote:
Do we get distance to objects or is that not implemented (my compiler is on a different PC).


Yes, distance is one of the parameters returned from the GetObjectsInSight(...) function.

quote:
If there is a tree/rock between me and the enemy can we see each other?


No, if there is a direct line that interesects a tree or rock between you and your enemy, you cannot see the enemy.


Admin for GameDev.net.

Something that would be useful is a restart button, so that we don''t have to close and reopen the arena every time we want it to restart... and beyond that, an option to auto-restart at the end of the match would be helpful for testing our bots, because it lets us leave our computers while we let the bots fight each other over and over again.

And for something somewhat less useful, it would be fun if we had a method that told us if our opponent was currently taunting us and what they were saying, so that we could program our bots to respond...
I was thinking it would be nice to have either a feature in game that you could specify two bots to "play N matches", where N could be any number, or maybe zero to mean "keep playing forever (until the user quits). The alternative would be to log the results to a file, and have the Arena program quit after, say, 5 seconds after a match has ended. Then someone could write a program to run a whole bunch of matches and get the results of them. Could be useful for testing improvements to your bots (i.e. play 1000 matches while you sleep/work and see if changing TURN_FAST to TURN_SLOW makes a difference, etc.).
In a future release, it would be cool if we could specify a file for the arena to load object data from when creating the map. This way, we could set the map up for a particular situation and test how the bot handles it.

£§
£§
quote: Original post by Khawk

quote:
If there is a tree/rock between me and the enemy can we see each other?


No, if there is a direct line that interesects a tree or rock between you and your enemy, you cannot see the enemy.




So, the obstacle is treated as a single point to the line-of-sight testing? or is it treated as a radius? What about our bots? are they treated as points or circles (to the line-of-sight stuff)?I''m not quite clear on this...


A headache, ancillary; an hourglass auxiliary.

"something witty, blah, blah, blah"
--That One Witty Guy (remember? that one dude?)


------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
quote: Original post by drreagan
quote: Original post by Khawk

quote:
If there is a tree/rock between me and the enemy can we see each other?


No, if there is a direct line that interesects a tree or rock between you and your enemy, you cannot see the enemy.




So, the obstacle is treated as a single point to the line-of-sight testing? or is it treated as a radius? What about our bots? are they treated as points or circles (to the line-of-sight stuff)?I''m not quite clear on this...


A headache, ancillary; an hourglass auxiliary.

"something witty, blah, blah, blah"
--That One Witty Guy (remember? that one dude?)




The obstacle is treated as a radius... akin to the shadow generated if you were to shine a flashlight at the object. Tree radius'' are slightly larger than the trunk of the tree, and rock radius'' are approximately the size of the rock. I say that because there are times you would think the bot could not see an enemy hiding behind a tree, but in reality it can because the radius of the enemy is larger than the radius of the tree trunk.


Admin for GameDev.net.

quote: Original post by Russell
I was thinking it would be nice to have either a feature in game that you could specify two bots to "play N matches", where N could be any number, or maybe zero to mean "keep playing forever (until the user quits). The alternative would be to log the results to a file, and have the Arena program quit after, say, 5 seconds after a match has ended. Then someone could write a program to run a whole bunch of matches and get the results of them. Could be useful for testing improvements to your bots (i.e. play 1000 matches while you sleep/work and see if changing TURN_FAST to TURN_SLOW makes a difference, etc.).


How about having the arena run in a "silent" mode as mentioned a while back. This would be a windowless mode with the arena running in the background. The arena could then return a 32bit value that contains the time remaining (if any) and health of the two bots. An example to genereate the return value could be:

UINT32 ArenaReturn(UINT32 TimeRemain, BYTE Life1, BYTE Life2)
{
return (((TimeRemain & 0xFFFF) << 16) & (Life2 << 8) & Life1);
}
Another command line interface feature that would be good is a option to maximise on start up and/or goto a fullscreen mode. This could be done by adding something like -maximize or -fullscreen.

It just saves time when continually restarting the program after improvemts to my bot.

I would have thought this would be easy to implement, but if not no worries.

By the way great job you''ve done so far and a great competition idea Khawk!

-J

This topic is closed to new replies.

Advertisement