Archive for September, 2010

I love a good first person shooter (FPS) but really enjoy pitting my wits against another mind in a strategy game. It’s no secret that I’ve been wanting to remake a strategy favourite of mine for a considerable time (Laser Squad). I feel that one of its main attractions is that you are pitted against an opponent with similar strengths and gaming units meaning it is a true battle of wits to beat your opponent. Chess is probably the ultimate game in this respect.

Over the years, companies have released games with various themes, styles and additional elements requiring planning and strategic thought giving us a rich and varied choice of gaming experiences. Sadly, whether it be by design, accident or just inevitable conclusion, a lot of these games end up with the ‘brute force’ conclusion.

So what is ‘brute force’? A simple example is simply banging against a barrier until it gives way. Not elegant or skilled, just a war of attrition and willpower. Another example would be unlocking your briefcase when you’ve forgotten the combination. There are 1000 possible combinations of digits and trying each one in sequential order will get you the answer eventually. Great if the code is 0000, a pain if it’s 9999! Again, not skilled or elegant, just a war of attrition and willpower.

So how does this occur in strategy gaming? Well, generally the ‘pieces’ you are given have strengths and weaknesses which seem to follow a ‘scissors-paper-stone’ pattern. Your infantry unit can walk around land mines but are vulnerable to tanks squishing them, tanks go boom over landmines but can pretty much squish or boom infantry but infantry can manoeveur around fixed placements and tanks quite easily. Yes, it can get complicated very quickly and this is where doing your homework pays off when playing other players. Some ‘pieces’ are ‘super pieces’. Nuclear weapons, laser satellites and so on. They seem to have the upper hand over most of the other pieces on the board. So what does every player do? Keep banging away against the opposition until they have reached a point where they have these ‘super pieces’ and then brute force their way to victory! Add to this the fact that on higher gaming difficulty levels, you tend to see the same things being done to you (i.e. pump out resources until you have an unbeatable army then march onto the enemy base) and the game gets rather predictable.

Is that even a strategy? Well, in the broadest definition of ‘strategy’, yes. Yes it is. Sadly it seems to be the common strategy your average gamer opts for. No skill or specialist knowledge required. Get your big guns and shoot at will. Saying that, your true strategist will absolutely annihilate such a player in online play. How? Using knowledge as a weapon!

I recall playing Dune 2000 a decade ago (strange that) and I was using some brute force against the AI. I was making slow headway but could see the game taking a couple of hours, by which time all the spice will have dried up and we’ll end up with a ‘last man standing’ scenario. I decided to get clever and sent a couple of scouts to er… scout the AIs base. I found that there was a gaping hole right at the back of the base where the wind traps, construction yard and storage silos were guarded by a few tanks. A brainiac idea came to me. I built up a fairly sizeable force and a small, building-busting force of about 6 tanks. I carefully moved the tanks to within spitting distance of the hole. Moved my massive army to the front of the base and let rip. Suddenly, all the guardians of the special buildings moved to the front of the base to fight off the invaders leaving me a free run in destroying all their production buildings. Conclusion? They repelled the invading force but had no means of replacing the lost buildings or replacing the lost units. My next attack took out the base and victory to me. Success in 15 minutes instead of 2+ hours. Brains over brawn. A big thanks to Arnold J. Rimmer for an adjustment of his original tactic. Any mention of ‘Risk’ stories will be dealt with severely!

So back to the question… Can we counter ‘brute force’ wins? Sadly, I don’t think we can. If we only had games like Laser Squad and Chess, we’d lose a massive audience of players who enjoy such games but either can’t grasp or can’t be bothered to grasp the intricacies of the game. No interest means no games get made. Disaster!

The only way I can see of reducing the opportunity to ‘brute force’ is:

    – Reduce availability of ‘super pieces’
    – Improve the AI to intelligently counter opposing pieces properly
    – Put a cap on player pieces
    – Limit resources thus forcing tough decisions to be made

Some of these seem to have been implemented in many games already whether it be because of machine/application limitations or a conscious decision to make things fairer. Let’s read these in more depth:

Reduce availability of ‘super pieces’

Only being allowed to have one or two of a ‘super piece’ and/or forcing a long period of time between iterations of such a piece will limit the player in what they do and how they use it. i.e. forces them to use it strategically! Building a force of 10-15 ‘super pieces’ and marching onto the enemy base is textbook ‘brute force’.

Improve the AI to intelligently counter opposing pieces properly

