Hacker News new | past | comments | ask | show | jobs | submit login

I worked as an AI engineer on a few Playstation titles, by far the most important part of AI is messaging whats happening to the player. Usually a well scripted animation or voice cue will beat and cleverly written reasoning engine.

We always had loads of cool ideas, like enemies running out of ammo and throwing clips to each other. But the reality is, the player will never see it.

Uncharted does a great job of messaging the AI's intent to the player. The AI itself is fairly decent, but the messaging of intent is excellent.




As a counterpoint, I found the AI of enemy creatures in Rain World to be particularly satisfying, exactly because it didn't bother trying to explain itself to the player, so you basically had to watch enemies for a while and interact with them (and die a few times) in order to try and learn how their AI worked, rather than learning specific repeating patterns like patrolling etc.

This could also make for a very frustrating experience for some players because it took time to grok the intentions and behaviours of enemies. For example, I remember a review of Rain World (on Rock Paper Shotgun) where the reviewer raged because every time he died the game respawned the enemeis at random locations, so that they were not where he had found them previously and he had to learn their new locations all over again. In truth, the game didn't "respawn" anything -the game world kept running while the player was dead, as it did when the player character was absent, much like in, say, Don't Starve and other games that take a simulation-y approach to a game world. But, to the reviewer, this somewhat complex behaviour (certainly for a game that looks like a platformer) was very unexpected and very frustrating.


This was a lesson I learned while working on my own game which was a Dwarf Fortress type game (lot of interwoven systems, a lot of complexity). The biggest problem was while I had all these systems sometimes I, the developer who wrote all of it, had no freaking idea why something would occur. As with everything I've learned from a career in software engineering, complexity is always bottlenecked by UX and UI. Without good design and feedback for a user, complexity is either obfuscated to the point of being perceived as worthless or to the point of actually being worthless.


What's the game? I'm looking for new DF-like games to play. (Sorry if there's a way to DM that I am unaware of).


It's called Ripple but it's basically tabled for the time being at this point. I've re-prioritized long term goals in my life and I'm more in career-mode than independent-projects mode. If you're interested in it anyway you can check out the blog here: http://ripplega.me/. Little bit of technical and a little bit of design.

If you're in the mood for one you're probably already aware of my favorite which is Rimworld. If not, hurray for you that will be a fun time sink. Other than that, I haven't been following anything other than Stonehearth, which depending on who you ask was a failure but recently did come out as a 1.0.

Of course none of them could possibly approach the complexity of DF but the spirit has definitely spurred on some cool projects.


My biggest complaint about Rimworld, and in fact most games, is the lack of causality in random events. This is caused by developers giving up on this complexity in favor of just rolling dice. Just because it's hard to provide a UI that can express these things doesn't make for a satisfying experience by completely ditching the sense that events have causes. When an event has a cause, it gives the player a feeling of agency, and when it's just a roll of the dice that you can make go away by reloading the save file from a few seconds before, they're no longer disasters, but just random bullshit the game throws at you for the sake of making things hard. It feels cheap and lame.

If you get raided, you should be able to scout the caravan before it arrives. If bugs tunnel under your base, your ground penetrating scanner should detect them in time to get in position to defend. The list goes on, and the solutions to the UX challenges are there, if developers didn't simply throw their hands up and say "Welp, that's just too much UX for me!"

The game that got randomness right was Diplomacy. There's no dice rolling at all, but the randomness is there because you don't know what 6 other people are going to do when you put in your orders, but you rely on them holding to their agreements for the success of your own moves. It's a very satisfying mechanic because randomness is still causal. Randomness truly represents your lack of information, and can be mitigated by your ability to extract reliable information from the other players. When you get screwed by randomness, it doesn't feel like arbitrary bullshit. Knowing that effects have causes is crucial for people's ability to form a narrative about their experience.

What isn't necessary is to simulate reality down to the smallest detail, which is what I feel like most people try to do when they end up complaining that it's too complex to present to the user and has minimal effect on gameplay. One needs to be smart about simulating the things that do have an effect on gameplay by focussing on narrative mechanics, and not just trying to recreate physics.

In short, the solution to complexity is not getting rid of it and replacing it with unsatisfying random chance, but instead to create a renormalized model that eliminates the extraneous degrees of freedom.


This is a great comment. I totally agree the mistake that developers often make is to go too granular in the simulation instead of abstracting out these mechanics in a "narrative" fashion like you suggest.

I do wonder, as someone who made this mistake themselves to a degree, how much of this is because it is fun as a developer to work on these over-complicated simulations :)


Thanks! I will check it out. I tried Rimworld but after playing it for 20+ hours I began to see the patterns and non-randomness of the game (I have been heavily biased by DF). Plus everything the other in response. Im gonna check out your blog when I get the chance (currently on vacation).

I have just (just!) started making a DF like game but will be based off the D&D world. I am starting from the bottom because I want the challenge and have less priority on completing the game (and more on learning/challenging myself). When I mean bottom, I have almost finished creating a path finding algorithm that should be much faster than the current ones out there (geared towards 3D grids like DF). I also created a line of site algorithm that is symmetrical and (so far in testing) angle/corner perfect. World generation will be based on tectonic plate movement (bare bones version created).


That sounds very cool! Honestly I harbor no ill will towards my past-self who decided to sink 3 years into a game that will likely never see the light of day because I chose to work on hard (for me) problems like path-finding and map generation. I wrote the entire engine from the ground up outside of using Pixi.js for rendering sprites and learned a metric shit ton in the process. Bravo to you for diving in deep. I'm sure you'll learn a ton.

I realize more and more these types of projects are the ones that differentiate "good" developers from truly "great" developers.


Yeah its kind of funny that AI that plays smart and doesnt announce intentions to the player can be viewed as bad, dumb, or unfair, but when the AI enemies basicslly tell the player exactly what they are doing it is viewed as intelligent.


Well, on the contrary, I loved the AI in Halo 2/3, and half the time you'd be alerted to new developments by the AI on your side (Marines saying "aw f$%$ here comes $unit!").


An intelligent ai may not be fun to play with. An "ai" that signals to the player its intentions means the player can adjust and learn (and learning is the fun in a game).


http://allenchou.net/2016/05/a-brain-dump-of-what-i-worked-o...

Related article I've read from a naughtydog AI developer on uncharted 4


> We always had loads of cool ideas, like enemies running out of ammo and throwing clips to each other. But the reality is, the player will never see it.

Sounds like a problem with the particular constraints of the PvE genres you were working in, rather than with games generally.

Imagine an RTS where the player has to work their way up from grunt to strategist, and thus "plays every role" along the way. In that case, the enemy AI is the ally AI; the player experiences the allied side of it, and can use that to understand the enemy side of it, and thus make plans.


I don't think this is an issue with the game type, just a limit on what they could afford to do. Messaging this to the player could be accomplished w/ a voice line & animation, but that costs money or disk space (remember, Playstation game).

This same problem would exist in a RTS, since the player still needs to know that the random ammo appearing is from squadmates passing it off. Otherwise, the player would be just as confused, possibly thinking they were picking up ammo off the ground.

Like most things in life, this is a tradeoff between cost to implement VS value.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: