When Mods Break: Incident Not Initialised

Incident Not Initialised. It’s a fairly informative error message. It tells me that I’ve broken one of my mods again.

To explain in more detail, I had a lucky break today when I released a broken update for a mod on Steam and here on the site. I might not have noticed the problem until some irate user complained about getting errors. As it turned out, I had a feeling that I’d done something wrong, so¬†I loaded up RimWorld and did a bit of basic testing, finding an error right away.

This isn’t the first time I’ve managed to break a mod that was working fine by adding a new wrinkle and then not doing all the necessary testing. In future, I’ll have to stop and¬†think about whether I’ve really covered all the possible cases.

Because I didn’t. I loaded up an existing save, didn’t see anything immediately wrong, and then I went ahead and updated the mod on Workshop. What I should have done was start a new game and fired the Solar Flare incident at least once. ūüėõ

However, I did come up with a fairly neat solution to the problem.

Basically, my modded incident worker in the original DLL did not inherit the necessary features to work properly, because I goofed and set it to inherit directly from IncidentWorker, instead of IncidentWorker_MakeMapCondition.

What a dumb mistake that was. Maybe I meant to type that in full or copy and paste, but obviously that didn’t happen and now I’m writing this cautionary tale.

I don’t have a code repository and I wasn’t at home so I had to copy my mod from the Workshop directory, decompile my DLL, and make a new project to patch it. The decompile wasn’t clean because I didn’t think to download Zhentar’s awesome fork of ILSpy from his GitHub. So I had to fix a few little things here and there.

Maybe now I will consider the benefits of using a repository.

Anyway, the neat part is that instead of overwriting the entire DLL, I just needed to¬†add a second¬†one and point to that one instead from the incident XML file. The broken class is still there in the original DLL, but it isn’t referenced.

Good enough for a quick fix.

Obviously, this isn’t an impressive feat in the eyes of a professional coder. But that’s not the audience I’m writing for. There’s plenty of modders out there, experimenting with¬†all sorts of¬†interesting stuff that they might not know the ins and outs of.

If one of them is you, the point I’m trying to make is that your projects don’t need to be single monolithic screeds of code. They can be modular. And it might make it easier to fix things when they go wrong.

Obviously for the purposes of efficiency you might want some things to be bundled up in the same library, but it doesn’t always have to be so.

Thanks for reading. ūüôā

Usefulness of Steam review ratings

Have you ever looked at the summary rating for a game on Steam and wondered, ‘Is this biased?’ Or maybe, ‘Is this even a useful indicator?’

Steam review ratings lie on a continuum from Positive to Negative with Mixed in the middle. Quite often, a rating of Mixed is a death knell for sales because not only does it indicate that about half the reviews are negative, there’s actually a colour shift to orange.

However, reviews are themselves subject to a helpfulness review by regular Steam users. They can be rated helpful or not helpful (or funny).

In this way, reviews have a summary judgement of usefulness before you even read the review.

However you should be aware that this system can be hijacked by Steam users who simply disagree with the review.

Negative reviews, for whatever reason, get carpet-bombed with downvotes within a few days of being posted, while positive reviews are barely acted on in any way.

While this mass downvoting may not affect the impact a review has on the game’s rating, it does affect the reviewer who has taken a stand, highlighted the reasons why someone shouldn’t buy a game right now, and consequently are lynched by a silent mob. Some simply remove their review rather than watch it get dragged down to 10%.

In addition, reviews which are in the ‘Positive’ section may make you wonder ‘well, why is this reviewer still saying to buy this game despite the reservations they have about it?’

The conclusion I draw here is that Steam ratings may not always be an accurate indicator. There are factors which should make you cautious of a positive rating, but st the same time you shouldn’t outright dismiss a game just because the rating is Mixed, nor should you take it for granted that an controversial review is actually unhelpful.¬†There’s always someone with an axe to grind, and an open system of review can be subverted by them.

Game Review – Galactic Civilizations III

Performance

GC3 runs well, with not much waiting between turns. I was able to play to the end of a game on an immense-sized galaxy without encountering any performance issues, even on my fairly antiquated dual-core rig.

If you plan on streaming this game to Twitch though you will need a significantly more powerful computer – at least quad-core – otherwise framerate and turn processing will suffer. This is not a criticism, but rather a suggestion to be realistic with your expectations.

