Thursday, April 30, 2020

Super Taskforcing

A super productive day today; lots added to the game that I wasn't even thinking of adding.

First, remember the post about odd things you might not be able to step on, like wire fences? Well I've fixed that problem by adding a 'can step on' bitflag to each tile. This seemed to be the easiest option, and actually it was very easy. The only hard bit was checking the initialisation of all of the objects and making sure that the right objects had it set (most things) but that other things like wire fences, and pot plants, and windows, couldn't be stepped on. Now it works much better and the silly problem of zombies walking on the fences in the shopping centre won't happen.

Here's a screenshot of my test obstacle course:

A mix of things that you shouldn't be able to step on, and some odd heights. Strange that I've rarely used the "lab table".

A huge pile of other changes today:

1. Added the ability to skip to next unit but only if they haven't moved. This was suggested by Andrew and it works very well. I might never use the plain prev/next icons anymore. 2. Changed the spider replication. This was a serious problem after I got swarmed by 80 spiders (and 8 new ones each turn!). Spiders multiply like bacteria and the problem with that is that the growth is always exponential: too easy at first but and too difficult later. I toyed with just adding, say, one or two new spiders each round, so the percentile growth would be greater with smaller numbers, but that didn't feel dynamic or realistic, and why 1? why 2? It seemed too arbitrary. I thought perhaps that each spider could, instead, simply breed once. Then the growth would never be exponential because the number of spiders that can breed will never exceed the number of spiders that begin on the level. Growth is now linear, not exponential. I've played it and it works brilliantly. I'm toying with the idea that spiders that bite become fertile again, so there can be hope for them. 3. I've added a count of targets on the mission objectives window. Another of Andrew's suggestions. This was useful to test spider reproduction rates! 4. Smoke bombs now weigh 4 instead of 5. A tiny change, but smoke bombs are not that useful so it seems silly to have them 'cost' as much as grenades. 5. Standardised lighting options (some 'day' missions had slightly odd settings), and a new 'daylight' lighting, so set all missions to that, if players want. 6. More new music, just a test for now. There is SO much music I could add, but need the time. 7. Added variable walk speed for species. I expect just about everyone will use the 'fast walk' option, but for the best looking game, zombies will now lumber a bit, and spiders will dart a bit. Until today, all units walked at the same, fairly slow, speed.

Big jobs still to come. I need to copy out all of the mission text and review it as a whole. It's not even been spell-checked and I'm bad at spotting spelling errors; the 1993 Taskforce game had at least two in the missions, and Hilt II had some famous ones (Robomorph is the brian of the sqaud - if I recall).

Typing this, I forgot to do the weekly N.H.S. clap and have missed it. The only music I've been listening to for the past two weeks has been Cover Plus, the second Hazel O'Connor album. It's very like Breaking Glass, and just as good. It's the sort of music I would produce. I've noticed that my old CD, The End and The Beginning is on eBay for £30 or so, this is a rare one. It was one of very few copies printed before Tor changed his name. It might be the only one in existence (I destroyed all of mine).

Wednesday, April 29, 2020

More Taskforce

A hugely busy day. Spent the morning refining mission maps and checking the lighting and difficulty. I want some sort of overall picture of them all. Now I have 50 or so maps to juggle it's easy to make a change in one that can domino into others. I worked enlarging and improving the Teenage Mutant Spiders map, which is one of my favourite levels, partly because it's so scary and difficult!

Reviewing the lighting is tricky too. Most of the night missions look best, but I wonder if these might become annoying to players. Should I add the ability to switch any into day, night, default? There is already off/flat, default, and night.

I spent some time changing the indices of the 80 or so icons into strict DEFINEs too, which can easily result in errors unless a lot of care is taken, but this will make it easier to add new icons. One icon I did add is the ability to review mission objectives in the game. Without this, you'd have to just remember them, or restart a new mission.

Little time for playing, that would be inefficient use of my time.

I went for walk out to B&Q to buy a new toilet seat today, this is the first time I've been out in about ten days. I wonder if Covid-19 will breed a new type of Morlock?

