What Can We Do

The original, free Ace of Spades game powered by the Voxlap engine. Known as “Classic,” 0.75, 0.76, and all 0.x versions. Created by Ben Aksoy.
152 posts Page 9 of 11
Marisa Kirisame
Deuced Up
Posts: 155
Joined: Sat Sep 21, 2013 10:52 pm


OK, you might have one of the few laptops still ticking with a worse GPU in it than a GMA 3150. If you've got a raspi, see if you can get the experimental OpenGL driver working. It'll probably be faster, even though VideoCoreIV has fillrate issues... but that's not a problem as you can actually set the resolution using xrandr.
longbyte1 wrote:
Dynamic pathfinding - rebuild node graph or a section of it only when a critical path between two nodes has been blocked due to changes in map, or a more optimal path is found between two nodes that would suggest the creation of an extra node.
The algorithm you might want to use is called D*.
longbyte1 wrote:
Identifying structures - AI has no humanity and couldn't tell between a statue and a giant mountain except by their height gradient (slope). They also don't know what the difference is between ally bunkers and big half-made, half-griefed buildings (because by definition they are essentially the same thing).
That'll just make things more interesting. Watch as the AI completely gives literally no fucks about your intentions and starts making highly optimised structures atop your structures.

It would be a good idea to allow players to provide waypointing hints to the AI. The added bonus of such an approach is that your team can also see the waypoint. The downside is people will use it to grief by proxy. But hey, that's why we have votekick. And admins, because votekick will always fuck up at times.
longbyte1 wrote:
Flexible roles - sometimes bots die and the mission must continue with a smaller squad. In AoS, there were no classes, only changes of weapon. Thus the AI as a collective could designate a place to construct, and bots could assist each other, defending each other based on health, ammo, and number of blocks left.
This is where things get really interesting. Here's my proposal:

Bots have a special "strategy" text field that indicates what the hell the bots are actually doing. This is to inform the players what the hell the bots actually want. Bots could also place markers and paths on the map display and in world space so you know what their strategies are.

