Designer News
Where the design community meets.
Full-stack Dev @ HireArt Joined almost 9 years ago
Nathan hasn't posted any stories yet.
For even more clarity you can use Time.now
, which is equivalent to Time.new
with no arguments.
I'd highly recommend React (and the Flux pattern). This is the future of building highly interactive websites, and more frameworks will soon follow suit. I really enjoy the pattern and had already patched something together myself that behaved similarly (albeit without so many useful features, and without the performance gains of React's virtual DOM).
I come from a background using more traditional server-side MVC, and until React I wasn't sure I'd be able to embrace the movement towards client-side frameworks. While I understand the need for much richer client-side functionality, most of the existing frameworks leave a sour taste in my mouth. Maybe (and this is an overgeneralization) it's because they conflate view rendering with data binding, pairing parts of the view directly with parts of your objects. But really I just liked the old model and didn't enjoy turning my nice Ruby code into a bare JSON API.
I like React because it behaves much more like the traditional approach to views, accepting a context and re-rendering each time. It doesn't care how you do the data binding -- it just re-renders when you update the data. (This allows me to more easily do the initial rendering in the server when I see fit.)
The true magic comes from the fact that it will diff the rendered view against the current state of the DOM (which it caches for performance reasons) and will generate all of the discrete update actions you'd normally write yourself with javascript. Prior to React, I'd find myself writing piles of spaghetti code on the client just to keep the DOM up-to-date with the expected state. Now I just write the initial code to render the view and leave the rest up to React.
No, I got it. And I don't disagree -- it sounds pretty flattering.
But when marketing a video game, your audience is much wider than the creator of Tetris.
To take your fast food comparison even further, much like a good, 4-5 star restaurant, Threes has seen moderate success and positive reviews, reinforced by a meet-up with the Tetris guy as well as this write-up in Wired. And somehow, despite the fact that both McDonalds and 2048 will never receive that kind of recognition within their respective industries, their success spread like a global virus, far overshadowing the fancier, prettier Threes.
But that doesn't mean 2048 (and McDonalds for that matter) suck. They may be less appealing, less glamorous, less erudite. Yet somehow they still managed to overtake the competitors. McDonalds by being one of the best real estate plays in history (read: real estate, not food), with some pretty good marketing. 2048 by being addicting and easily modifiable, leading to countless riffs and remixes all pointing back to the original github repo.
There's certainly a lesson to be learned in that, somewhere.
This quote from the Threes creators jumped out at me more than anything in this article:
We do believe imitation is the greatest form of flattery, but ideally the imitation happens after we’ve had time to descend slowly from the peak -- not the moment we plant the flag.
This might be why everyone has made such a stink over 2048's huge success relative to Threes. Not because Threes necessarily deserved to win, but because it all happened so quickly that they never really got the credit they felt they had earned.
But the key word there: "felt." They felt they deserved the crown but 2048 snatched it away before they had a running chance. (Plus, to add insult to injury, people were soon calling their game, Threes, the thing they had slaved tirelessly on for over a year, a mere 2048 clone.) Their blog post on the issue reeks of frustration and pent-up emotion. Quite understandably. I'd be upset too.
But let's step back for a second. When creating a game, especially as a small indie developer, one of the risks is that your idea might be cloned. You can try to offset this risk by putting enough time in to make sure your product stands out in the crowd. And, to be fair, that's exactly what Threes did -- their attention to detail really shines through. This approach has proven to work in plenty of cases, where the rip-offs just don't quite have the same mass appeal as the genuine product.
But unfortunately no matter how good your product is, some ideas are just more easily cloned. And 2048, which was released for free with source code on GitHub and an MIT license, was a game that shouted "clone me," and so people did. It's really hard to compete with that.
It's especially difficult when the "clone" you're competing against is less of a game and more of an endorphin rush. 2048 gives immediate gratification and keeps the rush constant, while Threes, despite a better fun ratio, simply requires more mental energy to play. It's amazing how only a few small tweaks the formula can create such a spike in addiction.
The creator of 2048 claims he had never even played Threes before releasing his version. Instead, he based 2048 off of another game by the same name, which itself was based off of '1024!', which now claims to be the 'original 2048' but undoubtedly started as a Threes clone.
So here we have an immensely successful game that is at least two steps removed from actually being a direct "Threes" clone, and is released as a side project for fun and for free, yet the claim is that 2048 sucks and Threes is awesome because the team that built Threes spent months refining and designing the game, while 2048 just appeared out of nowhere with seemingly very little effort and ripped-off their idea. Despite that being the major risk when devoting so much time and resources to an indie game.
Unfortunately, time sunk into a project does not equal entitlement. It's an interesting case study, and one I hope indie game designers can learn from going forward. Perhaps we'll see more indie games being released in the open source, "clone me" fashion, hoping to ride a bigger wave. Or maybe not. Either way, it's hard to say if Threes actually deserved more success, since 2048's vehicle for release spawned so many riffs, remixes, and iterations. I don't think the same could have ever happened for a closed source iOS game.
2048 was released for free, with source available on GitHub, at no profit to its author, Gabriele Cirulli. He claims he didn't even know about Threes at the time, and based 2048 after the iOS game '1024!' as well a web-based game also called 2048: http://saming.fr/p/2048/
Comparing the two web-based 2048s, it's obvious where Cirulli drew most of his inspiration. And his 2048 is clearly an improvement over Saming's, adding smooth and springy animations and a more memorable color scheme. A seemingly minor tweak to the formula, for sure, but one which undoubtedly influenced the game's success.
I don't really see what chilling with the creator of Tetris has to do with whether or not your games suck, but what I do see is the story of two entirely different approaches game development, one requiring years of patient refinement before releasing a near-perfect product (at least in the eyes of its developers), the other a more casual release for the sake of making a fun iteration on an existing idea.
In the case of Threes, success may be expected and even deserved but is never guaranteed. In the case of 2048, success was never expected and came as a surprise, but it came nonetheless. It just goes to show that no matter how hard you work on something, if your idea can be cloned by a young Italian UI designer who has never even played your game, maybe you need to start hedging your bets a little differently...
Nathan hasn't upvoted anything yet.
Designer News
Where the design community meets.
Designer News is a large, global community of people working or interested in design and technology.
Have feedback?
The stars stop about 2/3 the way across my screen, probably because my resolution is so big.