Tuesday, April 28, 2020

Fences

More work on the game today. I can't stress enough how much better the game is now, well it's far from perfect, but the 2004 version lacked so much, it seems. Today I've worked on a level which was another, rather linear, explode-targets type of mission. I couldn't really make this one less linear in map design, it's clear that the targets need to be in a specific place, so I needed to think of new of giving the player choices. Choice! Options! I want to give the player as many options as possible.

In the end I simplified the map, made all of the walls destroyable and added multiple ways of getting to and from the target, even some really easy ones, then tried to balance things so that all ways seem about equal. You can even walk right around the back and reach the target without seeing a single enemy, but you will need to find a way back to the start afterwards. I also shook this level up a bit by making your team small and heavily outnumbered; this mission is like the raid in The Guns of Navarone (although, actually, the mission is name Arachnophilia in homage to another film).

One issue I had yesterday was that I have a small chain-link fence object but enemies were walking on it, as though it were a small wall. Making these walls isn't as easy as you might imagine. I have blocks, and they have a height. If they are short enough, 1M in my case (my game uses real-world units) then soldiers can walk on top of them, and shoot over them, and see over them. If the bullets go below their height, they hit the block.

For stone walls this is simple, but actually seeing, walking and shooting through are different things. A window can be 2M high, not walkable through(!) yet you can see through it, and might be able to shoot through it (although in my game you can't). A door toggles between transparent and opaque (it's also odd that you can't close doors in Taskforce, I've got the capability in the code, just haven't added it). A chain-link fence might be 2M high and you can't walk over it, but can see through it AND can shoot through it. And a short, 1M high, fence might be seeable over and shootable over, but you can't really stand ON it... but you can in Taskforce. I have a flag for CAN-SEE-PAST, which can be switched on or off for doors, for example but height is one number that includes shoot-over ability and walk-over ability.

Perhaps I could have two heights. For most walls, the walk-height would be the same as the shoot-height, but for the fence, it could have a walk-height of 2M (so you can't walk over it) but a shoot height of 0 (so you can shoot through it), and it's flagged as CAN-SEE-PAST.

I could have a see-height too, but the height of eyes might differ... if you duck, you are lower (and, in fact, the game noticies this, you are able to shoot, or evade, enemies by ducking, though it's technically the height of the gun that changes, not the height of the eyes), but, actually, some units are short... must I store the height of the eyes to calculate the vision requirements for the tiny minority of diminutive enemies? It would allow you to crawl and sneak past low walls, for example, but actually, low walls are rare anyway. This complexity becomes inefficient at some point.

Even adding a separate shoot and walk height might be inefficient because a chain-link fence is just about the only object it would apply to, and also, would it be realistic to be able to throw a grenade through one? Not really.

So, I can either keep the fence short but allow people to walk on top of it like a tight-rope walker, or set it to 2M high and stop anyone firing over/through it (but they can still see past it).

Monday, April 27, 2020

More Taskforce, and the Realism of War

A tired day today after a night and day of bad stomach pain. I'm turning more Beethovian! This has made working more difficult, but I've made progress on Taskforce.

Most of yesterday was spent tidying up the improvements and new things in the code. I now have defines for objects and units (before, unbelievably, I had numbers, which made everything complex). I've also worked on the Medikit and Bandages to create a new class of object; there are about four really: use instantly (most of them), long range short, melee shot (can only be targeted on squares next to your unit), and administer (can only be targeted on an adjacent square that contains a living unit). So 'administer' is ideal for the Medikit and Bandages, but could also be used for other things, like an injection or anything else.

The game is very modular. Until this optimisation, I'd specifically programmed in uses for Medikit and Bandages, which I dislike. I want everything to work naturally and neatly rather than have silly bolted-on bits. Today I've made the error checking neatly return to the Main Menu if an impossible mission occurs (it never should!) and I've also checked for the vertex shader support, so the game will still work without lighting on older machines that can't support enough variables.

I thought last night that I need a backstory, a mythos. I never really thought of one before, only a vague one, perhaps this is because the original 1993 game certainly didn't have one and there is some baggage with refining an old game. Arcangel had a complex backstory about genetically engineered super beings, divine twins, and all sorts of things; this was part of the plot of the game too... but here, the plot is incidental, another layer. The plot is a James-Bond style romp, but the backstory needs to be about the organisation itself. Who is this team? What is the Taskforce Organisation?

Maybe this can be for a future game (will there ever be one?) but this mythos is the very essence of a good game (or good film or book) because it increases engagement. It uses my own rules from 21st Century Surrealism. So much about this game is better than in 2004 because of my art... I know that it won't be as good as I'd like, but it will be a lot better than the 2004 version. A future, new game would be even better.

I thought last night about remaking the music too, this is one area where I've really improved since 2004, and the Taskforce music isn't very melodic; but it does set a mood of horror and unease, and spy-like mystery. The music is more about the plot than the game itself. It will suffice, but, if I had time, I would make something new, and more of it.

Today I've made a new mission, an all-new The Cyrus Crown Affair, which is a maze-like level. It doesn't play brilliantly because the grid-like maps tend to make everyone visible to everyone else, so the first few rounds are an intense firefight, and for this mission where you have to retrieve objects, you can't really help but kill all of the enemies instead. Generally, all of the missions require you to kill all of the enemies, or at least that is often the easiest strategy. In some ways this is a failure (unless this is the best strategy in 'real life') as there should really be more variety... but there are a few where it's expressly forbidden, and they can be a lot of fun.

I played a good training mission today to test the difficulty and considered realism. I had killed everyone but one unit and had her surrounded. I thought that in a real situation, the victim would surrender, and I felt guilt at issuing the order for the killing blow.

Actually, during this battle, most of the fighters would probably have given up in real life, and that motivation is one things that a computer game can never make realistic. If this game (or indeed a James Bond film) were real when why are these people fighting and dying? Wouldn't they always give up? Wouldn't your team sometimes give up too? Players who play a game keep playing until they have won or die... but that itself isn't realistic. It's not possible to change this in this game now, but making the stakes higher; something like permadeath, might increase this tension, and perhaps having enemies that can surrender would help... but why they are fighting at all, that is a motivation that would be hard to program. In some ways, all of this action and emotion are the most important things in a real battle (I imagine) and any military simulation without it is seriously flawed.

Also, what if the one last troop could actually, by some miracle, win!? Strangely, these questions might become prescient for future fighting robots in the real world. As machines become intelligent they may choose not to fight. Only the stupid fight to the death for no reason. The Terminator got it wrong; if those robots were intelligent, they would question their superiors, question their orders, rebel and, sometimes, make peace.

Saturday, April 25, 2020

Training and Bandages

Two hugely full days working on Taskforce. I hardly slept last night with stomach pain and excitement for the game, the sheer amount of work and ideas can be overwhelming, but it's, broadly, a good anxiety; a joy for working that few experience. Does anyone? It feels like a childhood Christmas Eve at times. I do have a tight deadline though and a still big mountain of work on this game.

So, yesterday I started work on reworking the sixteen training missions. These are a big part of the game, but they used to be on a somewhat small and uninspiring map, and, importantly, one that is almost always the same. This map was also very closed, and perhaps that was at least in part because the graphics on my 2004 computer could not keep up.

My new, key word for the game is 'options'. I want the player to have as many options as possible. One of the rooms in the old map was to the side and had just one entry point. My goal now is to make interesting combat environments, something like the maze in the finalé of The Man with the Golden Gun. After all, these are supposed to be custom-made military training areas; an obstacle course, an assault course. Every one should be designed with the training task in mind.

So it's been a very busy two days redesigning the missions. The training area is now in two levels most of the time, although some missions are only on one level; these ideally suit some of the clumsier walking enemies, and, naturally, the missions will become bigger and more sophisticated as the game progresses. Here is a look at one of the new, unlit rooms:

Each mission needs to be different. There were in the first game, but I wanted to aim higher, and so even for the relatively normal combat ones (the Taskforce equivalent of a free-for-all deathmatch) I've used different arenas, and generally different troop numbers or equipment; this time I can specify if the enemy have heavy weapons or not, unlike the 2004 Taskforce.

I've also played with the lighting more, and will revisit this. There are several night missions, which I originally lit in 'night vision green', but blue seems to look prettier. So many films just use a blue filter for night. I can always chop and change.

There are several type of mission, these are like personal mini-challenges that are easily customised and enjoyed by players. In one you must take a small team to blow something up but there are so many enemies that avoiding combat is necessary. In the finalé you must retake the base which has been captured, in another you must defend civilians. Well, I've had little time for playing. Most of the past two days has been spent mapping (blessed be my Cornutopia Mapper! - this is, incidentally, a free download on my website).

Another screenshot that includes some of the lighting in the new Night Raid mission:

One last thing I've done is actually a significant programming challenge; allowing healing by bandages and medikits on other people. This was actually in Arcangel, and is important I think because Taskforce is a team game. It's faster in Action Points to heal others (40% vs. 75%) so having a specific medic or buddy will be beneficial.

The programing for this is not trivial because the gameplay engine is very sophisticated. When healing someone, for example, you might well have to rotate (which uses Action Points) and the rotation will reveal terrain and maybe an enemy; you might even be Opportunity-Fired upon (which is a bit mean, but, yes, it happens). Trying to heal yourself when healthy will not work, but as things now stand, trying to heal someone else (or an empty square) will at least cost the Action Points. You can heal enemies or civilians too, incidentally, which may impact the gameplay. Wounded hostages can now be healed. This is good because it's realistic. It's silly that you can't heal injured others when you can heal yourself. Realism is the ultimate test of what is good and what should be included in a game like this. Realism should drive everything.

Thursday, April 23, 2020

Missions

More Taskforce work, the job seems never ending. Each day the game plays better, and far more different than before. Today I added the feature for random starts for the Taskforce team. As I've said, random starts for the enemies have been a fundamental part of the game, but I recently realised that the fixed location of the objects made those missions more linear than they could be, and the same applies to fixed player starts. I could add the feature for random target starts for demolition missions, except that there are surprisingly few missions like that; odd really when these were my favourites in Hilt II. The best though are these on random maps, and there is one of those.

This random start feature means editing every map to create some options for the player.

Another feature added today was a new key; up and down arrows on the equip screen to jump category. Now, at last, it is fairly quick and easy to add a custom equipment pack. One feature I'm toying with is the ability to save the game on the equipment screen, before starting a mission, so that a team and equipment set can be chosen and saved before starting the inevitably random mission.

I've also redesigned the Clone Alone mission, a new map, it's far better than before now. The good sign of this game is that the levels are not linear, they are designed more like combat environments now, as in a multiplayer first person shooter. The terrain isn't an obstacle for either side, just tools for the mission, as it is in tabletop wargames. A good sign.

My next big job is to revisit every mission and refine every map. The training missions in particular need more variety to the layout.

Wednesday, April 22, 2020

Playtasting, and Linear Gameplay

More Taskforce tweaks and changes as I play. I've made a few small program changes; mainly adding the graphics of the new six team members to the opposition. This is useful for the training missions where the other side should really look a bit more generic. I've spent a lot of time playing a mission called Borovian Rhapsody, this is one where different difficulty levels radically change the tactics needed. Getting the difficulty levels right is very tricky and requires lots of playing, especially on the random and luck-based missions. Generally though, I suppose the most important thing is that the level is possible to complete, and that a higher difficulty level makes it more difficult. That is all.

A few of the missions with bigger maps now seem tedious and linear, and over-long for no good reason. Ideally a map should be very non-linear to permit a variety of tactics, and to at least allow multiple plays of the same mission, for every game to be different. I will need to radically redesign some missions and make them less linear and more interesting.

I was thinking the other day that my favourite all time games are Project Stealth Fighter and Airborne Ranger on the Commodore 64, UFO Enemy Unknown and Frontier on Amiga, and possibly Civilisation too. Apart from Frontier, all are Microprose games. All are categorised by being non-linear. On PC, perhaps my only favourites are Half-Life and Unreal, but both are very linear and really in a totally different, and inferior, category to the former games.

Of course, nobody can experience Project Stealth Fighter now how it was to play then. You need two cassettes and 45 minutes just to load and play each game, the game came with four (I think) printed N.A.T.O. maps of your mission area, a keyboard overlay and so many controls that you felt like a trainee pilot just reading the excellent manual. There are no games like it now, and there probably never will be again. The tape loading and sheer waiting time made each play a serious investment of time; that giving added something.

In other Taskforce news, the Steam store page went live last night.

Monday, April 20, 2020

Difficulty Levels

More Taskforce work today, but I feel the end is in sight. The manual is just about done, the graphics updates done and the promotional graphics.

Last night though I thought of something crucial, that the most important criticism of the game is that the first level is really difficult, as well as taking, potentially, an hour or more to complete. As it stood in 2004 Taskforce had very limited appeal to the most hard-core of nerd-like turn-based game-programmer player. It really needed to be sped up and simplified for a general audience, at least, make the early level and levels accessible.

The main reason the opening level is so hard is that it's a hostage situation, and the death of any of the hostages will make you fail the mission. There are also quite a lot of enemies in this, actually, come to think of it, the first mission, Who Cares Wins, though one of the best, is one of the hardest in the entire game!

I had the idea of revamping the level. Really there's no need for hostage deaths to fail this mission; but at the same time, it would be nice, I thought, if on a harder difficulty level that they would, so I've re-written a substantial part of the game to make the story path different for each difficulty level, creating a custom missions for each of the four difficulty levels at each step of the way. This makes the level design process really flexible.

So now, for that first mission, I've used a few different maps for different difficulty levels. On the first two (easiest) difficulty levels you don't have to protect the hostages, and for the very easiest level, I've removed some of the nasty gun turrets. The third, 'Professional', skill level is like the classic level, and the hardest 'Elite' level includes more troops and, for the first time, they may even have heavy weapons.

I've continued this with most of the missions. Although many merely have more enemy troops on the harder levels, some have more cunning changes. One mission which required infiltration by a single unit now permits three, then two, then one, but on the hardest level three again, but not permitting any enemy deaths at all (so, it must be played very stealthily, then). For some missions, the number of units on your side is restricted. Another map has a few structural changes for different levels of difficulty too. Generally the easiest level is really rather easy now, but the hardest is really difficult, which is now it should be. I must be sure that I can complete every level and every difficulty.

I've found a few little bugs; one where the lights for your units would switch off. This is because all units share lights, so when one unit dies with a light, it might go off and will turn off the partner's light too. I experimented with adding 12 lights (this game has 9 light sources, already a record for my 3D engine) but it appears that I've reached a limit, so I've merely fixed the bug.

Generally speaking, the game is inching towards completion.

Really importantly though, it feels a lot better than it ever did. Sometimes, the tactics on the harder levels feel incredibly realistic, actually ducking troops behind flimsy terrain to protect them; dropping an empty gun, running to a dead body to grab theirs before turning and firing off a volley. The fast movement really makes a huge difference to the game, and with the difficulty changes, the game is transformed.

For the first time, I feel that the gameplay parts are better than U.F.O. Enemy Unknown, a game which I loved. Of course, that game has a more immersive plot... I can imagine developing something deeper and wider myself. It's interesting that I was developing the old Taskforce and Hilt II before U.F.O. existed. I tried to buy Laser Squad back in the 90s but the shop didn't have it in. It's almost like a parallel development, although, of course, I've had to do all of this on my own and any publishers I found turned out to be sharks. Only now can I see the project with a new eye. I wonder what sort of game I could make now if I started afresh.

All this said, these manic 14-hour days are really taking their toll and reminding me that even a smaller (ie. not as expansive as U.F.O.) game can be a huge amount of work. This said, Arcangel was far bigger in many ways (eight different worlds of graphics, far more items of equipment, far more units), but at the end, that game lacked these essential gameplay refinements; it wa the nerdy 2004-style game. In gaming like art and music, simplicity, paring things down, is key.