I did not encounter any stability issues with the release versions of GC3.

Gameplay

It ticks a lot of boxes in the 4X genre. It’s rewarding to explore, expand, exploit and exterminate. With the recent starbase update, turns are even more streamlined as constructors of your choosing are built automatically and sent to where they’re needed. You can further tweak this to suit your needs.

I feel that there are a lot of supported play styles, although the AI will not look on you favourably if you claim to be a major galactic empire and yet have no fleet worth mentioning.

I found myself trying different races and even different custom races and they all seem quite fun.

Artificial Intelligence

I found that the AI players were a bit dumb on the Normal setting. They don’t seem to adapt very well to the state of play and the galaxy settings.

Specifically, if there’s an unmet player trying to win a Technology victory, there should be an effort to find out where that player is. ¬†I made contact with the Drengin only when a survey ship went through a wormhole ¬†and ended up in their space.

Playing with tight clusters on a large map size means that the AI has a much tougher job of getting to the other side of the galaxy.

However, the AI does react adequately well when you mass a fleet with exclusively one weapon type. This means that there is now an incentive to diversify the weapons and defences on your ships.

I did not find that the AI made adequate use of ship roles, for example capital ships which are outfitted with a full load of weapons and are protected by escorts. During play it seemed that they almost always designed escort ships.

Some old exploits from GC2 still work in GC3. For example, you can lure an enemy ship to an ambush using an unarmed scout ship. It’s not clear whether this scout-chasing is all the time, or only when you make it easy for the hostile ship to keep up.

Diplomacy is a bit of a mixed bag. On the one hand, there are modifiers which can be easily understood and considered when you are dealing with AI civs diplomatically.

For example, if you set up a trade route with a civ which has¬†a particular ideology, civs with an opposing ideology to that civ will think poorly of you as a result – ‘You are trading with an infidel.’

On the other hand, a civ which has just met you can have all sorts of negative modifiers. This is particularly prevalent among major civs, and some of these modifiers could do with a sanity check. For example, ‘You are ripe for conquest’ indicates that they believe you don’t have a sufficiently large military to protect all of your empire. However, if you are well outside their travelling range, it scarcely matters how pathetic your military is because¬†going to war with you would not be practical without further research and/or range extension via starbase building.

Graphics

Graphically, I find this game to be very well-presented. There’s a massive leap in texture quality from GC2 to GC3 throughout the game. I did feel that in ship combat the laser weapon effects could be improved upon, and engine trails need a bit of attention in those situations where a ship is turning but not moving forward, because you get odd-looking sideways engine trails.

The default ship parts and complete designs are gorgeous. There’s a considerable selection of ‘jewellery’ parts to build your ships with.

Planet textures are very nice and there is a variety of them, from burnt-red worlds with active cores, to lush green paradise worlds.

Nebulae, gas clouds and other cosmic bodies are welcome additions which are again, quite nicely textured and animated.

Sound

There are some quality soundtracks to listen to while you’re exploring and colonising the galaxy. My only criticism here is that because this is a strategy game and it can take a while to finish a game, it does get to the point where you just turn the music off for a while.

The sound effects are spot-on, not too subtle and not too obnoxious. Well, except maybe the shipyard anchor/unanchor sound!

Modding

The resources for modding are not where I think they should be. For example, the modding readme file has a glaring error¬†– it says that if you create a folder called Game in a given mod folder and put XML files in there which add to or override definitions in the game’s XML, that will work. But actually, a path of data/Game is needed instead.

The Steam Workshop for GC3 only features custom races and ship templates. Actual XML mods must be distributed and installed outside of Workshop. While I realise that Workshop integration of mods is far from simple, these days it is quite easy to overlook the efforts of modders if there is no Workshop visibility.

I was able to make some simple mods of my own work, so apart from the above reservations, the implementation of modding is okay.

Replayability

This game, to me, is a serious contender for multiple playthroughs. The victory conditions are perhaps not equally good in this respect, however. I don’t really look forward to pursuing another research victory in a future game, for example, but there are other ways to win and other races to try so that does allow for a significant amount of replay value.

Some people are a bit critical of the DLC for various reasons, and I did not play with any DLC installed, but they do offer additional replayability so in that light they are worth considering.

