When reaching a road fork, where one option is considered ideal and the other slightly less so, a ghost is now able to clone itself. The clone gets a slightly lower score, which is accounted for in the eventual ghost ranking process.
Ghosts travel slowly, as we want creatures to assume that their prey is at least somewhere close to where they lost it. Over a large amount of time however, the ghosts will travel to pretty much all corners of the world, which means that a creature that has been long lost will be looked for in much more diverse locations than one that disappeared around a corner just two seconds ago. Each time a ghost travels, it will check if it is in the line of sight of the creature inside which's head it's living. If so, it'll freeze in place - it wouldn't make sense for the the creature to assume that the prey could have traversed any distance that is actually visible to it.
In this gif (trying yet another hosting service, hope this one will work for everyone!) you can see a (stuck) lizard lose track of a slugcat. Notice how after time has been sped up, the possible locations are scattered all over the lower left area, but also contained within the area which is not visible to the lizard. It knows the slugcat has to be in there somewhere, but becomes less and less sure of exactly where as time goes by. Here the ghost count is capped at 15, I think the actual game would generally use fewer.
![]()
When the slugcat is actually seen, all ghosts except one are removed. The ghost that's slightly larger and pulsating is the one that's considered the best guess for where the slugcat might be. This is where the ranking comes into play. The ghost score has several things feeding into it. Traveling in the same general direction as the tracked creature was last seen moving in is one, proximity to the last seen coordinate and the tracking creature are others, intended to make search behaviors look more reasonable. The search behavior will probably be mainly about going after this "best bet" ghost until all of them are gone.
When the lizard is moved close to the ghosts, they disappear. Note that they don't disappear as soon as the lizard is able to see them, but the lizard has to be somewhat close as well. This is for a few different reasons. One is that when the ghost cap is reached, and a ghost reaches a road fork, it won't pick one direction, but instead just freeze in place (seemed more reasonable to me to stop at the crossroads rather than picking an option at random that would take you even further away from where the creature was last spotted). Another is that the ghosts are not in every tile in the possible area, like an actual Occupancy Probability Grid. Both of these are generally the same concept; that these ghost coordinates are not strictly "places where I believe the creature to be", but rather "places that would be a good idea to go when searching for this creature" if you get the distinction. The latter can't just be dismissed at a glance, but takes some examination before its hypothesis can be falsified.
Many of the parameters for this whole thing can be customized, such as the max amount of ghosts per tracked creature, the speed of the ghosts (as a fraction of the tracked creature's average speed - I imagine I'll generally want the ghosts to move slower than the actual creatures as a conservative guess that's closer to the last seen coordinate is better than a wild guess) etc.
Ideally this system should also be inter-room, so that a ghost could pass through a shortcut into a neighboring room - this I haven't implemented yet. But generally I'm happy with the system. I will however add some functionality to dumb it down to work better for the slightly thicker creatures. An example would be that a dumb green lizard probably shouldn't be able to be too clever about how you're able to climb and it's not. Instead it should assume that you have the same limitations it has, and emulate your ghosts with its own terrain preferences. That way when you climb up and away from the area it's searching, the proper reaction should be confusion.
first post wins, close the thread
I forget how crazy talented Iwata was/is programming-wise
The guy working on Rain World is really talented. I've been following his progress for years and his main focus is AI. Enemies that can predict your movement, have their own intelligence, react and adapt to your actions.
Here's a recent post about the AI
He's also doing things like blending sprites with physics-based procedurally generated animations and crazy parallax effects like this
![]()
i think the people from rareware were gods back then.
dkc, goldeneye, perfect dark, banjo-tooie...
all these games wouldnt be possible under normal circumstances.
they were literally squeezing out the last drop out of the system.
i think programming back then, when space on a cartridge was batshit expensive, you really needed to know your stuff. programmers from that age knew what they were doing.
He was sort of crap as a producer in the later years but isn't Yuji Naka largely responsible for programming a ton of the engines of SEGA's early 90's output? Impressive since I think he started working there when he was only 19.
Naka's work is sloppy, actually. A lot of the stuff he wrote was inefficient or redundant. It's not uncommon to see the exact same routine repeated multiple times in his code.
Have you worked with his code?
The ICE team from Sony.
Are Blizzard coders any good?Bob Fitch (Blizzard)
Are Blizzard coders any good?
Diablo 3 is unnecessarily demanding for an isometric presentation and PS2-level model detail, Starcraft 2 can't multithread well to save its life, hearthstone has random pauses or jerks.
Are Blizzard coders any good?
Diablo 3 is unnecessarily demanding for an isometric presentation and PS2-level model detail, Starcraft 2 can't multithread well to save its life, hearthstone has random pauses or jerks.
You guys are cute. Pretty much all programmers in the industry are notable. If you aren't, you get cut. Consistently. True story
Never worked with him directly but I've heard a lot of residual respect for Ben Stragnell who was one of the main programmers of Excitebike 64. Apparently he also wrote a NES emulator in a weekend or two so they could throw a copy of the original Excitebike on the cart. As far as I know he spent some time at Naughty Dog after than and a few other places.
Entered the thread just to name him.No one mentioned Abrash?![]()
There is a wiki: List of notable video game industry programmers
Jonathan Blow
Renaud Bedard (Fez)
Thanks to the Double Fine Amnesia 2014 documentary, I've become known of Oliver Franzke, Anna Kipnis, and Brandon Dillon. Brad Muir, I knew before but he doesn't talk about his programming stuff as much as these others did in the documentaries. I think that's some of the best insight I've witnessed in video form because in a short amount of time, you're turning ideas into code and then into programming that into an actual game.
There's a bunch of people from the C64/Amiga demoscenes who were programming prodigies.
3 random ones:
Tim Lottes
Corinne Yu
Linus Torvalds
- His Air Fortress engine was used as as basis for many other NES titles due it's very efficient memory handling was considered breakthrough at the time due to the limited memory on the famicom system. He received additional credits on several other NES titles for his memory management engine on other titles of the era such as the HAI developed 'NEW GHOSTBUSTER 2' title and 'Uchûkeibitai SDF'
- Was a technical adviser on NCAA BASKETBALL and once again demonstrated his coding abilities in fine tuning the engine at Sculptured Software, staying up late at night working on the title at the Boston office of Cultured software. Was considered to be the savior of the project due to severe technical issues such as the very low frame rate problems. NCAA Basketball went on to be a major seller that year and was praised for its smooth engine and performance
- His Kirby NES engine was widely seen as a technical marvel due to its smooth scrolling and perfect handling of the sprite layers limit and ended up being used and adapted for the many other sequels on the Gameboy and SNES format.
Credit the design team instead?I'm quite positive, ask the 200 million player base if they've done a good job.