Showing posts with label scripting. Show all posts
Showing posts with label scripting. Show all posts

Monday, 31 May 2021

One Spell Pony Says Explosion

 This month I have mostly been dealing with explosions.

And vapour trails and general special effect type stuff.

And I found out that the PBR I had been using had broken metalness which was fixed on a newer engine version, so I had to redo all my PBR maps again, after having to redo all my PBR maps again last month because I had Occlusion and Roughness in the wrong RGB channels ... but back to those explosions.

Right back at the beginning of Unnamed Victoriana South China Seas Dieselpunk Dogfighter I created a system of damaging individual aircraft parts, thus degrading performance related attributes like turning, speed, etc. Now I neeeded to actually make it look like something was happening when this actually happened. I threw in a small explosion with a nice little puff of dark smoke to let everyone see that a damage limit had been reached. When this happened a mesh element would be swapped for a more damaged version so that the player could visibly see their aircraft being steadily shot to pieces.

Here is test to show all the parts of an aircraft that can get blow clean off

 I came up with a somewhat hacky solution of hiding the destroyed area and then spawning the blown off part of that area as a static object, so that I could use the same skin texture as the aircraft and give it a spnning animation, and mount that onto a projectile that was gravity heavy.

And of course if an aircraft takes way too much damage all over rather than having a single part get blown off, it just explodes. Whilst some of the debris is made up of model meshes, most is in fact animated sprites for small metal plates tumbling through the air.

Explosion!

I also made some Dazzle Camouflage skins for the three aircraft types I had previously modeled.

Dazzle Camo; The Rule Of Cool

This brings us to actually sorting out some sort of gameplay mission, and for that I started working on an Event System. I have been thinking of taking a cue from the old space shooter Freespace and FRED, FReepace EDitor, as to how missions are put together. It had a drop down editor for logical arguements which acted as cues for events, thus preventing someone from filling it with absolute gibberish. The premise is quite simple, if x happens do y. Most of this is about spawning new waves of enemies or ships as well as keeping a general tab on mission objectives.

I have come up with a system based on using scriptObjects in the mission for each aircraft or ship or active thingy, all stored in a named folder in the mission editor for ease of finding, which then accumulate to an array on the load game event, waiting for the events to be checked against array list and ticked off one by one. 

The idea is that something occurs - eg1: player connects - the Event System looks to see if anything else needs to be done - eg1: enemy aircraft wing spawn 15 seconds later.

eg2: Enemy are down to 25% numbers, second enemy wing spawns.

eg3: Second enemy wing is destroyed, large enemy formation arrives. Timer starts for player to survive for 120 seconds.

eg4: 120 seconds later, allied wing of reinforcements arrives.

eg5: All enemy destroyed, mission accompished.

And so on and such forth. Minus timers the Event List is entirely passive and is just checked against when something happens that was stored in the array from the aircraft scriptObjects in the editor. This seems to be the best result for low overhead.

So, that was the month that was, and next month we will hopefully have a fully working Event System and actual playable mission which I intend to be a homage based on the first mission of Freespace: The Great War.

Tuesday, 2 February 2016

Swag Em Up - 100 Collectable Power-Ups

It took some doing, but I managed to design and code, a full 100 collectable power-ups. Most of the artwork is still placeholder but all bonuses, attributes, special attacks, etc work in practice.

They come in 6 flavours:
  • ATTACK - bonus event on striking an enemy. eg: critical damage, exploding attack
  • DEFEND - bonus event on being hit. eg: shield stops damage, retribution attack against enemy
  • TEMPORARY - boost to attributes for x seconds. eg: for 8 seconds speed x2, increased healing
  • PERMANENT - attribute increments. eg: increment health, speed, healing
  • PASSIVE - works passively. eg: cause damage on touch, enemies drop more loot
  • ITEM - Items are single use and player can use any item that they have collected when they wish. Can be good for getting out of trouble when your back is to the wall.
So here's some pics and videos of a few of more of them being tested. See last blog for previous ones.


 Bonus offensive machine-gun and grenade spam attacks.




Super Orbital Laser (anyone guessing the source of the name wins a free internet)



The Zone of Brass Monkies - slows all enemy who enter it.


Napalm Strike (need to work on those particles, not entirely satisfied with those flames)


And a quick test of shields in various colours.