Other features

Something that I feel is missing from GC3, and which I made quite clear I would like to see in the game, is the ability to customise the savegame/userdata folder. This could be done using a command-line argument.

Ship designs are generated automatically with the discovery of new ship component technology, whether you want them or not. This is nice for people who don’t want to design ships, but not so good for the rest of us.

Ship components can be placed automatically onto well-suited hardpoints with a double-click, and there are gizmos to further customise the size and placement of ship components, which allows a degree of freedom in ship design which I have yet to see paralleled in another game with spaceship design.

Included among the many ship components are carrier bays, which allow you to recreate the days of the original Battlestar Galactica series if you so wish!

Planetary improvements have an interesting adjacency system and bonus tiles play well with them. Basically, you can get extra production if you place an improvement on the right hex, or next to a similar improvement.

Furthermore, when using terraforming projects, you are allowed to choose which tile to make usable. The better the tech level of the terraforming, the bigger choice of tiles you can improve.

When making ideological choices in the game, you can gain a number of ideological traits. Normally you will need to make an ideological choice each time you colonise a new world. I’m not enthused about all of these traits, and sometimes I wish that there were alternative traits at a given level, but overall it seems to be a good mechanic.

It is possible now to see at a glance how well your fleet will do in battle against another fleet, planet defence, starbase or shipyard.

Conclusion

This game has a lot to offer someone looking for a 4X strategy experience. I found that I had a long phase of experimentation and learning how to play well. Having learned the ropes, and with the game now on version 1.7, I have sunk some serious time into playing this game.

I have found it to be fairly challenging and worthwhile, and I have watched some glorious ship battles go down, but at the same time these were usually battles in which I was confident that my fleet would emerge victorious.

This is technically a downside of the battle result prediction system – you won’t really be surprised by the outcome if you clearly have the upper hand, but if you are at a disadvantage you’re more likely to avoid the battle so there is a bias in player experience unless the AI has vastly superior fleets which can outmanoeuvre player fleets.

That’s not necessarily a bad thing. Battle result predictions were in Civ 4 and, going back a little further in time, Alpha Centauri could project a likely defeat if you were about to make a reckless attack at one-third strength. And it’s not like you can’t just look at the numbers and come up with your own educated guess about the battle’s outcome.

As any regular 4X player knows, wars are technically won by economies. As an extreme example, if you have inferior technology but you can smother your opponents with an overwhelming mass of tiny disposable starfighters, then you win. Research, manufacturing and wealth generation will shape the fate of your galactic empire, assuming you know how to run it.

While I have presented some shortcomings of the game which I feel could be addressed, I’m happy with the state of the game at the moment. I hope that Stardock’s continued support of this game marks the beginning of an enduring effort to eliminate the extraterrestrial threat.

Sorry, couldn’t resist.

Game Review – The Sims 4

Performance

The Sims 4 has outstanding performance compared to its predecessor. Load times are considerably reduced.

However, it should be noted that The Sims 4 achieves this by making worlds (neighbourhoods) quite small. You can travel between them, in fact you probably have to if you want to see any nice venues. The world maps are quite simple which again, probably contributes to speeding up load time.

I can’t really argue with this particular design choice, because it achieves a much needed improvement over The Sims 3. Yes, you could toddle off anywhere you pleased in The Sims 3, but everything around you would be constantly loading in, much like The Matrix Online except not as cool.

The Sims 4 comes in a 64-bit variety (with a 32-bit version for those with older, 32-bit computers) which no doubt contributes to improved performance.

Graphics

Another plus point here. In addition to having a lighter load on performance, The Sims 4 manages to look a bit better than The Sims 3. I’m not saying that Sims look particularly great, but they seem a little bit more human. There are also some new scaling options in the graphics settings, but I haven’t done much with those except to turn Sims up to max. Lighting and texturing seems improved.

As I said, the neighbourhood maps are quite simple, akin to The Sims 1, but they’ve been rendered well and I have no complaint with them.

Gameplay

I find the Whims and Aspiration systems to be refreshing updates to aspects of the gameplay that we’ve seen before. You can choose to pursue either or not at all, and obviously if¬†you progress you can unlock things to make your Sims better at doing things or more inclined and so on. In The Sims 3 you were locked into one Aspiration at a time per Sim, now in The Sims 4 they can have as many as you would like.

