Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add flag for ai-controlled players #1390

Open
oy opened this issue Aug 30, 2015 · 43 comments

Comments

Projects
None yet
@oy
Copy link
Member

commented Aug 30, 2015

Add a flag for ai-controlled players (client, server) so you can filter them within the server browser (similar to spectators).

Updated: visual indication missing (in the server browser and or ingame)

Update: just country flags for bots left

@oy oy added this to the 0.7.0 milestone Aug 30, 2015

@pielover88888

This comment has been minimized.

Copy link

commented Aug 30, 2015

I think this would be good, as of 0.6 I've noticed when I want to play CTF, and nobody is on, it looks as if there are 4 players on that one or two bot servers. Would be nice if 0.7 didn't have that small UX issue.
I believe that by default it shouldn't filter that, just to let people discover the ai-controlled players.

@heinrich5991

This comment has been minimized.

Copy link
Contributor

commented Oct 18, 2015

Stitch626 told me that we could mimick UT3's display for bots: +/<max players (not including bots)>.

@heinrich5991

This comment has been minimized.

Copy link
Contributor

commented Oct 18, 2015

Screenshot

@oy

This comment has been minimized.

Copy link
Member Author

commented Oct 18, 2015

Yeah, seems like a good idea.

@Stitch626

This comment has been minimized.

Copy link

commented Oct 19, 2015

As little info, the value after + is the bot count ;)

@oy oy modified the milestones: 0.7.0, 0.7.1 Nov 21, 2018

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 21, 2018

Some special graphic for the scoreboard might be good as well - f.e. we have the deadtee for dead players in survival.

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Nov 22, 2018

@oy It could be a skin part (eyes, decoration...)

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 22, 2018

Yeah, so you also notice in while playing.
Like an antenna? :D

@android272

This comment has been minimized.

Copy link

commented Nov 22, 2018

There could be a bot_x skin like we do with ninjas.

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 22, 2018

Yeah could be a total skin or just a part - we're flexible there with the new skin system :)

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Nov 22, 2018

Yeah, so you also notice in while playing.

Ouch, not sure if that's a good idea to edit the actual in-game skin.

Some bot gametypes like to provide specific skins (like zombies or what not). This would kinda break the functionality.

Edit: well nevermind actually you can just override the bot_x skin parts :)

@LordSk

This comment has been minimized.

Copy link
Member

commented Nov 22, 2018

How is this going to work, exactly? Is this an opt-in feature, like signaling players that X client is a bot?

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 22, 2018

@LordSk
That's supposed for server sided bots. Indication for players that these are bots:

  • in the browser: be able to filter them, dunno if they should be displayed individually
  • ingame some indication in the scoreboard and/or for ingame skin?
@LordSk

This comment has been minimized.

Copy link
Member

commented Nov 22, 2018

Oh yeah I understood that part. I meant if I ever made said ai-controlled bots, how would clients know to identify them?

Edit: nevermind I didn't read the issue properly.

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 22, 2018

Would add a player flags https://github.com/teeworlds/teeworlds/blob/master/datasrc/network.py#L9 for that.
Dunno if there should be an opt-in feature for client bots which connect to a server? guess you were refering to these?

@android272

This comment has been minimized.

Copy link

commented Nov 22, 2018

Some bot gametypes like to provide specific skins (like zombies or what not). This would kinda break the functionality.

Well for game types that do this they could give their zombies a zombie_x skin but still have bots. But for other game types that just have normal bots they can use the bot_x for the bot skin.

Are skins downloadable? I think if a server has a map with assets you don't have you first download those assets before you can join the server right? is this done with skins as well?

@oy

This comment has been minimized.

Copy link
Member Author

commented Nov 22, 2018

No skins aren't downloadable.

oy added a commit that referenced this issue Nov 25, 2018

@oy oy added the graphics label Nov 25, 2018

@oy oy modified the milestones: 0.7.1, 0.7.2 Nov 25, 2018

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Dec 1, 2018

[quakenet] <Oy> some bot flag might be good for the server browser so you can identify them, when they aren't filtered?
[quakenet] <Dune> yeah
[quakenet] <Dune> probably should replace the country flag
[quakenet] <Dune> (the flag makes no sense for bots)
[quakenet] <Oy> yeah

Anyone on it? :)

@android272

This comment has been minimized.

Copy link

commented Dec 1, 2018

Hay Oy, why are skins not downloadable? Would make a lot of sense for game types with special skins.

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Dec 1, 2018

I see one reason: penis
Second reason: invisible/hard to aim tees

@Stitch626

This comment has been minimized.

Copy link

commented Dec 1, 2018

Nice reasons, Dune.

@android272

This comment has been minimized.

Copy link

commented Dec 4, 2018

I see one reason: penis
Second reason: invisible/hard to aim tees

But if you are downloading it from the server this may not be a problem. I don't know why a server maintainer would put an invisible skin on their server. I guess someone could add a penis skin.

also as it stands there is nothing stopping someone from making a map called ctf1 replacing the trees from grass_dodads with penis' and naming it grass_dodads2 so that everyone has to download it.

@Stitch626

This comment has been minimized.

Copy link

commented Dec 4, 2018

There is a mapchecker which checks for the mapcrc (of vanilla ones) if I remember allright.

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Dec 4, 2018

@android272 then you would like a skin downloader, not from other clients, but from the server? I mean, sure that could be done, but it sounds like a bunch of resources to download for a limited use, since you still can't see others' skins, doesn't it?

Regarding the map penis issue: well, yeah. Like @Stitch626 says, if you play on pure maps only, you are protected, though.

@android272

This comment has been minimized.

Copy link

commented Dec 5, 2018

Yes, that is what I would like. Download from the server.