If this information is good enough, the bots could communicate entirely through this. With that said, it would also make sense to have human players utilise this. This has two advantages. Firstly, human players can use this to communicate with bots. And secondly, it can break through the language barriers that plague AoS 0.x. (They don't plague it so much in 1.x.)
longbyte1 wrote:
Finding good places to build - this is a tough problem that I don't know how to solve, because it requires analysis of the prefab to be built (purpose, resource requirements, and shape?), as well as a survey of the terrain's feasibility (how much digging is required?) and the distance between the building and the front lines (what is gained from placing it at that location?).
You could estimate how much cover you have in a place, how far away it is from other things... not sure what else off the top of my head but you can think up a few factors.
longbyte1 wrote:
I would start out by placing metadata ("botdata") manually on the map, including default pathfinding nodes, suggested locations for building prefabs, and ally/enemy zones. Later a tool could be developed to do all this for you using algorithms more advanced than I'll ever know in 5 years.
...a good excuse to add in a map marker/waypoint/path system!
longbyte1 wrote:
Priorities/weights - bots have individual objectives assigned, but sometimes levels of concern such as ammo, number alive in "squad," health, and even the status of the game objective (like intel) can cause a recalculation of objective if they seem too important that they hinder the ability to complete the current objective. Thus each objective can be defined with specific prerequisites which must be met in order to continue. I would not implement an "after X completed, go back to previous/next objective" because it would lead to a stack-based objective system spiel that would make everything so complicated and convoluted LeCom would start crying 50k lines into the code.
Code: Select all
union objective {
	enum objective_type {
		OBJECTIVE_NONE = 0,
		
		...
		
		OBJECTIVE_COUNT
	};
} objective;

#define OBJECTIVE_MAX 4096
objective *objective_list[OBJECTIVE_MAX];
int objective_sp = 0;

void objective_push(objective *ob)
{
	assert(objective_sp < OBJECTIVE_MAX);
	objective_list[objective_sp++] = ob;
}

objective *objective_pop(void)
{
	assert(objective_sp > 0);
	return objective_list[--objective_sp];
}
Was that hard? It didn't feel hard.
longbyte1 wrote:
Human-AI interaction - humans are strange and misunderstood to computers, so no
Well you have to write the code to tell the computer what to do in the first place so using a common communication method which is both computer-friendly AND human-friendly (as I vaguely proposed earlier) is not outside the scope of what is reasonable.
longbyte1 wrote:
Tunable algorithms - behavior of AI should be based on certain factors: risk (0 -> defense/turtling, 1 -> offense and high aggression with no regard for factors that may endanger the completion an objective), profile (0 -> covert and always aiming to be hidden from enemy sight, which translates into longer paths; 1 -> always barging into and through the front lines with little need for cover, which translates into the shortest path possible), accuracy (0 -> absolute idiots, 1 -> aimbot), and alteration (0 -> no changes in terrain whatsoever; if no path can be found to enemy or objective, just stick around; 1 -> dig through mountains, chop down all trees, grief everything, build giant towers; foolish but can be highly destructive).
Yay, difficulty!
longbyte1 wrote:
Formations for surprise attacks, rifle volleys, dodging grenades, and such.
This one will be fun. You could consider using boids as a basis for this.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


Woohoo Vagrant finally decided to work. Now I can actually start on a master server.
Icarus North
Green Master Race
Green Master Race
Posts: 578
Joined: Sat Aug 30, 2014 11:16 pm


Marisa Kirisame wrote:
Code: Select all
union objective {
	enum objective_type {
		OBJECTIVE_NONE = 0,
		
		...
		
		OBJECTIVE_COUNT
	};
} objective;

#define OBJECTIVE_MAX 4096
objective *objective_list[OBJECTIVE_MAX];
int objective_sp = 0;

void objective_push(objective *ob)
{
	assert(objective_sp < OBJECTIVE_MAX);
	objective_list[objective_sp++] = ob;
}

objective *objective_pop(void)
{
	assert(objective_sp > 0);
	return objective_list[--objective_sp];
}
Was that hard? It didn't feel hard.
Difficulty is relative. (: Some are more tolerant to challenges than others, which changes their perspective on a situation
LeCom
Post Demon
Post Demon
Posts: 866
Joined: Sat May 24, 2014 8:07 am


I see you're going for the complex and hardcoded AI type. My plan is to write an AI that uses machine learning. The disadvantage that an AI would need to "learn" a certain map or gamemode can be fixed by caching AI data for that and loading it next time that map or game mode is loaded. Either way, I'm going to write a game objective API so that bots will know what to do. The pathfinder itself could actually be based on machine learning, but tbh I'd prefer a proper one (and I suck at writing those)
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


I'll cry (from laughter, obv...) if AI learns to crouch spam or trickshoot :'D
bloodfox
Post Demon
Post Demon
Posts: 2206
Joined: Mon Oct 21, 2013 4:32 pm


I would scream with agony :(
10se1ucgo
3 Years of Ace of Spades
3 Years of Ace of Spades
Posts: 198
Joined: Sun Dec 16, 2012 4:29 pm


some moderator deleted my post. im incredibly offended please check your privilege.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


10se1ucgo wrote:
some moderator deleted my post
Good. They are doing their job.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


Hmm, it seems that there is a significant interested in making decent AI. I will consider making a more formal writeup of the design.
10se1ucgo
3 Years of Ace of Spades
3 Years of Ace of Spades
Posts: 198
Joined: Sun Dec 16, 2012 4:29 pm


longbyte1 wrote:
10se1ucgo wrote:
some moderator deleted my post
Good. They are doing their job.
wow you're really edgy. shit dude

nice double post
Icarus North
Green Master Race
Green Master Race
Posts: 578
Joined: Sat Aug 30, 2014 11:16 pm


get owned deuce
10se1ucgo
3 Years of Ace of Spades
3 Years of Ace of Spades
Posts: 198
Joined: Sun Dec 16, 2012 4:29 pm


fukken nerds amirite

"longbyte" wow so funny and original

ye well my name is gonna be "GNU/unsigned long long int". fuck you all
bloodfox
Post Demon
Post Demon
Posts: 2206
Joined: Mon Oct 21, 2013 4:32 pm


Image
Icarus North
Green Master Race
Green Master Race
Posts: 578
Joined: Sat Aug 30, 2014 11:16 pm


So there's this new thing called Mantle that AMD is helping with/helping be compatible with or something.

https://en.wikipedia.org/wiki/Mantle_(API)
http://www.amd.com/mantle

It calls itself low-level, do you think it can be ran on older machines?
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


No, Mantle was developed in 2013. Might as well use Vulkan while you're at it.
152 posts Page 9 of 11
Return to “Ace of Spades 0.x Discussion”

Who is online

Users browsing this forum: No registered users and 4 guests