background preloader

Understanding Pac-Man Ghost Behavior

Understanding Pac-Man Ghost Behavior
Posted on December 2, 2010 It only seems right for me to begin this blog with the topic that inspired me to start it in the first place. Not too long ago, I came across Jamey Pittman’s “Pac-Man Dossier”, which is a ridiculously-detailed explanation of the mechanics of Pac-Man. I found it absolutely fascinating, so this site is my attempt to discover and aggregate similarly-detailed information about other games (albeit in much smaller chunks). About the Game “All the computer games available at the time were of the violent type - war games and space invader types. Pac-Man is one of the most iconic video games of all time, and most people (even non-gamers) have at least a passing familiarity with it. Every level of Pac-Man uses the same maze layout, containing 240 regular “food” dots and 4 energizers. Common Elements of Ghost Behaviour “Well, there’s not much entertainment in a game of eating, so we decided to create enemies to inject a little excitement and tension. The Ghost House Sources Related:  Game Design

Bloxorz,Free Online Strategy Game,Play Computer Puzzle Maze Games,Bloxorz Kids Flash Game,Children's PC Fun Play this Online Strategy Game - Bloxorz: This is a quality strategy / puzzle game which provides hours of fun passing the 33 stages. Your aim is to get the block to fall into the square hole and to stay on the board while moving the block toward the hole. There are bridges and switches. You must move the block on to a switch (marked X) or a circle-marked square. A switch can only be activated by a block standing on its end while the circle switch can be pressed on by any part of the block. Orange tiles are fragile, and the block cannot stand on its ends while on an orange tile. There is a split circle ( ) switch. Small blocks can activate circle switches, but not X switches. The Passcode, located in the top right corner, will allow you to return to the same level next time you play. Controls: Arrow keys - Up, Down, Left, Right Spacebar - to select the part of the block to control when separated

Minecraft Game/AI: Fixing Pathfinding Once and For All July 26, 2008 Fixing Pathfinding Once and For All I normally do everything I can to avoid saying things that could be interpreted as a criticism of other games or developers in the industry. But in this case, I had to make a bit of an exception. I need to talk about some problems we face with pathfinding. All of these clips were recorded over the last week with the latest, most-recently-patched version of each game. As you can see, we're still a long way from having robust pathfinding across the board ... and it's even a problem in some million-unit-selling, AAA-quality titles. It's not necessarily a universal problem. But there are still too many games that do pathfinding the same way that games did in the 1990s. (Note: The only reason you see lots of PC role-playing games here just comes down to convenience. To the best of my knowledge, most of these games use waypoint graphs for pathfinding. I believe waypoint graphs are now obsolete. But we're a multi-billion-dollar industry now. 1. 2.

Computing Thoughts · Bruce Eckel's Programming Blog Experience Points: The Sensationalist: The Sound of Horror This post is part of "The Sensationalist," a continuing series here at Experience Points in which we examine games' abilities to evoke emotions and sensations in video game players. Please have a look at the series' introduction as well its previous entries. As always, we welcome your thoughts on all the matters we discuss, and look forward to analyzing one of gaming's most powerful, yet intangible, abilities. I have been wanting to do a Sensationalist post on horror games for some time now. In this sensationalist, I approach only one aspect of horror games: sound effects. Fear is universal. Environment Creaking wood is a horror genre staple, from the original Alone In The Dark to the latest iteration of the same game. An early entry to the 'make-people-piss-themselves-in-fear' category of games is Ken Levine's System Shock 2. The mechanical surroundings create an eerie contrast with organic enemies while playing off a fear of powerlessness in the face of human made constructs. Silence

Minecraft Wiki - The ultimate resource for all things Minecraft A* Pathfinding for Beginners By Patrick Lester (Updated July 18, 2005) This article has been translated into Albanian, Chinese, Finnish, German, Greek, Korean, Polish, Portuguese, Romanian, Russian, Serbian, and Spanish. Other translations are welcome. See email address at the bottom of this article. The A* (pronounced A-star) algorithm can be complicated for beginners. While there are many articles on the web that explain A*, most are written for people who understand the basics already. This article does not try to be the definitive work on the subject. Finally, this article is not program-specific. But we are getting ahead of ourselves. Introduction: The Search Area Let’s assume that we have someone who wants to get from point A to point B. [Figure 1] The first thing you should notice is that we have divided our search area into a square grid. These center points are called “nodes”. Starting the Search We begin the search by doing the following: [Figure 2] Path Scoring where H can be estimated in a variety of ways. 1.