I also spent some time reading through the code (this is why it's important to leave comments people!) and found a few things I didn't previously know about explosions - such as you can tie animated meshes to them. This help save a bit of overhead on things as in Airship Dragoon I had spawned "concussion blast spheres" seperately. So I decided to make the basic impact attack a little more interesting.


With the swag collectables coded if not modeled, next up is to test my ideas on how to actually model the environment and levels. And it looks something a little bit like this:



Wednesday, 18 July 2012

Long And The Short Of It, Working Campaigns and SaveGames

Long Campaign, Short Campaign, Save Game ... cos you can't really play through the whole thing in one sitting ... well, you could if you never have to ever do anything or go anywhere, but must people occaisionally have to.
And behold, there is a Short Campaign.

Don't have time to conquer an entire continent in a procedurally generated, airship fleet commanding showdown between the world's Great Powers, yet don't want to play through a one off, single tactical battle, but fancy something with a bit more longevity?

Then maybe the Short Campaign is for you. Also known as "The Citadel Campaign", "The Dastardly Pirate Citadel Campaign" ... and possibly a few other things until I work out the correct name which I shall ultimately call it. One thing is for certain, it has Dastardly Pirates and a Citadel ... actually that's two things ... Two things are for certain, it has Dastardly Pirates and a Citadel ... actually it doesn't have a real Citadel because I haven't made the model yet ... so you'll just have to pretend for the time being.

The Short Campaign comprises of a triangle of territories (hexes) reaching 8 or 9 at it's deepest point. They're all under the control of the Dastardly Pirates who send out flagons of treason from their Citadel Fortress right at the back, and it's up to the Regime of your choosing to blast their way through enemy territory and storm that Citadel.



Blank/blue territories are captured ones, and the player's regime gains cash and extra troops from wrestling them from enemy hands. Seizing fortifications allow for class upgrades. The deeper into hostile territory the player pushes, the more skilled and better equipped the opposition becomes. The player can only launch attacks from territories which they occuppy, and each adjacent captured hex gives additional troops for the assault.

And this is where the main part of the game is now fully functional. Yeah, in bold and everything.

From the "Campaign Overview" section, you select your troops, equip them, and then it's straight to the "Tactical Battle" mode where you direct your chaps around in hot turn-based squad tactical action! The end result it recorded, your veterans are upgraded or if deceased removed, successful conscripts get promoted into the veteran core, loot gets gathered, and the Campaign world is updated to reflect the changes, territories change hands, progress is made ... or not if you got your bum whupped by the opposition in the Tactical Battle.



And when the Campaign reloads, updates the changes, and it all continues. It's very much in the mould of the original X-Com "Geoscape" to "Battlescape" and back again - except you're fighting for possession of territory and territory change hands depending on battle results. And it all works - exactly as I'd envisioned (or at least hoped it would) when I first started, 13 months ago.


HUZZAR

In fact, 80% of game logic is complete and bug-squished. Obviously there's a bit of tweaking that can be done here and there, but it works. The Short Campaign Mode works in it's entirety, the Single Battle Mode works - though I've only one map at the moment and I've yet to introduce the Armoured Cavalry class option, and the old Long Campaign Mode (the thing with the airships) works save for 3 known bugs and a bit of tweaking.

And I've knocked up a save game system which works across all 3 game modes. Because of the various jumping back and forth in the Campaigns between "battle mode" and "campaign overview mode" it took a bit more effort than just saving out the current missiongroup. It's going to get a slight tweak to incorporate the difficulty level when displaying available saved games to restart, but apart from that it works as desired. Each game mode has 10 saves.



There is now also now a difficulty setting for campaigns, so the player can choose their own level of challenge.

In the video below is it all in action, abridged obviously as time and filesize are premium in both uploading and watching these sorts of things. There's also a little hiccup when I attempt to save from the "tactical battle" part first time as I had fix a bug and re-execute the gui to get the info to display correctly ... note to self: don't write a save game system at 5am ...

The combat is very abridged, just a little taster but if you've watched any of my previous videos you'll know the gist. As it's early on in the campaign both my troops and the Ai's are lowly conscripts with the most basic equipment, and thus have trouble hitting the broad side of barn. In the end the Ai throws in the towel and flees the battle area after taking a few casualties.


Monday, 27 February 2012

Feedback To Player When Nothing Is Happening

Waiting around, scratching yourself, wondering what the hell the Ai is up to ... if anything? Has it crashed? Locked in a loop? Waiting for input without telling you that it wants you to do something. Who knows?

---------------------------------------------------------

I had noticed occassionally decals would not work as expected but didn't think much of it as it didn't seem related to the stability issues I had been experiencing. I'd ripped out my custom explosion stuff and gone back to using automated functionality, and whilst this had fixed my disappearing decal, it hadn't done anything for stability. Eventually I noticed that things were getting deleted, random things like GUIs, decal data, SFX, and other things which was causing the stability issue.

Now I'd had previous experience of this a long time ago in a galaxy far, far away - and knew that it was trying to clean something up, failing to find it, and then eating something else.

There had been an issue ... located somewhere between the chair and the keyboard ... that had crept in very early at the start. However it hadn't surfaced until 6 or so months later when I'd had the Ai team in and working with near complete functionality.

I was attempting to delete a decal in the Ai's move routine which the Ai didn't even own, when I should have been using the decal management system to simple remove it.

BY ODIN'S HAT! Either extreme crunch or a sudden outbreak of sobriety had caused such a faux pas.

And with that fixed, stability issues disappeared.

So onwards and er ... onwards!

After replacing all my custom explosion stuff - for the umpteenth ruddy time - I'd also rolled back a few other changes which I'd recently made. Ammo packs went back down to their original 5 from changed 10. This means that ammo might need monitoring on the high rate of fire weapons and various rocket/grenade launchers. The fact was packs of 10 rounds really seemed to stop bullets being a resource and I might as well have just gone for infinite ammo - which I very much do not want (apart from in the handfull of hugely expensive rechargeable energy weapons). I'd made various tweaks to weapon and ammo weights, ranges, stopping powers, and scrapped the original idea of grenades exploding at the end of a turn in favour of immediate detonation. There were far too many instances in testing of hurling a frag and then getting shot when trying to step back into cover afterwards - thus making grenades a liability rather than another tool of the arsenal.

I'd sorted out a whole load of Ai related thinky-thinky about equipment, decisions on using grenades, swapping weapons and finding more ammo if they run out. Which all took far too much effort to synchronize and stop them from changing their minds halfway through doing something. Various tweaks to initially equipping them were also made and some dodgy mathematics fixed.

All of which brings me to having the player wait for things.




When one of the player's troops comes under fire during their active turn, control is momentarily removed and then given back when the incoming projectiles have either impacted or burntout their lifespan. During the enemy Ai's turn, there's a lot of waiting around obviously - which does tend to happen in sequential turn based games, in fact it's supposed to happen or it wouldn't be sequentially turn based ... er ... obviously.

So I've developed a camera and information system to give the player feedback when they are in "passive mode" and do not have direct input control. This starts as a basic GUI announcement that it is the opponents turn, and some basic information about what is happening. At it's most basic this is a simple "Hidden Movement" announcement, telling the player that stuff is a-foot, but none of his little chaps can see it.

This progresses to giving feedback on things that are in the field of view of any of the player's troops, such as an enemy going beserk and shooting indescriminately, fleeing in panic, or walking into a booby-trap that the player had placed at the beginning of the battle. The camera moves to whichever trooper is the most relevant, displaying their Name, Rank and Class, and information about what is happening. This can be about that particular trooper being in danger, to returning fire, to viewing something passively such as enemy panic or new enemies spotted. Eventually I'm considering tweaking the "Hidden Movement" part of the passive phase so that the camera shows a random part of the map as scenery, rather than just lingering on the last trooper that had any information to pass on to the player.

All designed to keep the player up-to-date with pertinent information and views of the action during the phase when the player has no control.

And here's some vidya of it all in action. It starts off with me planting a shed-load of booby-traps ... which the Ai then avoids by using dual flanking manouevers ... ah bugger. This just happened to be the tactics it chose, the opponent not having any clue where booby-traps are until unless spotted by a "Recce" or "Sapper" class (Sapper's can defuse booby-traps by walking into them). The enemy do however walk into an IED on either flank and there's a bug displayed in the player info where the name of the viewing trooper is not displayed with the information (since fixed!). At the very end there's a little demo of me fragging the main group of IEDs and watching them set each other off with secondary explosions.