What do you mean you can't see others skins? So if I download a database of skins from some sight when I play with a player that uses a skin in that database I still won't see them using it? What is the point of having a custom skin if nobody can see you using it?

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Dec 5, 2018

@android272 Yeah, you would, skins get matched by name.

But that means, if you want custom skins from the server, that players would have to select custom skins on each server? Because there would be no reason for the server to have their skin.

@oy oy modified the milestones: 0.7.2, 0.7.3 Dec 24, 2018

@Skaymouse

This comment has been minimized.

Copy link

commented Jan 5, 2019

maybe we could add bot / zombie / alien parts to the vanilla client (?) also my idea to make a flag is a light gray flag with some futuristic logo in it, or a logo related to AI, like a robotic brain for example

@Zatline

This comment has been minimized.

Copy link
Member

commented Mar 10, 2019

@oy Dune asked me to post skin parts here ..
please notice this parts are 32 px heiger than regular parts.
test_bot
^ this is to help align it to account for the 32 px height difference,
red stroke should perfectly cover the tees inner outline
x_bot
^ this one is to be used once perfectly aligned

ec8cc1fee8f71c6eeaae5fe8a47c059b
^ I imagined bots to have a metalic look with randomized tattoos and eye/antenna color
colors used are #f9f9f9ff (white) and #b5b5b5ff (grey) for body/tattoos and vise versa

file instructions:
08d6e407f44bb466c9b8ee4db77d9706

the graphic consists of 3 layer types

  • a colorable layer (above the skin)
  • a no color layer (above the skin)
  • a backround layer (behind the skin)

the idea is to additionally lay the ground for overall cosmetics

@oy

This comment has been minimized.

Copy link
Member Author

commented Mar 11, 2019

@Zatline looks really good :)
The colour parts might be too small for team based gametypes, to easily distiguish the team?

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Mar 27, 2019

This is what it looks like: https://gfycat.com/UnrulyPlayfulDogwoodtwigborer.gif

nevermind, that's not where the top part is supposed to go

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Mar 28, 2019

An attempt:
image

The right thing looks a bit off to me.

@Zatline

This comment has been minimized.

Copy link
Member

commented Mar 28, 2019

use the graphic with the red circle and align that to the tees body until red covers all of the blacks.

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Mar 28, 2019

@Zatline I don't think I can align much in the code. I am simply printing this image:
image

on top of the tree. Maybe the gfx need to be adjusted somehow (to take in account for the outline, possibly)?

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Apr 4, 2019

I wonder if the colors should be randomly assigned to each bot and stored in the client info, or depend on the bot ID.

image

@Sonix-

This comment has been minimized.

Copy link
Member

commented Apr 4, 2019

I am simply printing this image on top of the tree.

What about printing the image underneath the body? If possible

@AssassinTee

This comment has been minimized.

Copy link
Contributor

commented Apr 5, 2019

I wonder if the colors should be randomly assigned to each bot and stored in the client info, or depend on the bot ID.

image

From experience i can tell, that if you want distinguishable colors, you should simply iterate over the HUE. But I think this shouldn't be needed: Blue for Team Blue, red for Team Red and simply white or gray for DM should do the job.

I would still store it in the client info (7th body part?), because mod-programmer would request this feature anyways and you could better distinguish shop-keeper from quest-npc (or similar).

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Apr 5, 2019

I am simply printing this image on top of the tree.

What about printing the image underneath the body? If possible

@Sonix- Tried to make a gif:
Webp net-gifmaker (2)

Image on top:
screenshot_2019-04-05_12-58-39

Image underneath:
screenshot_2019-04-05_12-58-56

From experience i can tell, that if you want distinguishable colors, you should simply iterate over the HUE. But I think this shouldn't be needed: Blue for Team Blue, red for Team Red and simply white or gray for DM should do the job.

To clarify, I'm going with Zatline's colors:

				static const unsigned char aBotColors[][3] = {
					{0xff,0x00,0x00},
					{0xff,0x66,0x00},
					{0x4d,0x9f,0x45},
					{0xd5,0x9e,0x29},
					{0x9f,0xd3,0xa9},
					{0xbd,0xd8,0x5e},
					{0xc0,0x7f,0x94},
					{0xc3,0xa2,0x67},
					{0xf8,0xa8,0x3b},
					{0xcc,0xe2,0xbf},
					{0xe6,0xb4,0x98},
					{0x74,0xc7,0xa3},
				};

The question was only about whether it should be randomly generated or always be the same for a given client ID. I don't think it matters too much though.

@oy

This comment has been minimized.

Copy link
Member Author

commented Apr 5, 2019

Randomly would probably be the best.

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Apr 5, 2019

Randomly would probably be the best.

Alright, so this implies adding a BotColor field in the client struct.

@Sonix-

This comment has been minimized.

Copy link
Member

commented Apr 6, 2019

Looks better to me placed underneath. 👍

@Zatline

This comment has been minimized.

Copy link
Member

commented Apr 16, 2019

@Dune-jr what about the metallic body?

by the way, the eye colors I picked are all values from the classic standard skins,
appreciate you adding this detail in code! 👍

@Dune-jr

This comment has been minimized.

Copy link
Member

commented Apr 16, 2019

@Zatline I'm afraid people would be unhappy about being unable to set bots to a particular skin or color, or have any sort of customizable attribute.

I don't know of a good solution, unfortunately. Should we force this metallic color palette? Modders may be reluctant to set it at all if we do that.

@oy

This comment has been minimized.

Copy link
Member Author

commented Apr 16, 2019

The difference might be too small if all bots use that same metallic color - especially in teamplay.

@oy oy modified the milestones: 0.7.3, 0.7.4 Apr 19, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.