- in modules/core/classes/GalleryStorage.class at line 494 (GalleryCoreApi::error)
- in modules/core/classes/Gallery.class at line 202 (GalleryStorage::search)
- in modules/core/classes/helpers/GalleryUserGroupHelper_simple.class at line 105 (Gallery::search)
- in modules/core/classes/GalleryCoreApi.class at line 1876 (GalleryUserGroupHelper_simple::fetchGroupsForUser)
- in modules/core/classes/helpers/GalleryPermissionHelper_simple.class at line 64 (GalleryCoreApi::fetchGroupsForUser)
- in modules/core/classes/helpers/GalleryPermissionHelper_simple.class at line 39 (GalleryPermissionHelper_simple::_fetchAccessListIds)
- in modules/core/classes/GalleryCoreApi.class at line 501 (GalleryPermissionHelper_simple::fetchAccessListIds)
- in modules/core/classes/helpers/GalleryUserHelper_simple.class at line 76 (GalleryCoreApi::fetchAccessListIds)
- in modules/core/classes/GalleryCoreApi.class at line 566 (GalleryUserHelper_simple::hasItemPermission)
- in modules/imageblock/classes/ImageBlockHelper.class at line 217 (GalleryCoreApi::hasItemPermission)
- in modules/imageblock/classes/ImageBlockHelper.class at line 93 (ImageBlockHelper::_getBlockData)
- in /home/aarmgorg/public_html/journal/wp-content/plugins/wpg2/wpg2embed.inc at line 1352 (ImageBlockHelper::loadImageBlocks)
- in /home/aarmgorg/public_html/journal/wp-content/plugins/wpg2/wpg2embed.inc at line 867
- in /home/aarmgorg/public_html/journal/wp-content/plugins/wpg2/wpg2embed.inc(1229) : regexp code at line 1
- in /home/aarmgorg/public_html/journal/wp-content/plugins/wpg2/wpg2embed.inc at line 1229
- in ??? at line 0
- in /home/aarmgorg/public_html/journal/wp-includes/plugin.php at line 213
- in /home/aarmgorg/public_html/journal/wp-includes/post-template.php at line 230
- in /home/aarmgorg/public_html/journal/wp-content/themes/barthelme/page.php at line 12
- in /home/aarmgorg/public_html/journal/wp-includes/template-loader.php at line 75
- in /home/aarmgorg/public_html/journal/wp-blog-header.php at line 16
- in /home/aarmgorg/public_html/index.php at line 4
Alex Hutchingson (designer), Josh Mosqueira (designer), Adam Russell (programmer), Tara Teich (programmer), Soren Johnson
This was a very, very civil discussion I think between 2 designers who have used AI tools and worked with programmers, and 2 AI programmers, on how better to bridge the gap between the AI programmers and the designers. I got almost every bit of dialogue from this interesting discussion, simplified for my notes, so check it out – lots of questions too. Even Soren the coordinator answered a lot
Soren – What do you think the purpose of AI is in a game?
Alex – difference between having the AI beat the player and provide fun for the player.
Josh – How the players are going to interact with it – if you just need challenges, well, goombas are fine right? Need to push that a little.
Tara – Need to make it look as smart as possible and then flip that switch to yield to the player.
Josh – Players perception of the AI is important, adding speech to Company of Heroes squad behaviours had the player think “Oh, it’s smart”
Adam – Needed to see the AI – running the Fable pub AI out of the players view was a huge mistake, missing the point.
Alex – The players view is very limited, and so many other things are going on. Need to think if there needs to be all the back end if just choosing random actions when the player looks at the AI so the actions to get a mansion are simplified.
Tara – Simulations are what AI programmers like, but is it building it for the AI programmer?
Soren – Simulators are really fun to build, almost a game in itself. There is also a need to prioritise – complex extra units such as spies or submarines in Civ4 might not need to be worked on since they are so drastically different, and better to put effort into other areas.
Tara – Sometimes random is good enough. A submarine example doesn’t need necessarily all that extra code.
Alex – A lot of AI is non-competitive AI, so the AI was there in Spore to put up to be decorative.
Soren – In a symmetrical game the use of these units like submarines is something to consider since the counter units will never be required. Assemterical games are very different. The symmetrical AI needs to have the capabilities.
Adam – There is a self indulgent aspect to building a good AI systems, perhaps the designers and programmers have tension depending on the game type. Systematic game design is needed for the engineers to do their work.
Alex – You need the systemic approach to have an underlying system that works well so the player can learn it else the broken approach of doing it.
Soren – How do we train designers to be more systematic?
Alex – Haven’t figured out how to train designers at all. Learn the hard way by failing and keeping their jobs. Need someone headstrong and driven, and who can also learn and compromise.
Tara – If you have a designer that is putting forward fun rules, then good, but the engineer sometimes does get bad rules and just implemented them even though they might not work. Better to provide feedback on ideas.
Alex – Yes, this happens all too often where just to prove a point using company time and money.
Adam – What about the term procedural literacy?
Josh – You need to look at getting designers more like programmers, and programmers to be more like designers. Scrumm and so forth forcing together the groups can end up with potential solutions.
Alex – Thinking like an engineer is a key skill for a designer because you can ask for appropriate things. The designers that say “The engineers don’t listen to me” – almost invariably they are giving the engineers information they don’t understand, and so they go around that person and find someone else to find someone to give an answer they will like. I try and not build 100% of the design of a system – here’s 80% and the engineer gives you another 80% so more then you asked for. Anecdote – a designer would write pseudocode, tables, formulas, just to rile someone up so they build a better solution overnight to prove them wrong.
Adam – Two areas – the higher level design and micromanagement. How you get into the middle of the spectrum. The production processes perhaps rather then design or AI?
Tara – Sadly, most programmers are poor communicators – but to be a good gameplay or AI programmer you need to get along with people and be a little bit of a designer.
Adam – A lot like tools programming – which is a lot of interaction with the users of the tools, who need to do this, so perhaps AI programming is more like tool programming. Do you see pushback by AI programmers?
Josh – The programmers collectively trying to solve these problems.
Tara – Differences between different genres – RTS games have programmers have a lot more ownership of the experience, while FPS or action games are a lot more scripted. Not much autonomous behaviour to build – is that AI?
Adam – I can see it becoming like that – give designers AI tools and frameworks to build the scripted parts. I pushed back, but I want to see pushing the design as well as pushing tools.
Alex – Hard to do have entirely scripted since it is just very difficult and time consuming, so you always end up with a hybrid. Commonly hear the whitebox AI works fine – empty area, works well. Engineers say “build many areas which work the same” – designers say “boring after 8 levels”
Tara – Need some restrictions though – not too much varience from the working design.
Alex – Yes, need the restrictions so the AI operates such as heights.
Soren – The thing I’ve heard a lot is feedback that is needed. How can the programmers give feedback, and how can the AI provide feedback to the player?
Alex – how can you make sure the players see the stuff you want to build, such as needing multiple plathroughs to see cool behaviours designers see every day – a low % of people see the cool stuff.
Adam – What about the roles of programmers working alone and just providing a service to the designers?
Alex – Has to be a collaboration not a service. Need a relationship where people want each other to succeed.
Soren – What about the other side of the coin – what traits do programmers have that designers don’t like?
Josh – Programmers are very good at trying to optimising everything. Very logical approach to thing. It provides an optimised play not a necessarily fun one.
Adam – Optimised difficulty?
Josh – Yes, it always did the correct thing, never the fun thing.
Adam – Making the right kind of mistakes to look more like a human is hard.
Alex – The fun with allowing the AI to leave a time to react or do just enough. Just saying, sorry Josh, RTS is a bit of an oxymoron – a TBS is different, but the time of RTS takes the strategy out of the game for me.
Josh – Hard in the real time setting to telegraph the information about how the AI is running, especially with fog of war.
Tara – Also the question is what is AI? There is a lot of strategy in the players play of an RTS, and lots of AI to be there too.
Soren – The idea of a lot of AI’s happening in the black in RTS – what about cheating to make it competitive. Some cheating is just fine but other types just make them crazy. How do designers and programmers look into this?
Tara – It should never cheat when it could be doing the right thing. In a strategy game especially, such as building troops. There is value in cheating finding out where the enemy base is. If they can’t figure out the cheating is going on it is fine.
Adam – In the code it is generally fine, but in practice it can be bad.
Alex – do the cheating in the rules of the gamespace.
Josh – Cheated all the time to do those game moments. Three key rules – don’t get caught, don’t get caught, don’t get caught.
Adam – Sometimes it is all about cheating – creating an illusion of a battle after all.
Tara – Cheating like the systems of perception in an action game is just fine of course.
Alex – When it breaks inherent rules in the game – such as a unit moving 3 spaces instead of the allowed 2.
Soren – You see people attribute good luck for an AI to cheating, rather then see their own random happenings too. What about cheating against the AI?
Alex – You need a certain amount of frustration else you won’t have fun in the end. For people like Blizzard you see the forums and you see the complaining but that means people are engaging.
Adam – Player perception is reality. If the player perceives the AI cheating, then it is cheating. If it feels like it is cheating it might as well be cheating.
Tara – It might well be because puzzle quest is so based on luck, so maybe have the player cheating the AI so the good luck.
Alex – I hate rubber banding in games, bad design cheating. Without failure there is no success. An inherent failure is needed.
Adam – Rubber banding in education is a problem too, never letting them fail so they keep paying fees. Finding something difficult is a learning experience.
Soren – What would you do differently if you could redo a project?
Tara – There was a project that seemed to happen where the design stage had no engineers involved. The engineers need to be there to observe, not just say no, but they do need to be there.
Adam – On Fable, the village AI team and scripting team were very separate. Generally worked because the quests were outside the towns. One major collision there was a quest where the quest people were in a town, and they just stood there and the village AI was working around these standing people. The script guys put one in a doorway, and was a massive failure of communication.
Josh – Big regret, the squad AI was really integrated well, but the strategic level had none of that, possibly due to time.
Alex – In Spore we didn’t learn the lessons that the player liked. It took a while to realise there was no need to keep the worlds the same through the different worlds, so we solved a problem no one knew about.
Q – About cheating, cheating the other way – it exposes the AI to the player. Need to have intel telling people about the AI’s actions so it can be seen.
Soren – Yes, definitely, and FOW is a major thing, if you can do a game without it do so.
Q – Split between substance and style – maybe AI Designers?
Alex – A level designer is a system based game perhaps? The job has been around forever, like in Sims the object AI creators.
Adam – Talking to a AI programmer who is now a designer. Very frustrated by dialogue with designers, and took an opportunity to do frontline design. Programmers loved him when he became a designer because he came into their space.
Soren – See hybrid roles like technical artists.
Alex – Need to have this to ask for appropriate features.
Q – What is a good stragey for getting new AI coders to ask questions form designers?
Tara – go by their desk. Not just say “Come to me with questions”. Be proactive.
Q – Competitive AI has been discussed, what about collaborative AI?
Alex – A very different problem space – you can give the programmers much more room to play.
Adam – working on a unreleased prototype after Fable, and was able to drive it very strongly – companions are around for a long time. That relationship with the player means that there is a very long time to view the behaviours. Much more a general system needed.