The majority of the video is just gameplay, with an emphasis on the camera and feedback system during the player's passive phase. It features "Stormy" weather type which has visibility of all troops reduced to 100 units. (There are 4 weather types with troop visibility ranging from 300 down to just 50 units/metres).





Next up, finishing off the Ai's decision making about which equipment to use in various situations, having the Ai take more advantage of cover, and use a wider dynamic avoidance rule when moving as they do still tend to knock into each other on corners. Also required is an end of battle screen featuring stats on how each trooper did, their current state, promotions, the chance to recruit new core troops from any deployed militia which did well in the battle, and an overall battle rating.

After that it's about sorting out armoured cavalry (also to give the sapper class something to act against as an equaliser with all of it's explosive class-based weaponry), make sure the whole thing loads and saves correctly, and then it's about time to make some proper maps/battle arenas for the post-alpha game.

Friday, 27 January 2012

Something That Vaguely Resembles A Game ...

 Does exactly what it says on the tin! I've got a full blown ... if rather rough ... battle with the Ai on the go - and it all works! Well, apart form the bits when it crashes - but I'll see about fixing that later.

Well, it took 8 months but it's something that vaguely resembles a game. At least the single battle part is, which will eventually be squeezed into work with the larger Strategy-Flying-Around-Conquering-Stuff part.

