Go, Go, Godot!
  • 0

Design Patterns for Building Friendships

October 9, 2023

In this 2018 GDC session, Spry Fox‘s Daniel Cook explains how to keep human beings from being treated as interchangeable, disposable, or abusable when designing multiplayer games.

If you’re developing, or thinking about developing a multiplayer game, this is a great talk to better understand the challenges of designing multiplayer interactions that result in more engagement and player satisfaction.

Daniel talks about the potentially negative social effects of multiplayer implementations, the effects of proximity, propinquity, serendipity, and density on people’s relationships, the logistics of forming new friendships in games out of strangers.

He covers basics like persistent identities (and repeat encounters), events (and their density), daily incentives, and offline communities as well as anti-patterns such as anonymous players, empty spaces, too many gameplay modes, and separation of players by skill. He also talks about the challenges of matches and matchmaking, which often necessitate large amounts of concurrent players to be viable, and the issue of matchmaking queue churn, resulting in low repeat interactions. The talk also covers the topic of similarities; tribalism, nationalism, their negative effects, and how to work with similarities in a positive context through fictional places and cultures. Daniel speaks to reciprocity, how it levels up relationships by building trust for more meaningful and deeper interactions, and the challenges of building trust, which is easily destroyed by cheating, scamming, or even premature disclosure which then kills relationship leveling.

I think the whole talk is fantastic, but the friendship levels of solitary play, parallel play, ambient/accidental coop, soft coop, and hard coop, are something any multiplayer game designer should think about because designing games around those different levels can have far-reaching effects and give games the proper appeal they need to grow and thrive.

The low trust, medium trust, and high trust Venn diagrams of increasingly more discrete player skills can also be found on Raph Koster’s website in his post about The Trust Spectrum. It’s a great read. The topics apply to all games, but it makes me appreciate Deep Rock Galactic even more for its well-thought-out design.

I find it funny that Daniel calls out retrofitting a social architecture as hard because I define architecture fundamentally as “that which is difficult to change later.” The context or nature of the architecture is usually less important.

This talk also reminds me of Penny Arcade’s Greater Internet F***wad Theory, which is soon coming up on its 20th anniversary.

game design
Posted in Godot.
Share
PreviousThe Godot Jungle Demo
NextGenerating documentation for GDScript

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Related Posts

  • August 2, 2022

    Launching Godot Games on Steam Deck from the command line via Remote Shell

    For some reason, my Godot game would no longer launch on the Steam Deck. I could hear it running as if it were running in the background, but the screen kept showing the Steam Deck’s UI. Since it’s all Linux I figured it should be possible to just drop to the command line and launch …

  • March 11, 2025

    Update all resources after modifying a resource class

    Godot’s resources are quite powerful. However, modifying a resource class doesn’t automatically update any corresponding .tres files, unless you happen to edit a scene that uses that resource in some way. This doesn’t impact runtime behavior — the game still runs as expected. But it can impact version control and result in a messier diff …

  • November 17, 2022

    Making videos for the web with Godot 4’s Movie Writer

    Normally I use OBS for screen recording, but there are cases where it makes sense to use Godot’s built-in movie writer that was recently announced. For example, if you have a slow PC or really demanding game, OBS will skip frames. It makes sense since OBS is just recording what’s on the screen in real …

  • April 20, 2024

    Ditch @onready, use @export instead

    Are you using @onready to reference nodes? There’s a better way! Here’s a simple example of how many tutorials use @onready to reference nodes: That script is attached to a CanvasLayer node with a ProgressBar called HealthBar. And yet, when running the scene, it will throw an error: This is because there’s actually a spelling …

    © 2026 GoGoGodot.io. All rights reserved.