AI is still relatively infantile in the world of research but in limited-scope applications it can be quite brilliant. A strategy game is a limited-scope application and even the poorest of strategists would know to use kryptonite against Superman and if they see the wicked witch of the west, they know they should be off to the kitchen to get a bucket of water. AI in games doesn’t seem to think of the defensive/counter approach very much. If the player is throwing horsemen at you, start generating pikemen to counter! The same if the player is using tanks to defend their base, use missile-carrying soldiers to take them out! Force the player to use their guile and skill!

Put a cap on player pieces

In all fairness, a lot of games use this anyway. It’s included as a point of note. It’s either that or you get an army of thousands marching onto the enemy base.

Limit resources thus forcing tough decisions to be made

Isn’t Tiberium wonderful? Constantly available but refreshing itself over a period of time. A big part of decent strategy is making the most effective use of your resources! Having a neverending supply doesn’t make it any kind of disadvantage. Limiting the resources forces the player to spend wisely.

This list is probably not conclusive but I feel that a stronger implementation of those features will make the modern strategy game more er… strategic.

VN:F [1.9.22_1171]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Remakes – What makes a good remake?

Over the years we’ve seen many classic games appear on our favourite platforms. They’ve fitted into all kinds of gaming genres, various backdrops and at appropriate times in the world’s history. Looking back at some of these games, they tend the all fall into three categories.

    1. The game itself is as great as ever but looks dated
    2. Streets ahead for its day but is now old hat after a replay
    3. What on earth did I play that load of rubbish for?

Whatever the reasons are that we liked a particular game, we decide to remake it so we can reminisce about ‘the good ole days’, to add or improve the original to how we’d like to see it, to enhance the whole game experience for the 21st century or just because we can! But what exactly makes a good remake?

The announcement of the new XCom game by 2K Games has been met with both excitement and disappointment. This is for many different reasons but what I feel is the biggest reason people are a little disappointed is that it seems as if the development company are breaking the golden rule of a much-loved mythos, that being DON’T MESS WITH THE HISTORY!

There are great examples of where the Mythos has been messed around with and actually improved the whole thing. “Battlestar Galactica” is something I was totally against when the ‘re-imagining’ was announced a few years ago. It is now one of my all-time favourite shows. Why? They improved it! Gave it more of an edge. Fleshed out the stories, added depth to the characters and made it very tense and exciting. Saying that, there are other examples where messing with the mythos actually made things worse. My example being Rob Zombie’s “Halloween” movie remake. Yes, it is interesting to know the background to Michael Myers and what happened to send him over the edge. The thing is… you just removed a major ‘fear factor’ from the movie. That being the fact that you don’t know what happened or why he is doing this. Is there a pattern to his killing or is it totally random? Random or a hidden agenda is far more scary than knowing he won’t kill character x because of a well known reason. So there are arguments both for and against. Personally, I prefer to keep the mythos unchanged – espeically one so well established and loved as you’re effectively alienating your core market.

So, back to gaming and the question at the top of the page. What makes a good remake? In all honesty there is no definite answer. One man’s passion is another man’s hate. Remaking a game with retro-style graphics is something someone may love but is probably a pet hate of someone else. Making a perfect one-to-one remake of an original game may be job done for some but a missed opportunity for others.

This means there are no hard and fast rules but I think I have come up with a general set of guidelines to follow to maximise your audience:

    1. Keep what made the game fun in the first place!
    2. Remember it is YOUR remake and YOU have final say in what is implemented.
    3. Feedback is important, listen to it!
    4. Don’t be afraid to ask for help or suggestions.
    5. Set reachable targets and meet them.

Confused? Don’t be. Let’s summarise each point:

1. Keep what made the game fun in the first place!

When all is said and done, you loved a particular game because it gave you hours of entertainment. “Head Over Heels” was an isometric game, would making it 3D add, detract or keep the same level of fun? Would adding more enemies in “Space Invaders” improve the experience? Why did you keep coming back to the game time and time again? Don’t implement features for the sake of it. Change or add something ONLY if it will add something to the gaming experience.

2. Remember it is YOUR remake and YOU have final say in what is implemented.

YOU are remaking this game. If you get help, you’re part of a team remaking this game. This means that you are going to have to fulfil every promise you make. If you think the ghosts in Pac Man being resurrected before the pill timer ran out was unfair, don’t implement it. If you think that once eaten, resurrecting the ghosts where they stand 3 seconds later would add something to the game, implement it. (as a side note, I think they are lousy suggestions, I’m just giving examples). This leads back to point 1 – the game must be fun or you wouldn’t play it!!

3. Feedback is important, listen to it!