But anyhoo, it works "just as planned" ... only rougher 'cos there's various parts which need tweaking, changing or just downright fixing.

I'd struggled for some time ... and pontificated considerably longer ... about how to get the Ai opponent to choose a team of troopers from the available resources of cash, veterans, 6x classes, and class-level based equipment. Initially it seemed easiest to make pre-defined teams with minor variations ... right up to the point when it became clear that this was obviously a rubbish way of doing things.

After a few morale boosting sessions where I charitably lined the Chancellor of the Exchequer's pockets in a country pub ... and trying to kill a seagull that oblitered the procedurally generated algorithm I was dreaming about, it all became quite clear.

I created a simple yet awesome system which procedurally generated an opposing force within the constraints of available cash, veterans and class levels based on weather, strategy, objectives and multiple squad tactics. No, I don't remember how ... it was all a dislocated haze, but then for Stevie, Real Life ™ gets fainter and fainter everyday ... (I find it helps if you say that in a strained and high pitched voice)

So there it is, an Ai team playing to the strengths afforded to them, using one of 8 different tactical approaches. These are fairly regular sort of tactics and are as follows:

1. Extended Line - sweep down across the battlefield, advancing on the enemy ... it worked in the Great War! Oh wait ... no ... no it didn't ...
2. Frontal Assault - group everyone together and go straight for the enemy ... and hope they don't have to many MGs, mortars or anything else that makes a mess out of a large group in open terrain ...
3. Hook and Line Left - central support group with flanking assault group to the left.
4. Hook and Line Right - guess what this is the mirror image of?
5. Horns of the Buffalo - Zulutastic. Dual assault groups flanking on either side with a central support team.
6. Pincer Movement - twin flanking assault groups.
7. Flank Support - twin flanking support groups engaging at range.
8. Skirmish Line - like extended line but made up of long range support gunners, keeping their distance as much as possible.

Needless to say, weather and terrain conditions are taken into account when the Ai are choosing tactics and classes. So if it's pitch black and everyone is tripping over each other in the dark, there's a lot more chance of their being assault groups than support groups, and likewise, if it's a barren, featureless desert with visibility stretching for miles/kilometers/leagues/cubics they're not going to create vast numbers of assault squads armed with pistols. This doesn't mean that they won't occassionally pick a less suitable tactic - just that they are a lot less likely. History is filled with plans which "seemed like a good idea at the time".

Anyhow, as I mentioned, it plays like a game ... except when it doesn't and crashes. Upgrading to the newest version of the engine might help - still using a customized previous version ...

I've still got 4 post-it notes full of bugs to sort out. And the player really does require a lot more feedback on what is happening during the enemy turn. At the moment reactive fire works fine, the camera mvoes to the player's trooper being targeted and positions itself so you can see who is shooting at him. Ideally this also needs to track visible enemies whilst they move. Talking of visible enemies, spotting works fine, showing and hiding opponents as they move in and out of sight, so no rotating the camera around an obstacle to try and spot an opponent that your team members cannot see.

Reactive fire works both ways, requiring the passive team to successfully spot and have enough initiative (based on distance, stance, angle) to either fire first or fire as the opponent moves.

The Tactical-PlayGUI (as opossed to the StrategicOverview-PlayGui) is the only one which still requires to be overhauled, and there's a definite need to highlight the start of the player's next turn as I've spent a while staring at the screen before realising that I had control of my buttons back.

I also need some sort of victory/loser screen detailing what your troops did and what sort of performance you had.

I'd been concerned over a few things and had halved the weight of ammo for fear it was too easy for playesr/Ai to run low. Turns out they don't actually use that much (either human or Ai) in any of my test battles. Also, battles are over a lot quicker than I had expected. Initially I was a bit disturbed at the ease I won my first battle 10-3, but then lost both my next battles 5-10 and 7-10 respectively when the Ai used different tactics and the terrain was less open. With both forces equal it's a fairly nice challenge.