Write Code Every Day Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy. There were a few major problems with how I was working on my side projects. I was primarily working on them during the weekends and sometimes in the evenings during the week. This is a strategy that does not work well for me, as it turns out. I was burdened with an incredible amount of stress to try and complete as much high quality work as possible during the weekend (and if I was unable to it felt like a failure). This was a problem as there’s no guarantee that every weekend will be free – nor that I’ll want to program all day for two days (removing any chance of relaxation or doing anything fun). There’s also the issue that a week between working on some code is a long time, it’s very easy to forget what you were working on or what you left off on (even if you keep notes). Weekends.

Mechanics, Dynamics & Aesthetics - The Quixotic Engineer This summer I’ve been casually following Game Design Concepts, Ian Schreiber’s experimental online game design course. The curriculum has covered a number of thought-provoking concepts, but the real light bulb moment for me came in his discussion of the MDA framework1. Robin Hunicke, Marc LeBlanc and Robert Zubek defined MDA in 2001 [PDF link]. It stands for mechanics, dynamics and aesthetics, the three layers that define a game. These words are often thrown around casually in game design discussions, but in MDA they have very specific meanings: Mechanics are the formal rules of the game. We can illustrate these concepts with the classic game Pac-Man. In his post on MDA, Schreiber also offers the following example: In a First-Person Shooter video game, a common mechanic is for players to have “spawn points” – dedicated places on the map where they re-appear after getting killed. We can see the contrast between these two perspectives in Clint and Ben’s writing about Far Cry 2.

Prep: The Graphics Pipeline In this preparation tutorial I will give an brief overview of the graphics pipeline. A basic knowledge of the steps that a graphics card performs while rendering is essential for using and understanding modern OpenGL. OpenGL is of course, a graphics rendering API. It provides functions for you as a programmer to generate primitives (triangles, points etc.) by specifying the vertices that make them. There are a few steps though between supplying the raw vertex data, and the framebuffer being displayed and this is called the rendering pipeline. Step 1. - Per-vertex Operations In this stage the vertices that are sent to OpenGL are normally transformed through the model-view-projection matrix into screen coordinates. Step 2 - Clipping and culling Primitives are clipped to the screen and faces that are marked for culling (e.g. backface culling) are culled before rasterization. Step 3 - Rasterization The vertices are formed into primitives and rasterized (filled in). Step 5 - Framebuffer

Lost Boy | The blog of @ldodds Game Design Tools for Collaboration Game Design Tools for Collaboration By Damien Djaouti Can a tool for modeling game design make it easier for designers to work with engineers? Many different tools and frameworks have been proposed, and researcher Damien Djaouti explores them for practicality and adaptability. This article presents a selection of "formal game design tools" that may be able to bring game design and software engineering closer. Traditionally, to present his work to the rest of the team, a game designer writes a Game Design Document that details every aspect of the game. Instead, they are experimenting new methods tailored for the communication needs between disciplines. Among these books and research articles, some game designers are proposing tools that intend to formalize game design. To try to answer this question, we gathered a corpus of books and articles related to game design, ranging from 1999-2012. Through this article, we will highlight four models that enable designers to model a game structure.

Megan Fox's Blog - Game Engines 101: The Entity/Component Model The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community. The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. There are many approaches to game engine design, and this is far from the best in all cases, but it is certainly the most common overall. Welcome to the wide world of component-based entities. First, let's address the way most people fresh out of Data Structures, CS 101, etc think of game objects: class Engine { int numberOfCylinders; .... } class Car : Public Engine { bool hasComfySeats; bool numSeats; ... } ... which is, in a word - bad. Let's take a peak at why. So we stop just short of hanging ourselves, back out, and realize that that route is unsupportable. Thus - enter components. class Entity { void AttachComponent(ComponentType, argumentList, name) void DetachComponent(name) void UpdateComponents() void UpdateComponentType(ComponentType typeOfComponentToUpdate) class BaseComponent { Done.