I wonder if DICE came to the negotiation table more prepared and/or with something up their sleeve. It could be that EA is hands off so long as a studio produces highly profitable titles. As soon as there's a dip, snip snip.
It's widely agreed that Battlefield has been on the decline since 3 (3 being the first game released under EA). Bioware has been putting out exceedingly mediocre games since their purchase, not to mention are the laughing stock of many gamers.
Calling Mass Effect 2 and 3 "exceedingly mediocre" puts you in a camp that is, by pretty much any metric, very fair from the mainstream. And I wonder who these "many gamers" are who think BioWare is a laughingstock. Do elaborate, please.
I, for one, was extremely disappointed in Mass Effect 2 as compared to the original. As a result, I didn't buy the third.
Mass Effect, was, in my opinion, truly inimitable. While the sequels may have kept the setting and had very high production values, at their core they were little more than a sequence of cover-based setpieces and cutscenes.
Dragon Age 2 was even more of regression from Dragon Age: Origins. Origins may not have had quite the same depth as truly old-school CRPGs such as Baldur's Gate or Planescape: Torment, but it took many ideas from that heritage and translated it into something indubitably modern.
I wouldn't call BioWare a laughingstock, but they certainly haven't fared well creatively under EA.
Mass effect 2 was perhaps the best game in the series, but it was a very different game than mass effect 1. While the core mechanics were the same, it was extremely episodic and the plot was flimsy. I recall ME3 reeled it back a bit, doing away with some of the annoying exploration stuff, but suffered from third installment syndrome.
I'm sorry, but last I recall ME3 was a 20-30hour long game that is way more than just a 10-minute ending sequence. Maybe criticism of it should take that into consideration?
I don't expect to convince you otherwise (honestly, I don't expect that of anybody on the Internet, though I still try sometimes), but did you watch the linked video?
The critic (and a whole bunch of other people) did enjoy the game, and the series. Overall, I don't regret the time spent playing it. If people didn't enjoy the ME series, no one would have cared about the ending.
The short of it is that while the second installment is always a challenge, being forced to face the reality of being a sequel instead of a stand-alone story, the successful sequel usually ends up passing the buck by focusing on buildup and universe expansion. Often the sequel jumps genres or settings.
The third installment is then charged with culmination, building up tension even more before tying it all up in a satisfying manner, without the option of switching it up yet again. If it's in 3D, that means they couldn't figure it out and opted for a second sequel instead.
The fourth installment is, of course, practically impossible, and tends to be a prequel or a spinoff.
I feel exactly like you, and I'm glad I'm not alone.
For some reason though we're the exception here. Most people seem to have enjoyed ME2 more than ME1 because nobody seems to care about having an actual coherent storyline as opposed to a bunch of one-off missions, fancy graphics and a character with a recognizable face from TV.
Personally speaking, I preferred ME2 greatly because it was a modern game in the good senses of the word: competent mechanics, enjoyable combat, and a good-enough story that was presented well enough as to be able to effectively stir emotional reactions that I appreciated. ME3 continued this trend--its general rep as "ME2 but more and better" is a compliment to ME2, which I feel like is a game that could have come out today and nobody would have felt it was out of place. In terms of mechanics and structure, it was ahead of its time, and it's still very fun for me to play today.
On the other hand, the original Mass Effect is unplayable to me; that the narrative is a little (not a lot, IMO, despite retroactive claims to the contrary) tighter gets lost when the game is too frustrating to play, with unsatisfying core gameplay when you get out of menu hell to even play it. I liked many of the ideas in it--the Mako was a great idea with a ton of potential--but execution, and arguably the technology stack they used, was severely lacking. As such, ME1 is a product of that weird transitional era in games where few people seemed to really have a handle on what they were doing--a game like the original Half-Life has aged better than the ME1, and it came out many years before.
Now, isn't it funny that that bears no resemblance to hurf blurf fancy graphics recognizable face hurf blurf? But that's a real nice cross you've nailed yourself to, don't let me stop you from indulging in your self-righteous enlightenment.
That's rather hyperbolic. Battlefield 4 has done reasonably well - about 70% of the sales of Battlefield 3 since its release (1.5 years vs. 4 years).
As for Bioware, the success of the Dragon Age franchise both in terms of reviews and sales is indisputable. SWTOR is also profitable at a recurring revenue stream even though it's not huge.
I have no love for EA but there is a reason they make money - they do just enough to crank em out.
> It's widely agreed that Battlefield has been on the decline since 3 (3 being the first game released under EA).
This is so wrong, it's not even funny. DICE was acquired by EA 10 years ago. All Battlefield games except the original one were created since then.
Also it's generally accepted that BF3 was the best Battlefield game so far, with BF4 probably going to overtake it in customer satisfaction with the current Premium program.
Lets not forgot that EA took the BioWare name slapped it on a completely different studio and released mediocre games with it. DICE is in fact the exception, though they are like the golden goose, then consistently produce quality titles, I expect that if that were to change EA would attempt to terminate them as well.
DICE has barely been able to release a non-Battlefield game since EA bought them, despite a much more varied output before acquisition. I imagine that isn't too great for employees at the time who didn't want to make pew pew simulators for all eternity.
Exceptions to the rule:
- Mirror's Edge
- Need for Speed: Hot Pursuit (w/ Criterion)
- Medal of Honor (multiplayer only)
And that's it. That they weren't allowed to make a straight up sequel to Mirror's Edge, and only now are coming out with a "reboot" says a lot to me about EA's control over their output: crank out Battlefield games or lose funding.
Bioware has had some major issues under EA as well. DICE works because they create games that work really well with EA's strategy: hollywood-esque action games for the masses
Interestingly, one of the DICE founders (Patrick Söderlund) now runs both EA Games and EA Sports - meaning most of the game franchises except for the mobile and casual stuff.
This is where my curiosity lies. I wonder if the DICE founders were very sharp, knew what they were getting into, and had the leverage to set the kind of terms that would maximize their chances of success.
For example, I think they decided to keep the studio in Stockholm. That might have went a long way to keep the EA influence down and letting them focus on building blockbuster titles.
Perhaps EA is a sink or swim kind of organization (on that level)? In a harsh kind of way. In reality most franchises do eventually sink.
Thanks for posting that, very worthwhile (and entertaining) watch (though maybe a little too honest for the other people involved!).
For those who have worked in both types of environment (those that promote making things better vs those that punish you for doing something wrong) it's all too familiar.
After having spent a little too long in one of the more negative environments I made the mistake of attributing blame after a slightly disastrous event (while working at a much healthier company). My boss, rightly, told me that any blame was totally unacceptable in their culture. That's a lesson I've taken with me and I'll never forget. A culture of punishing honest mistakes will get you nowhere.
A common problem in a service oriented architecture is needed to minimize the amount of round trips to a particular service.
Example: To render a UI view, I need to fetch a list of friends, a list of posts, and a list of notifications. All 3 of these data types (friends, posts, notifications) have users associated with them. Instead of fetching users for the 3 data types 3 separate times, I need to flatten that into a single call. I end up with something like this:
var [posts, friends, notifs] = yield [
getPosts(),
getFriends(),
getNotifs()
]; // executes in parallel
var userIDs = new Set();
userIDs.addAll(posts.map(p => p.userID));
userIDs.addAll(friends.map(f => f.userID));
userIDs.addAll(notifs.map(n => n.userID));
var users = yield getUsers(userIDs.toArray());
return {posts, friends, notifs, users};
You can see where this gets cumbersome. I have to compose one of these for every kind UI view at the root level. On the one hand it's very explicit and the flow of data is very clear, but it also means relationships between data are dupicated in more than one place (often many places).
(I've used GraphQL at Facebook, but I don't work on it.)
If I understand your post correctly, I think it could. GraphQL prefers to expose full objects, rather than IDs, which lets you query for data inside objects at the same time. So for your example above, you would only need one GraphQL query:
viewer() {
posts {
node {
author { id, name, favorite_color },
// any other post data you want
}
},
friends {
node {
id,
name,
favorite_color,
}
},
notifications {
node {
source { id, name, favorite_color },
// any other notification fields you want
}
},
}
The "id, name, favorite_color" is just a sample set of fields, you could replace it with whichever your components needed. Relay also has functionality to avoid duplicating the set of fields, which is especially useful when you want to add or remove a field from what a reusable component needs.
> If you haven't spent the time to figure out why Redis is so successful, it's very much worth sitting back and thinking about it.
For anyone who hasn't explored the Redis source, do it! It's very approachable and strikes and interesting balance between cleverness and maintainability.
Actually, it does have one use. If you're a recent grad or new to the industry, pay close to attention. Don't be like this guy.
Before you envelope yourself in the comfort of frameworks and libraries, learn how to poke around the internals and understand the underlying architecture. Remember that these are tools written by humans just like you. They'll have bugs. Performance problems. Maybe an edge case the creators haven't thought of. And sometimes you'll be making the mistake.
My personal rule (YMMV) is to never adopt a framework or library unless I'm ready to open a pull request. There are obvious exceptions like databases and other huge projects. I'm specifically referring to small libraries and application frameworks for this rule.
Treating frameworks and libraries as a magical-voodoo-black-box is asking for trouble.
Moreover if you decide to write a blog post warning people not to use a framework or library, you better have some deeper technical insight to back it up. This is just rude.
- Comfortable.
- Looks nice, I like wearing it. Doesn't feel flashy.
- Does what it says it will. No buggy surprises.
- Scroll performance isn't very good.
- UI feels right otherwise. Nothing annoyed me.
- Complementary iPhone app is well done.
- Doesn't feel flimsy. Feels sturdy without feeling bulky.
- Setup is simple.
No complaints so far. If you desire the features it offers I'd say it's definitely worth buying.
Or is this just the place where I do need to catch errors and process them? And if that is so, isn't it at odds with the whole concept of writing intentional code?
No it's not. The author touches on this:
Note the word intentional. In some cases, we do expect calls to fail. So we just handle it like everyone else would, but since we can emulate sum-types in Erlang, we can do better than languages with no concept of a sum-type.
So handle errors you expect explicitly and let the rest crash.
case user:authenticate(Username, Password) of
{ok, UserRecord} -> ...;
{error, notfound} -> ...;
{error, badpass} -> ...
end,
Nothing wrong with two services using the same data source. If data locality is a concern, deploy both services alongside one another.
Or you could place the data behind an API. It would speak HTTP/Thrift/whatever and would be solely responsible for handling the data. Front the API with a cache if latency becomes an issue.
For your specific example, consider pushing data to autocomplete and search instead of having them pull.
Interesting. Are you aware of any high profile examples of this architecture?
For my own case, search and autocomplete use the same modeled data, but autocomplete for instance runs lots of precalculations on this data, so the data behind an API is not really a choice.
I wonder if DICE came to the negotiation table more prepared and/or with something up their sleeve. It could be that EA is hands off so long as a studio produces highly profitable titles. As soon as there's a dip, snip snip.