C# / XNA: Passing Class instances (objects)

So, not being an expert I was trying to find improved ways of managing external class member access  without resorting to “public static” and ideally wanted an object orientated method, a while ago we were told by Rob Miles how classes or specifically instances of classes (objects) are passed by reference. I understood this however I didn’t really join the dots together for one useful implication it has::

Passing objects as parameters allows the receiving Method and potentially it’s Class, access to the objects members directly. (since its a memory reference to that object, not a copy).

It maybe obvious to some but ultimately,  it means you don’t need to keep feeding objects in as parameters for update methods to show changes, you can just do it once and store it there as a class member. The objects members will all be directly accessible from within that class, even if they are changed elsewhere in your program/game.

I think the thing that didn’t make this obvious to me is the fact that if you pass a class instance member variable instead of the instance itself, this behaviour doesn’t work, you just end up with a copy of the member variable at the point of being passed, but that’s because it’s been passed by value, not reference. Additionally, I found myself repeatedly passing object instances into Update methods, which worked but simply wasn’t needed since a ref could just be passed once and stored for the class. In the context of “Sweepy Cleaner” our Uni course work project, the below highly contrived examples highlight what I mean:

Pass by value Example:

Pass by Reference Example:

The other obvious good thing about passing the class instances instead of specific member variables is that you can of course access all members of that class instead of just the ones you pass. Additionally, it gets around the need to use public static for easy but rather lazy access of class members from outside the class, because only the classes you pass the instance to will be able to access it’s public members, and if you combine with “accessor”/”getter” methods I guess they don’t even need to be public.

(I’ve heard bad things about getter/setters too because it goes against the object orientated nature of C# apparently, but I’m not too bothered about that at this stage).

Anyway, you can of course still pass individual members via the “ref” keyword in the parameter and arguments to achieve the same thing as above but just for a member. I personally think for XNA passing the instance just seems a sound way of doing things. I’m not sure if there are repercussions to doing it like that, but so far it seems sound and hope this may help others who also hadn’t realised its usefulness.

Mass Effect 3: It’s art, oh yes

So for a while now I’ve been wanting to put some games stuff on here and so what better game to start with then Mass Effect 3, now I’ve finished it…well until I replay the end again to get the one I want!

Over the years there have been very few games that I have been able to emotionally invest myself in, all of them are RPG’s of course. Baulder’s Gate 1 & 2, Planescape: Torment, Deus Ex (original and HR) and finally the Mass Effect games. Nearly 50% of those are Bioware games and to me they have been the masters of game storytelling for years now.

Before getting into the game, I’ll mention a thought of mine on design that’s relevant to this topic:

What specifically is it about a game compared to another that enables me to A) Have the desire to get drawn into the game? B) Keep me there when I do?

After thinking on this, I feel I can pin-point it exactly down to two aspects which are more or less two sides of the same coin. A fascinating storyline for one and secondly, a world filled with believable and interesting characters that you care about. Anything else when it to comes RPG’s is really quite irrelevant when considering immersion, but that doesn’t mean the rest isn’t important; on the contrary this is the core difference between games and other forms of art medium, an extra facet that says you must not use just visual art and aesthetics, not just music and sound, not just cinema and story telling. The true greats and games I view as art are those that combine all these disciplines perfectly and create in my opinion the most rewarding form of art and entertainment. The key differences between movies and games are blurring as the years go on but the pivotal difference is obviously human interaction, and its this interaction in my opinion that makes the potential of games infinitely greater then movies. We are now at a point where games have the ability to rival the story-telling AND visual might that has always been firmly dominated by cinema, and in the last 5 years that gap has narrowed.

ME3 Story: 

I’ll start on the best aspect of the Mass Effect games, the story. The core storyline itself is excellent but not a masterpiece by any stretch, and anyone who has read their fair share of sci-fi novels will likely agree with this. The thing that Mass Effect does so right is the world or more appropriately the galaxy, which is easily one of the most detailed and believable science fiction settings outside of Star Wars, Star Trek and Dune and certainly when it comes to games, takes the crown.

The colourful arrays of alien species and their designs, the politics and relations between them and the myriads of intertwined histories and lore that have been created by Bioware are an absolute triumph and the games strongest asset. Does this alone make the game great? Not at all, but it’s what makes the series stand out, it’s what draws you into the game and keeps you craving for more and it’s also what makes the rabid fans judge ME3 so harshly when they don’t get the ending they envisioned.

I mentioned that the characters in the game are some of the best assets of the game and non other then the main protagonist herself “Shepard”. Yes, I write herself because I’m firmly in the “femshep” player category. A little on that point, Its the first time I’ve played a female in an RPG, and I did so because of the laughably bad voice acting on the male Shephard, and to be honest if it wasn’t for Jennifer Hale’s mind-blowing voice acting, I doubt I’d be into Mass Effect as much as I am, if you haven’t tried a renegade femshep yet, just do it, seriously!

I’ve grown quite attached to my character over the years and with probably 100-200+ hours of game play spent in such an engrossing series of games, making the right (and sometimes wrong) decisions, killing villains, liberating innocents, romancing blue aliens (read on), knocking out journalists not once but three times, stopping immoral scientific experiments,  discovering lost technology, exploring the depth of space, curing plagues, saving entire races from extinction, and of course not forgetting saving the entire frickin galaxy from the clutches of synthetic gods…not bad for a few hours of game play eh?