Moods are now more nuanced in The Sims 4 and have effects, from screwing things up to making everything better. Keeping your Sims happy is good, it’s good, but it’s not always the right way to progress – being Focused for example, can make them better at work.

Obviously the core mechanic is still that you do fun things with virtual people, which may not be things which necessarily advance things, but are still fun.

Expansion content

At the time of writing, I have the Get To Work expansion. Again, I’m impressed with the thought and effort that has gone into making the at-work gameplay as fun as the at-home gameplay. Obviously it’s something we’ve seen before in The Sims 3 Ambitions, but it’s nicely done.

I have a little bit of difficulty suspending my disbelief as my Sim rises through the ranks at her local clinic, but each new promotion brings with it some new challenges, and I don’t just mean get to a certain skill level and you’re able to progress – I found that my poor Sim needed to take a vacation day now and then just to cope with the demands of the job and still maintain some semblance of sanity.

Lack of design choices

One of the nice things about The Sims 3 was that you could use colour patterns quite liberally throughout your creations – hair, clothing, decorations such as wallpaper, and objects themselves.

Perhaps this was also a problem, since it seems to have been cut in The Sims 4.

Bugs abound

From the minor annoyances like Sims popping out of interactions, to things like Whims not completing unless you do a particular interaction a particular way, to out and out The Sims 4 has encountered a problem and needs to close, it’s clear that quality control is still a big problem with The Sims franchise.

Looking over the patch notes, it seems that there is an effort to fix issues like these, but I feel that we’re past the stage where we should be forgiving of bugs which could have been fixed before or soon after release.

Interactions between Sims look forced and awkward

By that, I don’t mean that the animations are bad, in fact they’re nuanced and believable.¬†Rather, because of the interaction queuing system and the seemingly random choice of interactions, you have this awkward pause while the Sims arrange themselves in the appropriate locations for a standing up or sitting down interaction, then do the interaction.

Come on! This is 2016 now, if you can afford the budget to properly animate little people in a game, you can most certainly afford to sit down and decide how and when those animations should blend seamlessly into each other.

Sim autonomy is still questionable

Yes, they go and do their own thing, but interactions between Sims and with objects seem to be chosen without any coherent pattern. It’s ‘oh, there’s a Sim here, I will… roll d6… chat about work with them.’

Is it unfair to criticise what is essentially a simulator of Maslow’s hierarchy of needs. Yeah, maybe. But then again, given the amount of dollars poured into the franchise already, I would expect some sort of rudimentary thought process could be designed.

Sims should have a meta-situation in their head. This would prevent them from just wandering around their lot doing things at random, and instead require that each situation has a beginning, a middle and an end, with interactions to that effect.

That doesn’t mean to say that a given situation is on rails – if a Sim really has to pee or has other neglected needs, then they can excuse themselves. But each interaction, each situation, would seem to build upon a previous one.

Conclusion

I did start¬†this review wishing to write about some of the bad things in The Sims 4. I still believe that there is much room for improvement but, as I said above, I do like some of the difficult choices that have been made and which have provided a much-needed improvement over The Sims 3, so I can’t say it is completely bad.

I like that mood, wishes/whims and aspirations have evolved into something a bit more sophisticated. Frequently in The Sims 3 it was trivial to keep Sims happy because you had so many stacking positive moodlets. Likewise, it was a pain trying to accomplish various wishes and aspirations. In The Sims 4, you actually can feel like you’re accomplishing something in your Sims’ lives.

I think that The Sims 4 needs to lose the annoying, seemingly insane autonomy that has plagued previous iterations, and then it will be a title which people don’t snort at with derision.

It’s no surprise that bugs, especially ones which erase hours and hours of gameplay, are very annoying, and will hurt a game’s credibility. The Sims 4 is certainly not as bad as¬†E.T. the Extra-Terrestrial in this regard, but one has to wonder if lessons have been learned.

I think though that the biggest downer is, surprisingly, the interactions queue on rails. It hurts immersion a lot, it looks bad, it is bad. I’m not saying it hasn’t improved over the years, but it has not kept up and now it makes The Sims seem very dated. I cannot impress upon the developers enough the importance of updating this part of the game and making Sim-to-Sim interactions flow together and seem more natural.