Gah ... enough typing ... video of a battle, with the boring bits edited out. Features plenty of spotting, reactive fire, some healing and some panicking in both teams over the deaths of team-mates.


Easier to see what the hell is going on in HD but you knew that ...



Next to do is improve how the Ai decides how to start each turn, which weapon to go with when they have multiples. They already do pretty well when deciding on grenades or bullets. Currently I have the "Meeting Engagement" gametype working pretty well, but also need Assault and Defence. Also tanks/armoured cavalry needed or the Sapper class isn't going to have too much to do with it's specialized explosives. Finish up my save/load solution and eventually cram it all into the strategy part of the game so that the campaign mode works fully. And of course art ... which all comes last after the damn thing works properly.

Wednesday, 21 December 2011

Data, Data, Data, 28 Items, Multi-Purpose Ammo, Artillery

Item data overload! All items finally done, at least the data and how they all work in game - still placeholder models ---> Art is last on the list. Also multi-purpose ammunition, for people who are tied of not being able to use similar bullets in multiple weapons.
--------------------------------------------------------

Weapons, items, armour, artillery ... done, finally. Or at least the data and testing for them all it done, if not the final 3D modeled form of them - that's for last on the list of "What Needs To Get Done And In Order To Have Done Everything". So everything is still placeholder in the visual department. No pics this time, but cue vids.

So, here's a quick recap.

There are 6 classes.

Each Class has 4 levels of items.

There's also a "generic" class of 4 items everyone can use without penalty.

Ammunition of a each caliber can be used in any weapon of that caliber.

There are booby traps which can be placed before the battle for the enemy to walk into, and thewse can be detected and captured by the Sapper Class.

Most items are weapons of some form, some are equipment, and some are defensive (like armour).

Light armour is ... er, light. Heavy armour is ... er not light. Stealth armour is camouflaged. Whilst thinking up various defensive equipment for the classes, I also thought it might be fun to have some "non-conventional". I decided on a certain type of armour, which defended the user not by stopping damage, but by reducing accuracy of the firer by dazzling them. For a visual, I decided on some sort of energy shield, and was drawn to the old WW1 battleship "razzle-dazzle" camouflage schemes - only with a bit more colour in it and a moving pattern.


Amongst the variety of standard and conventional weapons I thought up a few exotic ones such as a badly spelt "flammenwaffen" - since renamed Flammenwerfer - a lightning gun that fries things - unless they're in a faraday cage ... say totally metal heavy armour ... in which case they don't do any damage at all - various rifle grenades, portable mortars, flamerockets, sniper rifles and machine-guns ... there was also the Railgun, which punches a hole through everything for 200 metres, reducing damage as it goes.



And artillery, in fact a few different types of artillery, each with different damage, blast radius, accuracy, but also a concussion radius to stun. There are rockets which are all noise and no trousers but scare the hell out of everyone nearby and cause large morale loss and panic. More standard artillery strikes and heavy mortars, guided flame bombs, and also carpet bombing by dirigible.



And for all of this hurty-hurty stuff, I needed a healy-healy system. So aid-kits are dual purpose, healing wounded squad members as you'd expect by increasing health - but also being available to create medivac. I rejigged the damage system so that disabled squad members who are not killed outright will fall wounded and slow bleed to death ... unless you can get someone with an aid-kit to heal them and call in medivac. Eventually they'll be a nice screen for this medivac but right now there isn't. Medivac-ing also boosts everyones morale a little as it's good to see your mates saved to fight another day.



And throw in a shed load of bug fixes and general improvements.

------------------------------------------

My original deadline of completion by 1st January 2012 will be missed by a mile - but I'm still vaguely on course for completed gameplay with placeholder art. After a few rewrites that were costly in time, and the occurance of total burnout around October that caused an end to continuous crunch, it's still not a bad effort and should be completed early in the new year.

Saturday, 22 October 2011

Fog Of War, Classes, Militia, Deployment, Making It All Work

It's been a hectic month, there's been a real ale festival, I watched my local footy team actually win a game - thus breaking the gypsy curse of never seeing the team I'm supporting win - whilst standing in an all seater stadium amongst a crowd with mis-spelt tattoos on their faces and listened to some interesting chanting, often directed at the supporters of the same team in the seating opposite. There was also a mini-heatwave that saw me sat outside at 1am in a t-shirt, wondering how the hell my friend the teacher was surprised to learn that stars were suns ...