There was a recent debate on RR regarding feedback. If you don’t want to hear negative comments about your remake, don’t ask for feedback. At the same time, don’t expect many people to want to keep playing your game either. The people on RR are gaming veterans of 20+ years. They know what is enjoyable and what isn’t. A subset of them have remade games too and know what the pitfalls are and can make great suggestions regarding what to fix or add to your game. Their suggestions could mean the difference between having an average game and a classic remake! Of course we don’t like being criticised but if we don’t embrace and learn from our mistakes, we don’t move forward and keep making the same mistakes time and time again. Again, this points back to the previous point, it is up to you as it’s YOUR remake but these guys want to help you. Let them!

4. Don’t be afraid to ask for help or suggestions.

This is an extension of the previous point. As well as asking what you can fix, you can also ask people what they’d like to see in the game too. Personally, I know I just can’t draw to save my life. I asked for help with Monty and got the talented LoBo pumping out sprites and screens at will. I still need to come back to that project but his work allowed me to concentrate on what I am good at – coding! Admittedly, people won’t just pop out with offers of help if they think their efforts will be wasted. Put together some code. Rip the original sprites and sound effects and knock together a small demo. It only needs to be a room with some of the gaming features working. If people see things are progressing, they’ll be more inclined to offer their help. I also got many suggestions for new features and fun things to add to the game. Things I just didn’t think of. It may be YOUR remake but it doesn’t mean you have exclusive access to all the best ideas out there.

5. Set reachable targets and meet them.

When writing any application, you need to plan and set targets. More importantly they need to be realistic. While building Monty, I set the main objectives to be things like:

    – Implement collision detection with Monty and enemy
    – Animate Monty
    – Make screen drawing routine more generic
    – Add sound effect when Monty jumps

These are simple things you can probably implement in a few lines of code in most cases. Sitting down and achieving 3 or 4 of your objectives in one sitting is a great ego boost and encourages you to do more. You can then set more objectives for next time. Before you know it, you’ll be ready to write a room/level editor and throwing out a small demo for the community to try out, review and give feedback on.

I hope I’ve allowed a few of you to think more about what is involved with remaking games and given you all a few ideas as to how to make the most of your time.

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Assembler – How it works!

Ok, I wanted this to be a C# and XNA blog but, as a related aside, I’ve been wanting to learn Assembly Language since I first became aware of it as a 7 year old. It was the language all the great 8-bit games were written in and nearly 30 years later my interest hasn’t really diminished. I’ve always felt that knowing how the machine under the hood processes your code is going to be a help in writing more efficient programs in whatever your language of choice is. I just never really got around to it. I’ve been toying with remaking Laser Squad for years. It’s a personal favourite and still very playable some 23 years later. Extracting the stats and learning how some of the pathfinding routines work would require some reverse engineering meaning I’d need to learn Assembly.

Anyway, a few weeks ago I asked fellow members of RR if they knew of some good resources to learn Z80 Assembler for the Amstrad or Spectrum. Emulators are freely available and generally have some excellent features so I thought that if I could get hold of some tutorials, I could have a read during my lunchbreaks and pick up the language over a number of weeks. I’ve done computing at GCSE, A-Level and degree level and knew loads of theory but never actually got taught how to write Assembler code. Lessons on “Twos Compliment” and “Binary Coded Decimal” as well as learning what a mantissa is, understanding how stacks and linked lists work is… Yawn-o-rama! I expected it to be a hard trek but…

THERE IS NOTHING TO IT!

All those lessons. All that boring theory. What would have helped? Giving a bloody context as to why we were learning all this. I expected numbers and things to be stored automagically in these formats and I had to be aware of them. I was also very confused as to how we’d know what was stored in which format. If the lecturer had simply said, “These are not mandatory, they are just efficient ways to storing numbers on a computer. It is up to YOU as to which you use, when and why you use them” I’d have probably learnt Assembly language years ago. I can sum up Assembler as the following bullet points:

    – You move numbers around using memory addresses and registers
    – Some registers are more important/useful than others
    – There are flags indicating something has happened
    – You can change bits using AND, OR and XOR
    – There are conditional jumps – basically ‘goto’ and ‘gosub’
    – You can call firmware routines directly to do stuff
    – There is a stack to store information while you use a register for something else

That’s pretty much it! If you want to store numbers as 16-bit values or 8-bit twos compliment, IT’S UP TO YOU! Naturally it requires a lot of coding to do some very simple stuff but you are poking about with the giblets of the machine and that’s delicate.

If you’ve been thinking about learning it for a while and have (like me) been put off by A-level teachers teaching theory without explaining its purpose, give it a go! The thread is easy enough to find on RR, the Amstrad tutorials are great and WinAPE is incredibly powerful. If you have any problems, drop me a line and I’ll try and point you in the right direction.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)