Welcome to DevChat #15!

Here's what's we've got for today:

  • ๐ŸŽ‰ Levelhead's 1yr Anniversary
    • ๐Ÿ•ธ Influencer Campaign
    • ๐ŸŒŠ Community Streaming Marathon
  • ๐Ÿ’‰ Shots on Shots ๐Ÿ’‰
  • ๐Ÿ“ƒ Notion's Changeable-URL Trick

This is an archive of a DevChat newsletter. To get the next one early, and in your inbox, sign up! To read past issues, head to the archives!

๐ŸŽ‰ Levelhead's 1yr Anniversary

Last Friday (April 30) was Levelhead's 1 year anniversary (since full launch). There were a couple of things that made this anniversary particularly fun: an influencer campaign and a community-organized streaming marathon.

๐Ÿ•ธ Influencer Campaign

Levelhead is a weird case study. It's a stellar game with spectacular review scores, the community is super strong, and it truly innovates on both the maker and precision-platforming genres. Despite all of that, it's been extremely difficult for us to get the attention of press and streamers. That was true every step of the way, from initial announcement, to Early Access announcement, to Early Access launch, to full launch.

We still don't know why, and probably never will. Undoubtedly it's a combination of many things. Our current, primary hind-sight rationale is that the main issues are related to genre and marketability. Specifically, the experience of Levelhead is not something we can convey through marketing materials, because it consists of so many parts that most players have not experienced. The maker genre is pretty dang niche, it turns out. And, of course, platformers are a dime a dozen. Sure, ours is one of the best ones out there on both fronts (in my opinion), but there's no way to convey that through the marketing. Maybe if we had a super unique artistic flavor to catch people's eye (a la Hollow Night).

Anyway, when it comes to cases like this where you have a stellar product but have trouble with adoption, that indicates there's a high barrier to people giving it a shot. In such cases, casual marketing (ads, trailers) can't get people above those barriers in a cost-effective way. For Levelhead, we thought that maybe we could knock those barriers down by finding a better way to convey what it's like to experience Levelhead.

There's already a system out there for this: influencer campaigns.

Influencers (streamers, YouTubers, etc) cover games for all kinds of reasons. One of those is if the game is already popular. In fact, that's the main one. Sometimes, though, a big streamer will pick up a struggling game and kick off an explosion of interest. You can't count on that happening by chance.

So that leads to paid influencer campaigns. It feels gross, right? But there's a way of thinking about it where everyone gets what they need, and nothing nefarious happens behind the scenes. The idea was to find influencers who we knew would love Levelhead, and whose audiences would also, but who won't otherwise give it a chance due to perceived risk. And then compensate for that risk.

If you follow the YouTube or streamer worlds at all, you'll have heard a lot about how trapped streamers end up feeling. If they deviate from their schedules or their standard type of content they take big hits in visibility and views. Thinking about things this way, it makes sense that we (as the product creator) have to offset the risk that the influencer would face by spending their time making content about our product versus someone else's.

So then the objective is clear: find influencers who have significant reach, who would love what you want them to cover, and use part of your marketing budget to offset their risk so they'll cover it. Don't add stipulations that they only say positive things, etc. That's how you get into territory where you start getting accused of having done something nefarious.

Is it cost-effective? Who knows! We'd never tried it before, and whether it was or not in this specific case isn't super informative about future scenarios. We did it, in any event, and had a blast watching the influencers play and their communities getting to experience Levelhead. Vicariously, yes, but that's still way better than what an ad or trailer can do.

Most models of explosive growth have some sort of tipping point, since usually there are negative feedback loops at play that must be surmounted before positive feedback loops can really take off. It's not super likely that our investment would have been enough to get us over that threshold, but we thought the experiment would be worth doing to see what the direct leverage would turn out to be. And who knows, maybe we'll get lucky.

Have you tried an influencer campaign for your own game? How'd it go? Please share your experience.

๐ŸŒŠ Community Streaming Marathon

Still from my Levelhead Stream

The amazing Levelhead community put on a 48hr streaming marathon to celebrate Levelhead's anniversary. I watched a lot of it while recovering from my second COVID shot, and it was a wonderful way to spend that time.