... and I even got some dev-ing done ...

After finishing off the strategy component of the game, it was time to sort out how to hook up the squad tactical combat into it all. This needed a fair a few things - mainly a squad. So I've devised a "Core Veteran Squad" of troopers who gain experience depending on their mission performance (and continued survival obviously). Any time that there is a battle, the player can deploy a certain number of troops depending on whether attacking/defending, vehicle type in use, terrain type being fought over, whether it's garrisoned, etc, etc.

The deployed troops can also partly or wholey include members of the "Native Colonial Militia", who, should they do well and survive the battle, can be upgraded to your team of "core veterans" with an assignable class.

Initially I was thinking of just letting the player hire as many troops as the wanted ... but with the class system it seemed more strategic to limit the number of available veterans and allow a constant supply of militia, who can earn a place in the core team. In the end, I decided that 16 was the best number, thus forcing the player to choose exactly which classes were deemed important and in what ratio. 6 Classes / 16 slots.


British Dirigible Deep In Unknown Territory Flees The Attentions Of The Austro-Hungarian Empire -Only To Run HeadLong Into The US Republic's Area Of Control.

Because of the relatively small core number I've also introduced a "saving throw" concept in the tactical battle, where a downed veteran can be saved by a comrade with a aidkit if they get to them within 2 turns, and then call in medevac to evacuate them from the battle. After 2 turns of lying in near death, the unfortunate trooper will finally succumb to their wounds - and you'll need to get a surviving militiaman who's shown a bit of gumption in battle to start a new career as a veteran. Names and initial abilities of Militia are randomized (names depending on factions). Skills are:
Accuracy - shooting, throwing, not missing, etc.
Courage - guts and glory, sussi, determines if they panic, flee, freeze or go nuts when their Moral Fibre drops due to injury, team losses, etc.
Reactions - who shoots first, can they get a shot off before the enemy runs from cover to cover, etc.
Strength - how much they can carry, how far they can throw.
Vision - spotting the enemy, and in the case of Sappers and Recces, spotting booby traps before your whole squad walks into one and vanishes in a big flash.

I've introduced the "Class Progression System" where the player can buy blueprints of new technology for each of the 6 different squad member classes. This goes in 4 tiers, each tier's research doubles in cost. Whilst most items/weapons can be used by other classes, doing so imparts a penalty. Surviving veterans gain experience which increases rank, and rank increases all attributes with x4 and x2 modifiers on primary and secondary Class based skills. So, here's a quick overview of the Class System:

Grenadier - (heavy infantry) mighty beefcakes of battle equipped with the large calibre stuff.
Primary - Reactions, Secondary - Strength
Fusilier - (light infantry) More guile than brute force.
Primary - Reactions, Secondary - Accuracy
Gunny - (heavy weapons) BFGs all round for fire support. Weighed down with too much ammo to run when attacked, Gunny has balls of steel - and is more likely to go nuts than any other panic type.
Primary - Strength, Secondary - Courage
Marksman - (sniper) Cool and calm, Marksman's languid pulse allows for accuracy at long range and always goes for the headshot. Marksman has a smooth aiming style and cannot do reaction fire during the enemies turn unlike all other classes.
Primary - Accuracy, Secondary - Vision
Recce - (scout) the guys at the front pointing the enemy out for everyone behind them. Can also spot booby traps at 25% Vision skill to yards/metres.
Primary - Vision, Secondary - Reactions
Sapper - (engineer) removing stuff from Earth with cool explosions, also spotting, laying and disarming booby traps. Is the best bet for tackling tanks/land ships/panzers if I get round to implementing them.
Primary - Strength, Secondary - Vision

Your chosen team of guys deploy to battle at one of the sides of a square map, going North-South, East-West, etc. In the deployment menu you can decide which area left/centre/right each guy starts at, so you can create little squads from the off.

The terrain type of the hex being fought over determines the battle terrain, which is then decided by randomly choosing a mission with that terrain type. Weather is again randomized and affects the vision skill. Clear gives full vision, cloudy reduces it to 200 units, stormy 100 units and night just 50. Various weapons have different levels of accuracy, range, damage, shots per attack and reloading time. No point giving everyone long rifles at night when firefights take place at sneezing range.

And back to the strategy part of the game ...

The game logic for this is complete. The Ai teams level up and spread out, basing their actions on one of 5 different strategic approaches. If the player's battles are set to automatic, the game plays through completely to the finish.