The unique aspect of Mass Effect and one of the best design decisions they ever decided to make was the feature of importing your character from the previous games and remembering your past actions. This has given the whole journey from ME to ME3 a feeling of grandeur that I had only experienced in Baldur’s Gate 2 prior, and of course books. Thanks to clever writing from Bioware, you do get the sense that Shepard has experienced more shit then any human ever should (untold billions of lives in your hand) and the character does seem to progress as the series moves on, highlighted extremely poignantly by the death of a child in the first part of ME3 and whom clearly leaves a scar on Shepard.

Even with all that lore and history Mass Effect would feel pretty dull if the NPC’s were generic and dull (Skyrim’s undoing) but thankfully the characters that join Shepard and even a few who don’t (The illusive Man) are full of depth, emotion and intrigue and quite a bit of humour. My characters lesbian romance with Liara, an Asari (all female blue alien species…yes I know)  which continued from ME1 just goes to show how amazing this game is if the sentence I’ve just written doesn’t equate in-game to something as ridiculous as it sounds on here, but in fact after completing it in ME3, it is amazingly executed with maturity, depth and is really quite touching *sniff*, by all accounts it’s one of the better ones available in the game and ends with a cool spock-esque mind-meld scene.

10/10

Graphics:

Graphically despite the game looking and running beautifully, I have some issues here, some that took me a fair few hours to get over. Animations. For some unfathomable reason they decided to make run animations utterly ludicrous and I have spent nigh-on 50 hours watching Shephard run like a gorilla. It’s obvious they also used the same run animations for the male Shepard as the female, so yeah, she runs like a butch heffer who’s just given birth. It’s not too noticeable in the missions in full combat gear but in casual clothing in-between combat sequences it’s pretty awful. I wouldn’t complain, but it was absolutely fine in ME 1 and 2, so why ruin in now?

The cinematography in the game is fantastic, with some incredible set pieces involving colossal Reaper’s raining destruction down on worlds and the most epic fleet battle I’ve ever seen (the whole galaxies fleets coming to Earth’s defence), quite literally jaw dropping.

8/10

Music and Audio:

Another high point of the series, the music previously done by Jack Wall in ME and ME2, didn’t have him this time around but quite honestly, the music is even better. Music in games for me is an entirely separate subject for a blog post which I’ll do at some point, but  one thing I strongly believe is the soundtrack should never be underestimated. Even people who are not audiophiles can often be emotionally or otherwise benefit even subconsciously having more fun from a good soundtrack. Looking back, just about ALL of my favourite games had great scores. Game scores really should get more credit and attention in the industry but that’s just an irrelevant point to this post. ME3 music rest assured adds a perfect blend of tension, adrenaline and melancholy and is quite appropriately epic.

The games audio has noticeably  improved as well and you can tell they have really gone to town on the weapon sound effects, it’s certainly a game I’d unquestionably recommend use of good headphones with and there’s few games I’ve played with as satisfying “pew-pews” as this. Sniping a Cerberus trooper in the head with a Black Widow V rifle is as good as it gets I think.

10/10

Game-play:

I won’t spend much time on this since ME3 plays more or less as the others. You know what it says on the tin and you get what you expect. It’s a little more “shooty” this time around but that’s no bad thing if it’s still fun but I do have some niggles. Firstly, the journal and quest log update mechanic is just useless if not nearly absent entirely. The first time you get a task it makes a note in your journal as you’d expect but some tasks have multiple progressions to them involving finding different people or objects but the journal is NEVER updated, ever. So if you missed the audio prompt from an NPC, its pretty much time to google it since the on screen nav points seemingly appear at random and very rarely on the citadel. It’s not a show stopper, if anything it gives you more time to explore and soak up the great atmosphere of the game but there’s only so long your going to look for an NPC without getting a little frustrated, that’s a nice way of putting it.

Reaper’s chasing you if you scan too much on the map screen is the other annoyance, but then again ME have always had these annoying meta game issues. ME1 had exploring planets in the vehicle (which I liked but most appear not to), ME2 had the most annoying one I think with the mineral harvesting, it really was less fun then Mine Sweeper. ME3’s meta game is annoying but can easily be exploited by leaving the system and endlessly re-entering the system until you have everything…just seems a little crappy and not very well thought out, but again it’s not serious and it’s picking at what is otherwise great game play

9/10

Summary:

All in all I had an absurd amount of fun playing Mass Effect 3 and all the others in the series.The end is a little bitter-sweet. It’s great that I’ve experienced it all and not for the last time I’m sure, but it’s that finishing a good book feeling that you rarely get in games that leaves you a little sad and that I won’t experience the Mass Effect galaxy like it was with unknowing eyes via my feisty/slightly unstable Shepard that I’ve grown rather fond of. That sentence there is likely the cause of the fury over the endings, it’s peoples unwillingness to let go of what they have known and loved and to make way for change in the storyline as per Bioware’s wishes. Personally, if that’s how the story was designed, who am I to change it? And if they do alter the ending as it is rumoured, it’ll never have the same impact.

It’d probably keep me awake at night trying to decide if any Mass Effect game tops Baldur’s Gate 2 or even Deus Ex 1, but when the ME series is taken as a whole they are perhaps greater then the sum of their parts and are certainly up there amongst the gods of gaming. A real achievement in gaming, this ones for you Shepard…

9/10

Mass Effect in a word? Masterpiece.