By Dennis

Meaningful Failure

I will be hosting a roundtable at Meaningful Play. Information about it can be found here.

In short, I think failure is very productive, but how do we leverage that failure for the benefit of players? I’m actually looking at the effect of failure on people’s perceptions of themselves as well. Right now I’m looking at self efficacy, but I know that this can also manifest as labels and learning disabilities. There is a great article by Ray McDermott that I’ve been citing showing these effects:

Failure has transformed from simply not succeeding to something that determines the opportunities available to students. Failure becomes a label by which a student’s mental faculties are assessed. In its most malicious form, a failure can even manifests itself as a learning disability. At this point it has devastating effects on how the student views themselves, and how society views the student (McDermott, Goldman, & Varenne, 2006). With so much at stake it is no surprise that students do not wish to fail.

That’s actually exactly why I think failure is interesting. You can learn so much from it, yet it can also be quite devastating.

Thoughts about Failure? Leave them in the comments.

Realm of The Mad God

I’m always trying to play new games that are made up of interesting mechanics, or are just plain fun. The following games has both.

Realm of the Mad God

I’ve been addicted to this game for the past couple of days. Realm of the Mad God is a shoot’em up (like R-type) mixed with a fantasy MMO RPG. Having always been a skeptic of MMOs, I think I finally get it.

It takes a while to understand how to play this game but after defeating some lower level enemies you start to get into the swing of things. This is usually when you die for the first time, and in this game dying matters. You see, Realm has a feature that you don’t often see in modern MMOs, Permadeath. When your character is dead, you lose everything and have to start a new character. In my opinion, the Permadeath component adds a bit of risk, and makes challenges all the more rewarding. Realm is also designed with permadeath in mind so dying isn’t that bad. In order to unlock different classes you have to survive to at least level 5, and yes losing your gear sucks, but it’s awesome to try out a new class when the unthinkable happens to your character.

Another aspect that I like about Realm is the spontaneous team ups. Just like Journey and to a lesser extent, dark souls, people pop in and out of the realm all the time. If you come across another character and help them out, you get xp without having to be in the same guild. You’re also not required to help others and can lone wolf the quests if you wish. THis adds an element of suspense. I can’t count the number of times I accidentally agroed a moster that was too strong for my level only for another random person to pop in and change the tide of battle.

The best part about Realm of the Mad God? Instances. When you’re in a realm, and players have met certain conditions, the realm closes and everyone is sent to the boss’s castle. These events are great! Bullets everywhere! If you survive, expect your character to gain a fair amount of xp. If you die, well, another class is probably waiting for you.

Great game. Go play it.

Got a comment about Realm? Leave it in the comments.

Making a blog from scratch for 20$ using dreamhost.

Every so often I get a request to help with some techy stuff. To be completely honest, I love doing this kinda stuff because I like to make things. I also like to see things other people create things. Helping people to get blogs up seems to fill both of these needs. So, without further delay, how to build a website form scratch for 20$.

First, find a domain that you like:

A domain is a web address that people type into their browser to get to your site. These generally cost about 10$ and can be registered for about a year before they need to be renewed. I like Dreamhost (http://dreamhost.com/domains/) and have my domains there. You can do the same, or use any other domain service to buy your domain. Be creative and try to think of an address that people will remember. Sometimes, the name you want won’t be available so try a lot of different variations.

Hosting:

Now that you have a Domain, it’s time to decide where you would like to host your content. In other words, you’ll be renting a computer from a server to hold the content that you put up (in this case, your blog). You can use your own computer to host a website, but that’s a little more complicated, and I won’t go into it for this post. Again, for hosting I use Dreamhost which clocks in at 9$/month. Dreamhost provides unlimited bandwidth, allows you to host multiple websites for free, and maintains the computers for you (which I think is helpful if you can’t maintain a server yourself).

Once you’ve done both of the above, using your same account, you can now install your blog. For this step we’ll use wordpress (http://wordpress.org/) and Dreamhost’s installer.

Log into your dreamhost panel and click on the domain link on the side.

 

This should show your domain(s) and whether or not they are being hosted. Click on “add hosting” under the actions column and it should take you to another screen that looks like this:

Lots of information here, but don’t worry about that for now. Right now, just click on “Fully host domain”. The quick version of what you’re doing here is: you’re telling dreamhost to make a folder on their computer so that when people go to your domain they’ll see the stuff in that folder. In the future I might go into putting stuff into these folders using FTP, but for now we’ll just install wordpress.

Installing wordpress:

Almost done. Next, click on “goodies” and then “one-click installs”  while logged into your dreamhost account. This will take you to a page that lists a lot of services you can install on your site (this includes wordpress).

Click on the wordpress link and it’ll take you to the install page.

 

Click on custom installation and then select your domain from the dropdown menu. Dreamhost should now send you an email saying it’s installing wordpress and will notify you when your site is ready. Once you get the “Finished installing” email from dreamhost, follow the directions to set up an admin account. You can now post things onto your blog!

That’s it. You’re done. You can now go to the web address you bought and start sharing your thoughts. If you have any questions, or want to show off your new site, leave a comment.

Reflections on the Gee unit meeting.

This weekend I attended the MacArthur emerging scholars meeting in Arizona. The following post contains some reflections from that meeting.

Day1

The most interesting thing that came out of our conversation, for me anyway, where the issues surrounding designing for all people. Don’t get me wrong, I think it’s great to be inclusive, but I see designing for everyone at all times as an insurmountable feature creep. I think we would be more successful in education reform if we limit our scope and do something right before we start to think about the ways it doesn’t work. At least then, once we finish, we can reiterate and add additional features. If we change it and add features before we even make the thing, while it’s still conceptual, there’s no way we can build it… If we can’t even build it, then there’s not way we’ll have reform.

Bots! What about the learning?

Learning component

One of the projects assigned in Moses Wolfenstein’s class on Games and learning was to create an educational game. Because bots! already had a, limited, coding component I decided to use the assignment as an opportunity to work on my game. At the beginning there seemed to be several ways I could expand my game so that it could teach players coding. I had already done taken a similar approach on the project Tangibe Turtle but I wanted to try something different this time around. Influenced by the Code Hero project I tried to think of ways to make the coding aspect more explicit in Bots!. For a while, I thought of actually putting a command line into Bots! until i realized how lame it could potentially be, especially if mavis beacon didn’t teach you tying. I then thought about allowing the player to create custom action blocks by stringing simple commands together (for example, making a dash attack by combining moving and attacking). I didn’t entertain this idea for very long because I realized that balancing such a game would be a nightmare. Since I actually wanted to finish this project, I decided not to pursue this.

At this point I was a bit upset about trying to make the coding aspects of Bots! transferable to a formal setting. I then realized that it was because the core experience that I wanted to convey didn’t fit with teaching people to code. What it did fit with was making agents do cool things as they battled to the death. I was in luck, the core experience I wanted actually fit with another part of the game I wanted to develop.

Introduction to Operant Conditioning

(this was originally published in NOTALAND in 2009, because the site is no longer operational I have reposted it here.)

Thorndike, Edward, (1911) Animal Intelligence, New York, The MacMillan Company

Thorndike presents his findings about intelligence with the results from his studies involving cats, dogs and chicks. Thorndike studies imitation, discovery and association using different methods for each. The first, and perhaps the most striking, of Thorndike’s included the use of a specialized box. The subject (either a cat or a dog) is placed into a box that requires the animal to execute a specific action in order to be rewarded with food. This action ranged from pushing buttons and levers, or biting and rubbing against strings. While the animals are able to accomplish the various tests Thorndike does not attribute this to intelligence. Instead he simply states that these actions are due to associations. Thorndike’s other experiments include instructing animals on how to accomplish a task (by physically moving their paw), seeing if animals learned to imitate an act after observing others, and finally evaluating if animals make connections between specific commands and rewards without first seeing the reward. Thorndike reached the conclusion that animals do not posses higher forms of reasoning. Thorndike then assumes that an animal’s “consciousness” is similar to the sensation we feel when we swim. We can feel the water, but, unless we make an effort, we do not “think” about water and it’s properties.

B. F. Skinner, Science and Human Behavior (New York: The Free Press, 1953).

Skinner gives us a brief history of the deconstruction of mystic processes to what he now titles Behaviorism. First he sites how historically there have been two entities, the mind and the body. This is followed by a reflection on how the mind is considered so complex that we feel complex methods must be used to assert how the mind works. Skinner goes on to illustrate how the works of Pavlov and Thorndike seem to indicate that the mind needs no special method of inquiry. Instead Skinner suggests that these earlier studies break every action down into a stimulus, some unseen process, and the resulting response. Skinner then argues that since the second part, the unseen process, does not provide us with any advantage, in terms of manipulating actions, it can be ignored. Thus Skinner postulates that a further study of stimulus and responses, with the aid of some motivator (a reinforcer), will yield great insights about the human mind.

The Artificially Intelligent Mouse

Following the theory of behaviorism we can now teach the artificial mouse to get to a certain spot on our board by rewarding it when it has reached the desired goal. Because we cannot give an artificial mouse a physical reward we must think of a similar way to motivate our mouse. In Thorndike’s famous puzzle box experiments Watson uses an animal’s hunger as motivation and provides food as a reward. We can model this by programming our mouse to seek out high numbers in much the same way that animals seek food. Keeping this same approach we can then reward the mouse with the number 100 once it has done what we wanted. In the same way that Animals narrowed down their actions, or as Thornlike said the associations get “stamped in”, our mouse will give a discount association to the spaces that are close, but not directly next, to the goal.

In our example we condition our mouse to reach the top left position of the board. The mouse will make random movements until it reaches the desired spot at which point we will give it a reward of 100. The mouse will be allowed as many trials as the users want and will continue to refine it’s path every iteration.


Try the example!

Where it embodies the theory of behaviorism:

The AI Mouse example Illustrates how ideas from behaviorism are used in the field of artificial intelligence. The same way that animals are thought to adopt behaviors that benefit them directly, the artificial mouse is programmed to seek out the optimal square on a given board. Following the same analogy animals are thought to associate rewards with the actions that preceded it, the artificial mouse also associates a reward from a new square with the square that preceded it. After a few runs we can then see how the mouse converges to an optimal solution.

Criticism.

Criticism of reinforcement being used as a way to replicate intelligence include Skinner’s own argument for the use of his method. Skinner stated that because we could not see the inner workings of the mind we could not successfully evaluate the processes that take place there. Skinner then argues that because it would all be speculation, we should avoid these internal workings and focus on what we can evaluate. In much the same way, this example successfully produce the results given the proper reinforcement but may not give us any insight into true, human, intelligence. It could be argued that even a real mouse has motivations other than hunger that drive it to look for food and that because we ignore the inner workings of the mouse’s mind we are not accurately interpreting the scenario.

Another critique of this approach is the fact that if we fail to give a proper reinforcement our artificial mouse would not stay in the square we desire. In the same way some have argued that actions learned using reinforcement do not persist once the reinforcement is no longer present.

Chomsky, Noam, (1959), Literary review of Verbal Behavior, Language, 35(1), 26-58

In Chomsky’s literary review of B.F. Skinner’s “Verbal Behavior” Chomsky analyzes Skinner’s claim that language is a system of stimulus/response pairs. Chomsky criticizes skinner’s definition of reinforcement as one that jumbles anything remotely related to acquisition and retention together. In the same way Chomsky argues that reinforcement is also ill defined in this context to that point, he argues, that they lose any objective meeting they might have ever had. Skinner’s definition of Stimulus is also considered too wide encompassing whoever is talking, the subject of the discussion, and background information. Chomsky then goes on to challenge the way that skinner measures the degree of responses. He gives the example of how the phrase “it’s beautiful” uttered in a low tone may carry just as much if not more weight than the same response said in a high pitch. Chomsky also suggests that Humans do things at random without any conceivable reinforcement. He then argues that due to this randomness the precise care and set up that reinforcement learning is suggested to need cannot be generated. Because of these ill-defined terms and seemingly unsound experiments, Chomsky concludes that it’s difficult not only to falsify skinners claims, but also to validate them.

Bots! Playtest, playtest, playtest!

What’s in a game?

I cannot stress how important I consider playtesting. I remember creating games growing up and immediately having my brother try them out. Thanks to his suggestions, I was able to make many otherwise mediocre games into something we had fun playing. Isn’t a memorable experience what we want when we create a game anyway? Playtesting makes that happen, and this is why I playtest to this day.

Playtesting bots! has made it a much better game than what it was just a few months ago. Two major changes that come to mind are the removal of the defend option, and the splitting of attacking into two directional attacks instead of an area of effect.

During a playtest I was asked to explain each action and why a person might want to use it instead of an alternative. When I was asked about the defend option I simply said that a player would use that when they think the opponent might attack them on the next turn (The defend option was meant to deflect an attack and nothing more). i was then asked to explain the reflect option. Before I finished, I realized that no one would ever choose the defend option if they could choose reflect. Both options protected the player from being hit, however, a reflect had the additional advantage of sending the attack back, killing the other player. Knowing this, I decided to remove the defend option from the game.

The problem of attacking having a one block area of effect had already raised it’s ugly head at the beginning of development, but it wasn’t until I had a few playtests that I found out how broken it was. During this particular playtest Player 1 stood next to the block with the coin and proceeded to only use the attack action. as a result, Player 2 couldn’t get close to Player 1 or the coin. As a result I split the attack into two actions. One that hit anyone unfortunate enough to be above or to the side of the attacker and one that dealt damage diagonally.

Although these changes have made Bots! a stronger game, I’m not done with yet, and I expect to have a lot of revisions before I am.

Bots! Good ideas die hard

Killing your babies

After a few rounds of successful prototyping I started to think about other things I might be able to incorporate into the game. One such idea was the ability to execute special moves. In order to enhance the strategy component of the game I had always pictured being able to string a list of commands in order to execute something much more powerful.

I think this originated as a woot.com shirt
Fully committed to implementing this feature, I started to think about how exactly these moves would be used. How many moves would be required to execute such a move? What would be the effect of such a move? Would moves combo between rounds or matches? In order to answer a few of these questions I decided to look at the critical path for my game. I figured that special moves wouldn’t be used if another player could win before it was executed. With this in mind, I tried to find out what was the smallest number of moves that I needed to make before winning (given that I wasn’t worried about my opponent killing me). The answer turned out to be 4 (though it rarely happened).

I decided to see if I could add special moves, Given only 4 actions. I came up with double attacks, speed boosts, scramblers but I couldn’t really justify the addition. The game also changed drastically as a result of adding special moves, which in this case didn’t really help the game out. With this is mind, I removed special abilities.

Pictured above: frustration.
Figuring out the critical path

Recently, a change to the way attacks work has made me reconsider the decision to remove special attacks. Instead of hitting everything in a one block radius, which lead to stalemates, players now have to choose between diagonal and horizontal/vertical attacks. With this change the turtling problem that I described earlier disappeared. This also gave rise to a game type where players can attack each other without going after coins. Finally, this change meant that the critical path is no longer 4, players could now use special moves that were more than 4 actions long without forfeiting a point. However, I know the allure of feature creep so, for now, I will stick to my initial decision… at least until the core game is completed.

Bots! The beginning

In the spirit of other indie game devs, I will be writing a couple of posts chronicling the development of Bots. Bots is a synchronous strategy game where two players compete to be the last one standing, or collect the most coins.

The Beginning.


The idea for bots came to me during GDC where, once again, I was told to make a game about something I know well. While I’m not a virtuoso hacker, I can write some mean code and decided to make a game around some sort of programming. The first challenge I experienced was abstracting the process of coding while keeping the feeling of making things do cool stuff (the reason I enjoy programming).

One of my initial ideas was to have both player sit at a terminal where they would type in commands to control their robots in real time. After some reflection I realized that this would be both complex and boring to people who don’t type very fast. In order to address both of these issues I decided to scale my game back and tried to simplify it. Instead of players typing their commands in realtime, I allowed players to select from a set of 7 actions (4 for movement, one for attack, one to defend, and one to reflect). I also narrowed down the playing field to a 5×5 grid and made the objective “destroy the other player”.

The paper prototype.

After nailing down the initial mechanics I decided to start testing the game right away. I really like paper prototyping. Making something is really rewarding, and paper prototyping lets you make a game really quickly. The initial prototype involved two white boards (for the players to write down the actions they would use for that round) two markers to represent the bots themselves, and a coin for the center tile. This was very versatile and allowed me to make several changes on the fly. After playing a few rounds of the game I tired to break the game by greifing it myself. I found that if a player stayed in the corner and waited for player 2 to come to them there was no way that they could lose. In order to prevent this turtling strategy, I added a second objective: Collect the coin. I placed a coin in the middle of the board so that if a player decided they wanted to hide in the corner, player 2 could simply walk to the middle and collect the coin winning the round. This proved to be a great addition resulting in a heavily contested area while making the game more exciting.

After the core mechanics settled I created a more polished version of the game (no use making it look too polished when heavy changes were imminent).

Bastion


Bastion
Joystiq Score: 4/5
Gamespot Score: 8.5/10
Common Sense Media rating 5/5, Ages 11+

By now you’ve probably heard of this award winning title by the Indie company Supergiant games, but if you haven’t this game is definitely worth a look. Bastion is an Action RPG set in a post apocalyptic world. By assuming the role of a protagonist, known only as “the kid”, players must make their way through a shattered land in order to restore it to its former state. Aside from being a solid game over all, Bastion excels at telling an immersive story generated in part by the payer’s actions. Given the emphasis most educational games place on narrative to convey educational goals, Bastion gives us a model of turning otherwise linear stories into dynamic experiences. By paying attention to the player’s actions, and providing realtime feedback in the form of narration, bastion strikes a balance between designed experience and player agency that is sometimes lacking in games of the same genre. Bastion is a must for any researcher, or practitioner, interested in the role of story in games. Bastion is available for Mac, PC, Xbox, and can even be played in the chrome web browser. http://supergiantgames.com/