I've introduced a "fog of war" element, done over a few US IPAs last night ... nice when things work without too much fixing. The Ai dirigbles in the pic and video are only visible to help me see what they're doing in testing. In-game they'll be hidden unless near territory the player has uncovered.

Next up:
I've got to sort out the buying of equipment for deploying the squad to battle, and also artillary support.
Come up with a method for the Ai to decide exactly who and what gets deployed for it's part in the battle - 10+ Ai battle tactics are already done.
Maybe ... Come up with a system for deploying a tank / land ship / panzer in the tactical battle.
Maybe ... Cause resources of hexes to dwindle over time ... by 20 turns you can really be bringing in some cash.
Smooth out a few remaining issues between how the strategy and tactical gametypes relate to each other.

After which, all the gameplay will be done, and I'll be on to replacing all of the placeholder art with the real stuff.

Vaguely ... still on for something close to resembling a finished ... or at least finalized game by 1st January 2012.

tl;dr - here's a video. The terrain is blue to show me that it's loaded the urban hex battle type.


Saturday, 14 May 2011

Move Rock - Circumnavigate Rock - Go Off On Tangent

Those pesky rocks eh? We all have our rock ... some of these rocks might even be real rocks ... but for most of us it's a metaphycisal rock ... or at least it's not real anyhow.

Okay ... enough about rocks, real or imaginery.

Game development is a bit like a Japanese RPG - everyone is slightly squashed and absurdly cute ... no wait ... that's not right! There's a lot of GRINDING and leveling up can get to be a real pain in the derriere. Everyone gets burned out after a while, especially when your on an "all hours the Great Magnet sends" routine.


It's even worse if you're making an MMO!

So rather than spend ALL week down the pub or ALL my time reading mildly interesting but mostly inane Wikipedia articles about what someone I've never heard of was rumoured to have done on a particular date in the 17th Century, I decided to have a look at the RTSprotoype information in the stock documentation and see how the camera system and screen-to-terrain input worked - two things which I didn't know anything about.

And from there I decided to build another Tutorial series, detailing how to create a 3rd person, turnbased, squad tactics/action hybrid gametype which follows the gameplay style of "Valkyria Chronicles" ... which I've never actually played, but have watched the whole game streamed. Originally I was thinking of writing a Tutorial for full turnbased tactical game but thought that Valkyira Chronicles" mix of turns and action was quite novel.

The whole tutorial is complete in theGarageGames Resources Section here and also in the T3D Tutorials Section of TDN.

And here's a video of what it looks like:




So, the next time you hear somebody say that :

Torque can only make Tribes style FPS games

Link them with that.


Oh hi, Catchick ... who still doesn't have a real name and maybe will always be known by what a certain Mr.Kiss first refered to her as ...

... so back to getting this demo out ... which I could've finished a month ago if I hadn't been looking for something else to do instead ... cue pub and wikipedia. The demo itself is nearly finished, it's "that close" - but you cannot see me holding my thumb and finger a little way apart to demonstrate, so you'll have to take my word that it's about four inches or ten centimeters in new money. And the demo is going to get finished and then released.

It's been a long time and a shed load of work involving a shed load of assets, but that's kinda what a FPS narrative campaign is about, and because of this I've also been thinking of "procedural content" more. In my GarageGames profile it reads:

One Bloke ... In His Bedroom ... Trying To Make Computer Games ... eventually ...


... Trying To Make Computer Games ... eventually ... was kinda in there as a joke about how long it takes to actually complete anything, but someday I'd like to edit it to read ... Making Computer Games. So to that aim, post next demo release, FPS project is going on the back burner, and an old skool (I hate that phrase!) turnbased, tactics game featuring an entirely procedurally driven campaign system will come to the fore with the intention of shipping before the year is out - in other words, six months. I did previously moot the idea in a previous blog about an X-Com style game idea I had, and my recent "Valkyria Chronicles" style game Tutorial gave a rough proof of concept for the combat/gameplay control system.



It'll still be massive - I just won't have to script every single fart an Ai makes ... but first, finish off Dubious Demo 2.1, cos this time, it's got the start of a Narrative Campaign ..

Thursday, 17 February 2011

Creates Tutorials, Conquers Resources and TDN, Slays localClientConnection Hax

I use the Torque 3D indy game engine, and to be honest it always had a rather steep learning curve. The site is a mine of 10 years of coding and scripting information ... but rather disjointed and scattered, so I decided to make a tutorial on creating a simple, single player first person shooter game to help ease the initial bewilderment. It's the "Simple FPS Tutorial".

