Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.77 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.04 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1366
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +body: """
    Thank you! My main issue is that while I’m familiar with all those algorithms, its usually pretty simple to find how do they work and how to use them for very basic stuff, but its almost impossible to research into actual best practices in how and when to use them, once you are working on moderately complex problem, especially stuff like formations, squad cooperation and more complex behavior (where I.e behavior trees start to have issues once you realize you have tons of interrupt events at almost every node, defeating the point of behavior trees - which can happen if you’re using them wrong, but no one usually talks about it at that level).\n
    \n
    And I’m also dealing with issue that isn’t really mentioned too much, and that is scale. Things like GOAP would probably be infeasible to scale at hundreds of units on the screen, which require and entirely different and way less talked-about algorithms.\n
    \n
    I’ve eventually found what I needed, but I did have to resort to reading through various papers published on the subject, because just googling “efficient squad based AI behavior algorithm” will unfortunately not get you far.\n
    \n
    But its possible that I’m just being too harsh, and that the search results were always the same level of depth - only my experience has grown over the years, and such basic solutions are no longer sufficient for my projects, and it makes sense that no-one really has a reason to write blog posts of such depth - you just publish papers and give talks about it.\n
    \n
    Aside from the AI related keywords. I’m still salty about what the buzzword did to my search results.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705942337 {#1605
    date: 2024-01-22 17:52:17.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@Agent641@lemmy.world"
    "@regbin_@lemmy.world"
    "@UraniumBlazer@lemm.ee"
    "@Mikina@programming.dev"
    "@blotz@lemmy.world"
    "@grenndel@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2355 …}
  +nested: Doctrine\ORM\PersistentCollection {#2167 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#2440 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 331854
  -bodyTs: "'actual':42 'ai':190,271 'algorithm':15,161,192 'almost':37,88 'also':119 'alway':215 'asid':268 'base':189 'basic':33,231 'behavior':69,72,95,191 'best':43 'blog':254 'buzzword':281 'complex':58,68 'cooper':65 'deal':120 'defeat':91 'depth':220,258 'differ':154 'effici':187 'entir':153 'especi':60 'event':86 'eventu':164 'everi':89 'experi':223 'familiar':11 'far':198 'find':21 'format':63 'found':165 'get':196 'give':264 'goap':136 'googl':186 'grown':225 'happen':99 'harsh':208 'hundr':144 'i.e':71 'imposs':38 'infeas':140 'interrupt':85 'isn':124 'issu':5,77,122 'keyword':273 'less':157 'level':115,218 'like':62,135 'longer':235 'm':10,118,204,275 'main':4 'make':242 'mention':127 'moder':57 'much':129 'need':168 'no-on':245 'node':90 'one':108,247 'paper':179,262 'point':93 'possibl':201 'post':255 'practic':44 'pretti':18 'probabl':138 'problem':59 'project':239 'publish':180,261 're':102 'read':176 'realiz':80 'realli':126,248 'reason':251 'relat':272 'requir':151 'research':40 'resort':174 'result':213,286 'salti':277 'scale':133,142 'screen':149 'search':212,285 'sens':243 'simpl':19 'solut':232 'squad':64,188 'start':74 'still':276 'stuff':34,61 'subject':183 'suffici':236 'talk':110,159,265 'talked-about':158 'thank':1 'thing':134 'ton':83 'tree':73,96 'unfortun':194 'unit':146 'use':29,50,103 'usual':17,109 'various':178 've':163 'way':156 'work':25,55 'would':137 'write':253 'wrong':105 'year':228"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6714674"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705942337 {#1945
    date: 2024-01-22 17:52:17.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1366
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +body: """
    Thank you! My main issue is that while I’m familiar with all those algorithms, its usually pretty simple to find how do they work and how to use them for very basic stuff, but its almost impossible to research into actual best practices in how and when to use them, once you are working on moderately complex problem, especially stuff like formations, squad cooperation and more complex behavior (where I.e behavior trees start to have issues once you realize you have tons of interrupt events at almost every node, defeating the point of behavior trees - which can happen if you’re using them wrong, but no one usually talks about it at that level).\n
    \n
    And I’m also dealing with issue that isn’t really mentioned too much, and that is scale. Things like GOAP would probably be infeasible to scale at hundreds of units on the screen, which require and entirely different and way less talked-about algorithms.\n
    \n
    I’ve eventually found what I needed, but I did have to resort to reading through various papers published on the subject, because just googling “efficient squad based AI behavior algorithm” will unfortunately not get you far.\n
    \n
    But its possible that I’m just being too harsh, and that the search results were always the same level of depth - only my experience has grown over the years, and such basic solutions are no longer sufficient for my projects, and it makes sense that no-one really has a reason to write blog posts of such depth - you just publish papers and give talks about it.\n
    \n
    Aside from the AI related keywords. I’m still salty about what the buzzword did to my search results.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705942337 {#1605
    date: 2024-01-22 17:52:17.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@Agent641@lemmy.world"
    "@regbin_@lemmy.world"
    "@UraniumBlazer@lemm.ee"
    "@Mikina@programming.dev"
    "@blotz@lemmy.world"
    "@grenndel@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2355 …}
  +nested: Doctrine\ORM\PersistentCollection {#2167 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#2440 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 331854
  -bodyTs: "'actual':42 'ai':190,271 'algorithm':15,161,192 'almost':37,88 'also':119 'alway':215 'asid':268 'base':189 'basic':33,231 'behavior':69,72,95,191 'best':43 'blog':254 'buzzword':281 'complex':58,68 'cooper':65 'deal':120 'defeat':91 'depth':220,258 'differ':154 'effici':187 'entir':153 'especi':60 'event':86 'eventu':164 'everi':89 'experi':223 'familiar':11 'far':198 'find':21 'format':63 'found':165 'get':196 'give':264 'goap':136 'googl':186 'grown':225 'happen':99 'harsh':208 'hundr':144 'i.e':71 'imposs':38 'infeas':140 'interrupt':85 'isn':124 'issu':5,77,122 'keyword':273 'less':157 'level':115,218 'like':62,135 'longer':235 'm':10,118,204,275 'main':4 'make':242 'mention':127 'moder':57 'much':129 'need':168 'no-on':245 'node':90 'one':108,247 'paper':179,262 'point':93 'possibl':201 'post':255 'practic':44 'pretti':18 'probabl':138 'problem':59 'project':239 'publish':180,261 're':102 'read':176 'realiz':80 'realli':126,248 'reason':251 'relat':272 'requir':151 'research':40 'resort':174 'result':213,286 'salti':277 'scale':133,142 'screen':149 'search':212,285 'sens':243 'simpl':19 'solut':232 'squad':64,188 'start':74 'still':276 'stuff':34,61 'subject':183 'suffici':236 'talk':110,159,265 'talked-about':158 'thank':1 'thing':134 'ton':83 'tree':73,96 'unfortun':194 'unit':146 'use':29,50,103 'usual':17,109 'various':178 've':163 'way':156 'work':25,55 'would':137 'write':253 'wrong':105 'year':228"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6714674"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705942337 {#1945
    date: 2024-01-22 17:52:17.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1366
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +body: """
    Thank you! My main issue is that while I’m familiar with all those algorithms, its usually pretty simple to find how do they work and how to use them for very basic stuff, but its almost impossible to research into actual best practices in how and when to use them, once you are working on moderately complex problem, especially stuff like formations, squad cooperation and more complex behavior (where I.e behavior trees start to have issues once you realize you have tons of interrupt events at almost every node, defeating the point of behavior trees - which can happen if you’re using them wrong, but no one usually talks about it at that level).\n
    \n
    And I’m also dealing with issue that isn’t really mentioned too much, and that is scale. Things like GOAP would probably be infeasible to scale at hundreds of units on the screen, which require and entirely different and way less talked-about algorithms.\n
    \n
    I’ve eventually found what I needed, but I did have to resort to reading through various papers published on the subject, because just googling “efficient squad based AI behavior algorithm” will unfortunately not get you far.\n
    \n
    But its possible that I’m just being too harsh, and that the search results were always the same level of depth - only my experience has grown over the years, and such basic solutions are no longer sufficient for my projects, and it makes sense that no-one really has a reason to write blog posts of such depth - you just publish papers and give talks about it.\n
    \n
    Aside from the AI related keywords. I’m still salty about what the buzzword did to my search results.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705942337 {#1605
    date: 2024-01-22 17:52:17.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@Agent641@lemmy.world"
    "@regbin_@lemmy.world"
    "@UraniumBlazer@lemm.ee"
    "@Mikina@programming.dev"
    "@blotz@lemmy.world"
    "@grenndel@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2355 …}
  +nested: Doctrine\ORM\PersistentCollection {#2167 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#2440 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 331854
  -bodyTs: "'actual':42 'ai':190,271 'algorithm':15,161,192 'almost':37,88 'also':119 'alway':215 'asid':268 'base':189 'basic':33,231 'behavior':69,72,95,191 'best':43 'blog':254 'buzzword':281 'complex':58,68 'cooper':65 'deal':120 'defeat':91 'depth':220,258 'differ':154 'effici':187 'entir':153 'especi':60 'event':86 'eventu':164 'everi':89 'experi':223 'familiar':11 'far':198 'find':21 'format':63 'found':165 'get':196 'give':264 'goap':136 'googl':186 'grown':225 'happen':99 'harsh':208 'hundr':144 'i.e':71 'imposs':38 'infeas':140 'interrupt':85 'isn':124 'issu':5,77,122 'keyword':273 'less':157 'level':115,218 'like':62,135 'longer':235 'm':10,118,204,275 'main':4 'make':242 'mention':127 'moder':57 'much':129 'need':168 'no-on':245 'node':90 'one':108,247 'paper':179,262 'point':93 'possibl':201 'post':255 'practic':44 'pretti':18 'probabl':138 'problem':59 'project':239 'publish':180,261 're':102 'read':176 'realiz':80 'realli':126,248 'reason':251 'relat':272 'requir':151 'research':40 'resort':174 'result':213,286 'salti':277 'scale':133,142 'screen':149 'search':212,285 'sens':243 'simpl':19 'solut':232 'squad':64,188 'start':74 'still':276 'stuff':34,61 'subject':183 'suffici':236 'talk':110,159,265 'talked-about':158 'thank':1 'thing':134 'ton':83 'tree':73,96 'unfortun':194 'unit':146 'use':29,50,103 'usual':17,109 'various':178 've':163 'way':156 'work':25,55 'would':137 'write':253 'wrong':105 'year':228"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6714674"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705942337 {#1945
    date: 2024-01-22 17:52:17.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#313
  +icon: Proxies\__CG__\App\Entity\Image {#294 …}
  +name: "programmer_humor@programming.dev"
  +title: "programmer_humor"
  +description: """
    Welcome to Programmer Humor!\n
    \n
    This is a place where you can post jokes, memes, humor, etc. related to programming!\n
    \n
    For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
    \n
    Rules\n
    -----\n
    \n
    - Keep content in english\n
    - No advertisements\n
    - Posts must be related to programming or programmer topics
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 297
  +entryCommentCount: 2799
  +postCount: 1
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729523671 {#321
    date: 2024-10-21 17:14:31.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#285 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
  +entries: Doctrine\ORM\PersistentCollection {#228 …}
  +posts: Doctrine\ORM\PersistentCollection {#186 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
  +bans: Doctrine\ORM\PersistentCollection {#165 …}
  +reports: Doctrine\ORM\PersistentCollection {#151 …}
  +badges: Doctrine\ORM\PersistentCollection {#129 …}
  +logs: Doctrine\ORM\PersistentCollection {#119 …}
  +awards: Doctrine\ORM\PersistentCollection {#108 …}
  +categories: Doctrine\ORM\PersistentCollection {#95 …}
  -id: 100
  +apId: "programmer_humor@programming.dev"
  +apProfileId: "https://programming.dev/c/programmer_humor"
  +apPublicUrl: "https://programming.dev/c/programmer_humor"
  +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
  +apInboxUrl: "https://programming.dev/inbox"
  +apDomain: "programming.dev"
  +apPreferredUsername: "programmer_humor"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1726902871 {#322
    date: 2024-09-21 09:14:31.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1700391429 {#316
    date: 2023-11-19 11:57:09.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details