unFocus Projects

Blog

  • Metroid Dread, more like Metroid Hate


    Metroid Dread, more like Metroid Hate

    The E.M.M.I. are a hateful, game breaking gimmick.

    Metroid Dread should be called Metroid Frustration, because that’s all it is. I don’t even mind the difficult bosses. They are a bit old school, and require failure, then rote pattern memorization, but that’s fine?—?there’s a way to beat them, and once you figure it out, it’s not that hard.

    The world, and the winding path through that world (even if it is a bit too linear for a Metroid game?—?Fusion had a similar problem) are beautiful?—?and I mean gorgeous. I didn’t like it at first, and if you are feeling the same near the beginning, try to stick through (if you can stomach the E.M.M.I.s), it gets glorious.

    That’s not the same with the E.M.M.I. They are frustrating, and hateful, and because their final killing blow is randomly timed, there is no way to reliably escape, which amps the anger and frustration, and the feeling that the game designers hate the player. I don’t play games to feel pissed off. That’s all I feel from this particular aspect of the game, anger, hate, and frustration.

    But I don’t want to just complain, so here are some simple ways to fix it.

    1. Just get rid of them. I mean it. Not having them would be FAR more atmospheric than having them. The mood could be set by having creepy music, and that spooky lighting scheme going on in there. You could even leave the red dot on the map, just for atmospherics. Remove them, at least until you have to defeat them with the powered up lazer thingy. That’d be fine too. Make it an option, please. I’d love to replay this game one day?—?but I’ll NEVER replay this, as long as they are there. I’m not even sure I’m going to get through this game once… It’s so unpleasant.

    2. At least make the escape timing challenge something that can be defeated reliably. It sucks every time to get caught, but all that little mini-non-game does is frustrate further. It adds nothing, except extended frustration, because there’s no way to reliably beat the non-game. This mechanic is maddening. I can’t underscore how much these E.M.M.I.s ruin the game?—?ruin. They are game breaking. Just being there is a problem, but if they have to be there, at least make it possible to escape.

    3. You could simply remove the escape mechanic. If the E.M.M.I. have to hunt and catch you, make it a real instakill. That’s what it really is anyway. The E.M.M.I. don’t have to be there, they are subtractive, they remove from the game, rather than adding anything. But if you think they do need to be there, just get rid of the frustrating, agonizing, hateful non-game with the impossible to time escape mechanic. GET RID OF IT. It’s game breaking, frustrating, and it makes me feel like you hate me. It makes me hate you. You don’t want me to hate, do you? Do you hate me? Is hate the feeling you were going for? Metroid Hate?

    The rest of the game is good! It’s a shame this one thing completely (I mean it?—?COMPLETELY) ruins the experience.

    Nintendo. Fix it. Please. Release a patch, or a Game Genie code, or something, to just remove the E.M.M.I. from the game. At least an option. That would be great. Thanks.

  • Facebook is the Last Mile of Media Publishing, and Should Act Like it


    Facebook is the Last Mile of Media Publishing, and Should Act Like it

    Mark Zuckerberg is a smart guy, and from most accounts, tries to do the right thing with his influential platform. Given the newness of social media, it must be challenging to figure out what that right thing is?—?especially when billions of dollars and the demands of share holders is on the line.

    Recently Mr. Zuckerberg was quoted saying that he doesn’t think its Facebook’s job to fact check political speeches. I think he’s probably right, but only in one specific way. Facebook is not in the news media production business?—?they don’t write the news. But they are an intermediary (the root of the word “media”) just he same. Conceptually, they are at least as influential as any publisher, in choosing which content to show users. Practically, given current trends, they are more influential than any news outlet’s front page?—?or all of them combined. I’ve written previously about an important (easy to fix) mistake in their curation algorithm which leads to two information silos modeled largely on a reductionist idea of America’s 2 parties— left vs. right, Democratic Party vs. Republican Party. That’s one half of the problem, and they should address it. But they also have some responsibility to promote fact based reporting, and thwart misinformation, just like any other media publisher. They don’t write content, but they certainly do promote it, selectively, to each and every user.

    Fact based news coverage is not sexy, but is essential for functioning democracy, and it requires credible, authoritative, expert validation. By many accounts, people “like” negative, bias confirming, often factually inaccurate posts more often than they “like” positive, moderate and factual posts. This is not a problem created by social media. Over the last 40 years fact reporting and investigative journalism has declined, as bombastic opinion writing and increasingly partisan infotainment and editorial has taken up the slack, in an attempt to capture both political influence and profit. It turns out, people are more motivated by in-group dynamics than reason, and catering to that is more profitable than not?—?for all media. It’s in this context that social media has the power to either enhance, or blunt the power of misinformation. Facebook’s current curation model, and decision to keep driving forward, enhances the problem, rather than curtailing it. Doing nothing is not doing nothing in Facebook’s case.

    Facebook, whether Mr. Zuckerberg likes it or not, has embedded itself in the last mile of the publishing pipeline for much of the news media citizens consume. Facebook should do the work to balance their own profit needs, vs. the impact they have on their users’ perception of the facts. Social media is media.

  • FaceBook’s Political Algorithm Error and Tribal Extremism


    Facebook’s Political Algorithm and Extremism Silos

    The social media echo chamber problem is strengthened by a simple algorithm mistake which Facebook and seemingly all of the social media platforms have baked into their cores. The Wall Street Journal recently shed light on part of the problem —Facebook chases “engagement,” by feeding folks more and more “sticky” extreme and enraging content, to keep them glued to the Facebook platform?—?and Facebook’s ads longer. Facebook categorically can’t fix this problem, because it’s at the core of their entire business model?—?which is likely why they chose to do nothing.

    But there is a second side of the problem, and I’d argue a more important part— the “silo” problem. Facebook (and other social media) ranks every post on a political spectrum from left to right on a 5 step scale. They rank each user that way too. You can see how they rank you in your profile’s “Ad Preferences,” if you’re curious. They use these values to feed us posts that fall within those parameters. Before social media, polls showed folks were often had strong opinions on single issues. Often they held points of view that didn’t align completely with a party. One might be anti-abortion, yet also anti-gun for example (even if only one or the other motivated them to the polls?—?so-called single issue voters).

    That happens less and less now, and I believe social media plays a role in this siloing effect, because these platforms are essentially sorting issue propaganda in two consistent “silos” on a simple 5 step spectrum. This drives partisan polarization on groups of issues together, rather than on single issues. Where we used to have a set of different single issue groups, that parties sort of gather in to a single coalition, now there are two large groups of people, who all think and understand an entire set of issues the same way?—?often with their own whole vocabulary to describe their set.

    Together with the propensity to promote partisan extremism on social media platforms, we have a dangerous mix. This is society breaking, and is rife for foreign and domestic actors to manipulate and exploit. Perhaps unlike the business model of promoting extremism, Facebook, Twitter, and the others CAN address THIS issue , they just have to be less lazy about how they categorize users and content. It’s simple, instead of following the largely illusory distinction between “left” and “right,” for everything (effectively building the previously fake distinction), rank content and users on a scale for each individual issue.

    The overly simplistic political curation mistake at the heart of Facebook and other social media platforms, is driving us to two increasingly extreme partisan camps. Fixing it is relatively easy, and could help steer us back to moderate sanity, even if it would not address the extremism problem. However, maybe if users aren’t constantly propagandized in echo chamber silos, it’ll be easier to find alternatives to promoting more and more extreme, enraging content to keep users engaged. Or maybe a turn to a different business model is called for. I’d be happy to opt-out of highly targeted political propaganda for $12 a year. More importantly, I’d happily pay again to opt my grandparents out…

  • Quint Dice update – Facebook and profile

    An update on Quint Dice. I turned on all the Facebook registration and login stuff that’s actually been done for a while, but I had off for a few reasons. Users may now sign up with their Facebook account, to make it easier to get started. Adding Facebook support has been one of the bigger time sinks in this project. Here’s a list of what’s done and not, so you’ll see why.

    Done:

    • Facebook accounts – done!
    • Facebook link accounts (if you have a password based account, you can add Facebook to it, then log in with your FB account in the future).

    Not Done:

    • Facebook Canvas – as I mentioned in an earlier post, it looks like ads are a problem within Canvas. I still have to figure out what to do about that.
    • Facebook notifications – The setting is available, so you may opt-out (it’s on by default) but I haven’t set it up to send notifications yet. It looks like I need to have a return URL within a Canvas app to make it work, but I’m not certain, and need to read the FB docs more carefully.
    • Native Facebook in Cordova for Android and iOS. This is turning into an endless headache. There are at least 3 Meteor packages that promise to do this, but each needs a Cordova plugin that I just can’t seem to build (a third one that I’m not sure how to install). I had hoped this would be much easier (and I’m actually pretty sure I once had it working), but it’s costing me a lot of time, so I’m probably going to let it lie for a while.
    • A user who registers with Facebook will have no username – I need to make sure they enter one, since that’s the primary way we do user discovery ATM.
    • No friends list, which is an important feature in my mind – starting games and inviting folks to play.
    • Account merging – if a user signs up one way (password) then signs up again another way (Facebook) then wants to link their accounts, they should be able to. There is a Meteor package (or 2) for this, but I have to implement some glue for it.

    Other updates in this round are better styling for forms, and the ability to set other profile data, such as your email address (useful if you forget your password!). You can also change your username if you want, and opt-out of push notifications on mobile.

    More soon!

  • Introducing Quint Dice!

    Introducing Quint Dice!

    I’ve been working on a game for the last few months in spare time. It’s a dice game called Quint Dice, a social dice game. What makes this different from so many dice games out there is that it’s based on dice that have color pairs, and you can play it with more than two players.

    What I’d like to avoid with Quint Dice is pay to win forms of revenue. Currently there are no bonus rolls. I’ll eventually add some, but you won’t be able to buy them or stock pile them to gain advantage over your opponents. I think I’ll add one bonus roll per game, and if you don’t use it in that game it goes away. I may also add a second bonus type – an extra dice. The idea is to add a level of strategy and flexibility to the play, without allowing a fundamental shift in advantage for one player or another just because they paid for an advantage.

    The only revenue source built into the game at launch is a small banner ad at the bottom. I’d also like to add custom dice packs, and maybe some full on themes. I’m hoping this will be enough to turn this into something that pays for itself. I may also play with interstitial ads, but only as a voluntary way to earn points to buy custom dice packs and themes without shelling out cash, for users who prefer that route. I like this better than pestering players with involuntary interstitial ads as a way to get them to pay. Annoying players is not my favorite model, no matter how common it is in mobile gaming. Finally, there will eventually be an option to remove the ads.

    I built Quint Dice with Meteor and React, and I would like to eventually port to React Native, but I’m using Cordova for the time being on Android and iOS (soon!). Like so many of the projects I play with under the unFocus banner, this has mostly been a learning exercise. But I’m happy with the results, and thought I should probably dust off this blog, and may start to share some thoughts I have as I develop these things.

    To kick that off, I’ll share a couple of things I learned while getting this out the door, in no particular order. If you’d like to know more about any of these items, please leave a comments, and I’ll see about writing a follow-up post.

    • Facebook integration is easy/hard. Getting notifications to work seems pretty easy, but getting a canvas app to work posses some challenges, particularly where advertising is involved. You can’t use AdSense inside an iframe, which is needed for FB canvas. Instead you’ll need to go with one of Facebook’s approved ad vendors. They all have that institutional feel to them, if their websites can even be reached. Not a fantastic dev experience. The solution I’ll probably go with is to create a Facebook canvas based landing page, and then flow my users to my domain from there, instead of having them play within the canvas page.
    • Meteor’s accounts system is awesome! With very little effort you can get up and running with a full accounts system, and there are a ton of Meteor packages to expand functionality. I ended up building custom UI in the end, but to get started I used the off the shelf accounts-ui, so I didn’t have to wait. I’ll probably be using a link accounts package to add the ability to associate facebook, google+ and maybe other third-party accounts services (Amazon perhaps) to existing Quint Dice accounts. I may also use an account merge package to make it so users can merge their accounts if they accidentally sign up with two different auth sources and want to combine their accounts into one. There are two different packages for that – and these are the kinds of things that make Meteor so fantastic! I can’t think of another platform where something like that is so easy to set up. Setting this up has some interesting challenges in terms of user flow, and it’s probably worthy of a blog post or two.
    • My on boarding process is a mess in the current iteration. I hope to fix that with the above mentioned packages link and merge packages. I may also play around with having an anonymous user for anyone who comes to the site and is not logged in. That way they can just get started.
    • Finding players is another messy area so far. I basically only collect one bit of information from users – a username. To start a game with other players, you are presented with a giant list of every player. This clearly needs work. Eventually I’d like to add Facebook friend support, and maybe even a friends list internal to Quint Dice. I’ll also add more profile data and some way to search on that (this is on my short list).
    • Push notifications are relatively easy to set up on Android. Relatively more complicated on iOS, but I should have that out soon (this is the only thing hold up an iOS release). I did figure out how to get a nice black and white notification icon to work, and that maybe warrants its own blog post (see this Meteor forums post for now). I’m using raix:push package in Meteor for that.
    • Meteor’s React support is build around a React Mixin, which basically wraps a single method on a component to make it reactive. This makes sense given that Meteor typically doesn’t enforce any kind of application architecture on the developer (a good thing IMHO), but I will probably switch to using something more Flux like. For non-reactive data sources and application state, I’m already using a Flux like pattern/architecture (using SignalsLite.js), but I may look into something like Reflux (or maybe Redux, or Alt) and then figure out how to move my reactive Meteor handling to that level. This probably warrants a blog post or two.
    • I used Adobe Animate CC to create the animated dice roller (output as HTML5 Canvas of course). CreateJS is pretty sweet, even on mobile. I may experiment with OpenFL for new dice packs, and see how well that runs. I’m thinking that custom dice packs will stay in HTML5, even if I eventually transition to React Native, so that they can be truly cross-platform. The only challenge with that might be an eventual port to Apple Watch, and AppleTV, which don’t support WebViews. I’m curious though if there is a way to use the JS behind my canvas based mini-apps, and render that through some HTML5 canvas wrapper from within a JavaScriptCore instance (is JSCore on Apple WatchOS and Apple TVOS?). When I figure this out, I’ll almost certainly blog about it. Of course, I may not even need all that if I go with OpenFL, because they have a native c++ compiler.

    Going forward, I’ll try to post more, probably when I make an update. There are a ton of other important packages (aldeed:simple-schema and aldeed:collection2) and technologies to cover, and I’m sure I’ll mention them eventually.