On the Gargegames/Torque3D Indy Game Engine Site, my profile's "submitted resources" count has increased hugely. Admittedly the sheer scale of this expansion ended up being driven by the character and word count associated with the blogs/resources rather than my own quest to fill an entire page and bit of the resources section with my own graven image.

Resource word count had shrunk somewhat, no doubt down to the new servers and general on-going web flux and reorganization that came about with sinking of IA and the rising of GG. Plus the return of the "backslashes eating posting bug".

So an inititally planned three part series, which was then extended to a four part series, in the end became a twelve part series with a considerable amount of waffle stripped out, ending up being a "just the facts, ma'am" set of 12 tutorials that answer some of the most repeated questions posed by scum-sucking, whining, noobs ...

... er ... I mean ...

... valued and respected newcomers to the GarageGames and Torque Community.

So, by the time it takes to publish 4 or 5 Penny Arcades - which is about my last remaining tenuous grip on the actual concept of measurable lengths of time - all parts were written, tested, tweaked, refused uploading, seperated into more parts, tweaked, tested and forced down a copper wire. And then converted into a rather dodgy pdf format (having not done that before) using some open source stuff I found lurking around the net, before finally shoving it into the newly created T3D tutorials section of TDN ... which I also had no idea how to do, and made a right mess of Ronny's formating in the Tuts section until he fixed it.

And so, it is done ...


mfw ... minus the ears ... and boobs obviously ... and good teeth, I'm British ...


It's a step by step tutorial covering what is required to make a simple single player FPS:


Starting a New Project (also covered in docs but I wanted to start the beginning at the very beginning)
Creating the game area for the level
Making Custom Weapons (Art and Script) files for semi-automatic and full-automatic weapons
Having both weapons share a common file for particle effects and audio
Making a custom Player
Making a custom gametype
Making a custom Ai and associated simplistic combat scripts <---- often asked question by scumsucking n00- community newcomers. Previously the answer was both esoteric and hidden in forums/TDN.
Using paths for the custom Ai
Scripting gameplay <---- triggers FTW!
Creating a cool explosion in-game <---- games love explosions!


In the end, only three files are ever edited by the user (datablockExec, scriptExec, default.bind), all others are custom created from scratch ... so there is no overwriting of stock data.

Anyhow, the stock response to new forum posts asking about any of the above should now be:
TDN is your friend


Obviously I had to bang this "Simple FPS Tutorial (single player)" out as fast as possible, especially after what Renee had been threatening to unleash upon the world. Simple FPS Tutorial would have appeared to possess a puny manhood post release of such a monster. So first blood to Steve.


Steve Pictured After Final Tutorial Upload

And the pdfs (with the accompanying custom files for reference) are availabe on eb's Unofficial Torque Community Upload System.

Phew!

So with that done and dusted, and basking in the warm glow of my supernova'd ego, it's time to return to my own project, originally codenamed "Badger of Doom" but possibly about to be renamed "Steve's Folly".

"Steve's Badger" ... no, let's not call it that ... has been somewhat of an organic creation, learned on the job, from the school of hard-knocks, studied in the sweltering miazma of here. Suffice to say there's been some hax made over the years, just to get stuff working and not have to think about. It was either that or whine incessantly in the forums. But, with the stars right it was the Penny Arcade upload to bring forth the mighty sword of spanking, and begin the momentous task of slaying every custom use of the dreaded ...
%hax = localClientConnection();


Said mighty task ... ended up not being quite as fearful as first thought, and was wrapped up in time to see Arsenal score the last goal against Barcelona on the telly. There was some amusing moments to the task though, the highlight of which was:

function serverCmdUnmountWeapon(%client)
{
echo("Server Command to UnMount Weapon - " @ %client.player.getname() @ ".noFiddling = " @ %client.player.noFiddling);
if(%client.player.noFiddling != 1)
{
%client.getControlObject().unmountImage($WeaponSlot);
LocalClientConnection.getControlObject().setarmthread(looknw);
//...


Did you see what I did there :P
Oh how we laughed!

And now we have fully functional networking, regardless of the fact that it's single player, nice to have stuff working properly with pretty script rather than ... that. In fact there's still one small issue but that's 'cos I've got a little hack to interrupt "player move" in code using a global and we'll have to let that wait before we attempt a frontal assault against the code.

So, back to gameplay creation it is. I've had an enormous, completed, but rather empty of action corridor crawler level for what seems like eternity, and it needs turning into a working single-player FPS level.

Video of the play-through of the completed Simple FPS Tutorial