Making a game that results in a community like this was always something we hoped for, and it's humbling to watch it happen.

There are probably a jillion VODs on Twitch and YouTube from the week and weekend, so do some searches if that's the sort of thing you're into.

I joined in myself today to fill in a gap in the extended community marathon. I played levels terribly, talked about level design, and answered questions about the business and practice of game development. I don't plan to port it to YouTube, so check it out before it expires!

๐Ÿ’‰ Shots on Shots ๐Ÿ’‰

My wife and I got our 2nd shots on Thursday (Team Pfizer). Both of us had a malaise-y Friday, but it wasn't too bad. Certainly better than actually getting COVID, by an enormous margin. I probably could have worked, but I'm trying to be better about that. So I took the day off and watched all those Levelhead Anniversary Streams.

If you can sign up for your shots in your location, get on it! It's the right thing to do for you, and also the right thing to do for everyone around you.

I'm now on that 2-week clock where I get to feel statistically confident about hanging out with other fully-vaxxed people. And let me tell you, that's going to be weird. I've only been around one maskless person (my wife) for over a year. Being in a room (not even outside) with more than one!?

It'll be weird.

๐Ÿ“ƒ Notion's Changeable-URL Trick

I haven't talked about any weird technical stuff for a few DevChats, so here's a quick pick:

Notion's page URLs are changeable, which would normally be a Very Bad Thing. They've got a clever trick up their sleeves, though.

For some background: a URL is supposed to be a unique, unchanging identifier for something on the Internet. When you write, say, a blog post, you'll typically end up with a URL that uses a weird version of that title (e.g. "What I ate this morning!" becomes "example.com/post/what-i-ate-this-morning"). Once you've published, most blogging software locks your URL. Why? Because if you change it you'll break any links to that page. That's terrible for people on the Internet clicking those links and terrible for your SEO.

This leads to the dumb scenario where the title shown in the URL deviates from that in the actual post, because that first title was a draft title that got locked in. Lame.

That's not too big of a deal, since blog posts and other old-school web pages don't change that much. Even when the title does change, the content is probably largely the same. So the old title (and thus URL) are still accurate enough.

But then you have something like Notion, where content is extremely dynamic by design. In this case, the title of a page could change all the time, and the content may eventually deviate completely from the initial version.

Notion has done something clever here. They have the URL always reflect the title. If you're a Notion user you can see it happen. Live! Just start editing the title and watch your URL...

But if they change the URL when you change the title, doesn't that break all the links to that page?

Nope! Each URL ends with a unique identifier (e.g. notion.so/me/What-I-Ate-This-Morning-2345234523452345). That unique suffix stays constant while the other part changes.

What Notion is doing here is ignoring the part before the identifier when a request hits their server. It uses the identifier to find the page in question, then gets the current name of that page and computes what the URL should be. If that's different from where you started, it redirects you!

You can see this in action yourself on Notion. Create a page, then grab the URL (which should have your title in it). Delete your title from the URL, keeping the identifier, and paste that into a new browser tab. When your browser hits the site, the correct page will show up and the URL will change!

In fact, you can put any title in front of that identifier, whether it was ever a title of your page or not, and you'll still end up in the right place.

Notion has made one mistake here, though: they don't set the Canonical URL in either the HTML head (via the <link rel='canonical'/> tag) or the HTTP response headers (via the Link header). They should have done this using the ID-only (no title) URL. Without that, search engines will think they're seeing a different page every time they follow a different URL to get there (blowing up your SEO).

Except for that mistake (which would be easy enough to fix), I love this idea. I've thought about places it might make sense to implement this in Rumpus, perhaps even with our own blog. Since we have far fewer distinct blog post URLs our identifiers could be way smaller and still work.

Can you think of other use cases for a trick like this? Let me know!

Until next time

That wraps DevChat #15!

Follow me on Twitter and GitHub for texty nerd stuff, and subscribe to the studio Twitch and YouTube for dev content in video form.

I've been having a great time hearing from readers. If you haven't said hello, please do!

Share with others by forwarding, or link directly to the archived post.

Have a great week!

โค Adam