Showing posts with label targeting. Show all posts
Showing posts with label targeting. Show all posts

Wednesday, 3 June 2026

Avoid The Draft - Enlist Today!

 I woke up drunk and found myself in the army, and that is why I forgot it was time for end of the month devBlog! A tale as old as time itself no doubt, personal experience not included, honest.

Well, here it is, a few days late. And what, pray tell was I doing that occupied my attention so much that I missed that fabled deadline which I had kept for the past 4 years? Enlisting of course! Enlisting in a favoured band of hardened warriors! Or maybe not even favoured, maybe any company of cut throat raiders that would have me. Because it's all an RNG as to how each and every warband will accept the player, and this RNG changes every time the player or that warband respawns.

Five Levels Of Diplomacy

 So there are 5 levels of diplomacy that each Raiding Party shows towards a neutral player. These range from; "Just find some pants to wear and we will take you", to the much more hostile; "Anything less than level 20 XP isn't good enough".

These responses also decide how that warband will treat the player when their blood is u, ranging from the friendliest avoiding the player at all costs, going through only engaging the player if they get in the way during combat, all the way to treating the player as a mortal enemy. It is usually best to avoid walking into someone elses pitched battle, and wait for things to calm down a little before inquiring about membership, or looting the corpses of the fallen for those all important pants.

But once you have enlisted in a warband, you get a cool motif on your shield, and every other warband declares you a sworn enemy. 

Blood Brother For One, Blood Vengeance For All Others

 You don't have to enlist in a warband if offered, and they will peacefully go about their business and ignore you - unless you cause them trouble, or until the player or themselves meet an untimely end and respawn.

But once you have enlisted, and become a sworn blood brother of that company of heroes, you get to follow them around on their merry journey and have pitched battles against many foes. This is when I discovered that the target lockOn system was useless in a melee as it would lock onto any target, friend or foe, and a melee was confusing enough without the camera sticking on the wrong target. A little bit of C++ later and the targeting system now only locks onto enemies which is a lot less confusing.

Me And The Danelaw Boys Heading Out To Cause A Ruckus!
 
The Ruckus Went Badly ...
 

Currently the player can only follow the warband around, or ignore them completely and go cause trouble alone on their behalf, but it is a shame to miss a pitched battle. In the future I do plan to code a ranking system, were the player can rise up the ranks and eventually lead the raiding party, with them then following the player around rather than vice versa.

Also allow me to introduce the Carolingians. They were supposed to be in from the start but the future planned warbands seemed a little Gallic heavy so I replaced them with the Lombards, but now they have been added in as well, bringing the current number of active warbands up to 8, which is about half of what I have planned, and I am still only up to the 11th Century.

Arming Yourself As A Warrior Involves More Than Just Finding Some Pants

 And here it is in video action! As my Saxon comrades and I take on the newcomers, the Carolingians. I have good weapons and armour, we have the high ground and our archers have superior range, and I was feeling quite confident ... right up to the moment I got staggered from a long axe blow coming in from the side and then skewered from behind when unable to defend myself. Ouch.


 So, that was the merry month of May. It started off with wind and rain, there was a bit of a heatwave over a weekend, and then it ended with wind and rain again.

This month will mostly be concerned with a bit of tweaking of code and assets, and generally making the menus more attractive, before finally sorting out a listing for Steam.

Wednesday, 31 July 2024

More Third Person Melee Mayhem

Finally, summer has arrived in the dreary part of grim northern climes, though July started as June ended, with weather best described as "crap", and a sudden return to wearing jumpers.

Game development-wise things have continued much as before, with the vast majority of effort being aimed at the third person melee project demo.

I had long wondered what the best way of getting different clothing and armours onto a model would be. Many moons ago there was a turn-based RPG there was a post-apocalyptic neo-Roman game ... who's name escapes me ... and they literally had to load every piece of armour that the player could wear onto a single model and use the "hide/unhide" commands. 

Well many moons on from this and it looks like the only way to accomplish such things appears to be in the same manner, as you cannot just mount meshes and have them conform to the character's skeleton and mesh weight painting. Deciding that making a single model with EVERY PIECE OF CLOTHING that could ever be considered was not a great method for potential later updates, I delved into the engine to see how best this could be accomplished with code and script. The answer was to add a list of meshes to the character model's constructor, though this did mean it all had to be done at preload and was thus impossible on the fly, so once again, we are back to "hide/unhide" commands. However, at least this way it could be automated to search for all available meshes (and their LODs, which have to be added seperately per mesh), rather than sticking it all in the model and never being able to change it later.

Behold The Hat Of The Ages!

The Shape Constuctor code for adding meshes was somewhat out of date and relied on directory locations, so I updated it to deal with the engine's asset system. I'm thinking it would be best to have a function look for all relevant assets - probably from a folder naming system - and then add them all at runtime preload to the character mesh, followed by immediately hiding the added meshes and then only displaying them on the model when specifically called for; eg: when the player slects clothing or armour. I am not currently certain what the limitations on numbers of meshes would be this way.

Orientated Box Outline In WorldSpace

 Speaking of coding, it took long enough to get my custom code and the debug drawer to agree exactly how an oriented box works in world space. I had an idea for testing for blocking and parrying by using the actual strike/bounds box of an object, except weapons are not actually objects at all but are virtual due to the FSM system. After some testing I decided it was going to be difficult enough to make a successful parry this way and will probably go down the Dark Souls route of using animation frame timings - though unlike Elden Ring, I very much want to avoid this being tested on the client side as that appears to highly exploitable to hacks.


 Whilst I had coded a lock-on target system a few years earlier, in practise at melee attacks it was not always easy to actually strike the target, regardless of it being screen centre, and quite often I could miss and my strikes would go just wide. I decided to code a toggleable "face target" system, thus allowing the player to decide whether they wanted to absolutely aim for the enemy at the loss of movement speed due to circling side to side or backing away.

This worked fine but seeing the player spin in place to face the opponent seemed very 20 years ago, so I went back into the animation system and coded a speeded up sidestep when doing it.

Artifacting gif is artifacting ...

Whilst adding things to the lock-on system, I thought it might help to distinguish which target it was by having a health or status icon. I started off with a health bar over the target that reduced in size the further away, eventual throwing the lock-on off if the target was too far away. After this I thought I might create a central lock-on icon, for instance Elden Ring has a tiny white dot at the centerpoint of the target. I found this and the opponent health bar to be a little too busy on screen, so made the central icon a circle which changed colour depending on the target's health.

Whilst testing lock-on I discovered an issue with my original code from a few years back, I had always tested it with the player moving around the target, but not the target moving. This turned out to cause some nasty jitter due to the client being a tick behind the server. Rather than mess around in the depths of prediction I just took some old "target heading and velocity aimpoint" code from my old Aeronauticals air combat demo, and retrofitted it to have the client look 0.064 ahead, 1 server tick and 1 extra tick for the client being an engine tick behind. I added this code to my resource on the Torque3D website and slightly rewrote some of the original lock-on code to make sure that everything was using the render transforms that the client was seeing rather than the actual server positions of objects, something which I had previously noted in code about displaying names above objects whilst looking into coding the health bar for the target.

In other news some muppet crashed half the world's computers and offered discount pizza as way of apology. It turned out at some point other computer systems had been updated too, and Monsters Loot Swag no longer worked on Linux due to changes with Wine and so the DirectX driver needed updating ... but apparently no one mentions these things and you just have to use The Force to find out. Turns out there was a slightly larger D3dCompiler47.dll which needed to replace the slightly smaller one. Monsters Loot Swag now once more works on SteamDeck.

And that was pretty much July, numerous other things happened which I cannot remember, I got a tan when summer eventually arrived because you just don't know when the free vitamin D is going to disappear around here. After months of drowning in a seemingly perpetual deluge of rain, I am back to hoping for some wet stuff coming out of the sky as my water barrels are empty and the veg patch is parched.

Next month is the 10th anniversary of Airship Dragoon being on Steam. I thought about maybe doing "something" but the models were all exported using a system which doesn't exist anymore (pre-Collada), so anything new would not be compatible with older animations ... which is a bit of a bummer. The past is a foreign place where they do things differently ... so I think I will just let sleeping dogs lie on that one.

Thursday, 31 May 2012

I Break Everything And Then Fix It! Oh The Exciting Life Of Indie Deving!

I had a liver detox diet, lost the strange bicycle tire which had appeared around my torso, eat more fruit than anyone had ever eaten before, took up skipping - which is knackerising - bought a few crates of ale and a bottle of baffling expensive rum under the guide of death metal celloist (it was a very pretty bottle),
sat about in the garden because it had finally stopped raining in the Shire of York after the wettest Spring since 1907. And even found time to break everything that I'd done dev-wise whilst trying to fix it.

So I ended up changing my art style again ... immediately after I'd decided on what it was going to be ...

So it is now more "painterly" and less "abstract".


I'd done a bit of refractoring my working level, shrinking the size of the hedges a little and opening more gaps between them. I'd also noticed that I'd been getting a fair few failures on pathfinding with the Recast resource. My terrain is very bumpy and I'd set >1500 custom class CoverNodes about and done pathfinding between them with an automated script to test around 7 million paths. Initially I'd a rather worrying 2.5 million failures, and after a bit of saving throws in my pathfinding scripts, I'd got that down to <200k, and then thrown in a simple "move to nearest node where you can actually get a path" incase that 3.7% failure rate occured in game.

I'd improved my Ai, getting them to make decisions about when they should try and hide from the player. Previously they'd either stopped at distance if they were "support" or advanced if they were "assault". I've always been a fan of turn based strategy/tactics games ... which is why I'm making one obviously ... but sometimes their Ai has been a bit ... daft. Steel Panthers I'm looking at you. I added in a whole load of new thinking to make the computer act more in the way a player would, but still using it's randomized battle plan.

Suddenly my Ai were filled with awesome and powered by buttkicking, so it was time to remove all the little helpers I'd given them previously to make them more competitive, like maxing out their stats, they now get the same chances for decent stats as the player.

Which all goes to make battles more competitive, varied and fair.

Somewhere amongst all of this I'd noticed a few bugs so I'd fixed them, and thus managed to break "many things", again mostly pertaining to the Ai. After a fair bit more hitting IDE with a mallet I got things working again as they should do.


I'd also made a start on creating some player characters - or at least a "base character". I'd looked at some of the meshes that I'd got from Evolver for use in Blender some time ago, and studied one of these as a base for rigging and animating a custom character. I'm doing a SteamPunk vibe, so everyone "struts imperiously". I'm still using Ye Olde Blender 1.44 with DTS exporter 0.964, though I export with collada for the foliage/trees/bushes so I can use vertex painting.

I'd also made a whole load of improvements to my GUIs, such as adding a new button for reserving a shot at half maximum range if you don't want your little chap to be wasting shots on things miles away that he's unlikely to hit. In "loadout" I'd also added the ability to equip one chap and then have his equipment cloned to all unequipped troops - money and individual strength/encumberance permitting - which is incredibly useful when you have a bag of Conscript Militia who can only use basic equipment until they get promoted ... should any of them survive the battle.

Still to do is a bit more Ai thinking tweaking, a bit more environment tweaking, creating some finalized models for troops and weapons, testing the assault and defend gametypes, doing the art for GUIs, and errr ... general stuff. My bug fixing list gets smaller, my todo list doesn't seem to. Oh the exciting life of Indie Deving!

tl;dr good things happened, bad things got fixed, I'm eating a lot of fruit.

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, 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 ..

Wednesday, 30 June 2010

The Big Ai Test -> Post Debug Hell - Corporate Devs Free Beer!?

BBBBBBZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzzzzzzzzzZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Anyone else got a funny buzzing in their ears ... ?


Whoa - almost missed a monthly update ... so ignoring the sudden outbreak of tinitus ...

So ... Ai is ... about sorted ... there's a few rough edges here and there ... but it's about sorted.



It's got Dijkstra pathfinding ported over from my original ancient demo and it's got basic dynamic avoidance for when they run into each other ... something more high tech than my previous "bounce off each other" that dated from way back when.

And it's really 3 Ai routines in one. There's my originally conceived Call of Lawyers style trigger based, squad Ai movement goals ->. It's a scripted design to get Ai exactly where they are wanted.


It was supposed to be "gratuitous bunny slippers" but turned into "gratuitous bum shots" ...

And then there's two fully dynamic routines.

First up, is a simple "move towards nearest enemy", think of it like rubber banding. The Ai selects the nearest target and moves towards it regardless of whether it could actually be detected or not. It's supposed to be a little trick to force action to happen, and can be used against a specific target - eg: the player.

The second method is purely dynamic, with the Ai deciding it's goals visually and then with an audible fallback if it cannot see anything. Failing to detect any targets at all means that it will patrol randomly.

Visual targeting, whether for dynamic goal decisions or just plain shooting is decided across a number of visual factors from how alert the Ai is, the angle at which the would be target is, the distance, the target's pose - lying in a bush being a lot harder to see than jumping up and down, whether the target is firing itself (aim for muzzle flash at long range), and so on and so forth.

Hearing is done by a mixture of Ai alertness, target noise - if it's shooting, or close range movement - creeping around just behind. There is also a state of "global alertness" so if an Ai is far away but can still hear gunfire they'll stop chilling and start to investigate. All of this enables the most basic use of stealth possible.



Each of these 3 methods come off the main Ai routine and allows for instant changing between them if required --- it also helps to keep the Ai integrated, and avoids many different datablock/functions from being created for seperate types of Ai --- though it also might have just been me wanting to try and keep things tidy and integrated together as one. After so much going back and forth between things as I teach myself development - I didn't fancy doing that with my Ai, so it's pretty much everything that I can think of, which I would need.

In testing this integration works fine for both ranged-based and melee-based Ai.


Zulus! ... I mean, PathNodes! ... thousands of 'em

Ai have stress and threat levels (one used to check the other) so depending on how much threat they are facing depends on how they act, from running around normally -> to ducking and being cautious -> to being pinned down -> falling back -------> to full blown rout with accompanying cover head and flee animation.

All of these states can also be scripted/triggered rather than engage organically, and of course they can also be ignored.

Needless to say all this took a fair bit hammering away at the old keyboard - and then even more time debugging all of my errors - especially as it seems far too easy to get one thing working, go on to another, and then break the first. Mr Fairfax has my sympathies ...

After much happily hunting around a maze working all the issues out -

... like isObject really means doesExist which technically isn't the same thing ...

- it was time for some large scale testing and a chance to try out a community script snippet for automated pathnode grid creation, which works quite nicely out of the bag.



First up is something I seem to have recorded at entirely the wrong size - cos that ain't 720p. It's an initial outdoor test with a fairly widely spaced nodegrid.

There are 32 Ai, split into 2 teams, all of whom are using the Dynamic audio/visual Hunting routines. It's a bit laggy with the forward rendering of the shadows, and the paths were not precompiled but getting built from the node grid when requested. Without the extra overhead of the video it was giving around 40fps in-game. It does give quite a nice "organic feel to a battle".


1080p test - but you'll have to click the YouTube sidn to get the HiDef source ... though YT insists on chewing on my quality

Second up is the same battle but with shadows disabled to lessen the stress on the GPU and 50 dynamically hunting Ai to heighten the stress test for the CPU. Paths are precompiled this time. Even in the midst of one helluva firefight, fps keeps between 60-90, depending on how many Ai have to render LOD_0 up close to the camera.

So all in all, I'm pretty chuffed, --- or maybe that should just be relieved ... and talking about blowing your own trump-vuvazela... stuff!

Also stuff - BBBBZZZZZZZZZZzzzzzzzzzzZZZZZZZZZZZZ and a big ball of fire in the sky the likes of which this part of cloudy Auld England doesn't get terribly much of, have been vying for my attention this month. As had a weekend break --- No use of a contomiter for three days! Possibly a new personal record though I did get to go to some Corporate Dev's own bar (instead of a sign advertizing the company building, they just have a normal brass name/number plate with the face buttons of their controller in the corner) ... and the booze is subsidized! 6 bottles of imported Euro lager and free popcorn for 7 quid (10bucks). It is still just a glorified canteen with coloured chairs though.

I was the only person wearing a tie and suit jacket. ... goddamn hippies ...

Wednesday, 20 January 2010

Cliche versus unCliche! Also Less Squinting and Forget How to Draw

I decided to take advantage of the New Year Sales - also getting in before VAT was going to go back up to 17.5% - to rid myself of the constantly malfunctioning Dell RAID setup which I've spent 3 years complaining about ... but not done anything decisive to stop complaining about it. Well I have now, getting a single Western Digital with more cache than the RAID, and also the new working copy of Vista ... I think it's called Windows7 ... but basically it's Vista without the bugs.

Also, whilst my folks had spent a month in the States jamming with 1950s rock stars, I'd swiped their digital TV to use as a monitor. I had quite liked this on the grounds that previously, on my old 20inch monitor I couldn't read text on the internet at full resolution and modeling in Blender was a pain. So I invested in some screen real estate and bought a 1080p TV to replace my monitor, and I can now see what I'm doing in full resolution without squinting. Or drop a resolution and everything is HUGE.

After a bit of "faffing", I got the brightness, contrast, colour to be the same as my monitor.



I feel a sudden need to explain that I don't really have the illustrated desktop background ...

Right, that's my budget for the next decade blown - back to deving.

I'd needed to come up with some sort of bad guys of a scary humanoid nature. So, I started on the Cliche. Scary Humanoid Monsters come in a variety of cliched forms ... they're cliches because they're humanoid and thus familiar, they look a bit like "us" because that's basically what they're based on (not to mention often in film they actually are a guy in a sweaty rubber suit), they are familiar and yet alien.

They are most often slow moving hunters, stalking their prey, creeping out of the background to eat/maul/shag the stupid human who is centre screen, waving a flashlight around to draw attention to themselves (apparently it all adds tension). They do come in sub-sections, zombie, Nosferatu (as opposed to sparkling vampires ... bawwwww!), and the humanoid alien monster aka guy sweating in a rubber suit.

Mostly I just plan the visual stuff in my head and then model/texture it stream-of-consciousness style. However I decided to do a bit of pre-planning.



Which is when I forgot how to draw ...

The problem with the humanoid alien is that there is no way of avoiding the cliche of a certain HR Giger designed humanoid alien. It's either that or Blue Space Furries --- or a guy with pointy ears and blue blood.

At first I wanted a fairly smooth mix of grey bone and pink skin - and tried to swipe the mouth shape from the "pink thing" in Pan's Labyrinth. I didn't quite manage to get the same "choked look", but never mind (probably should have bloated the tongue out more).

Anyhow, this all caused plenty of frustration and I just couldn't get something that I liked --- so instead I decided to do something that was bearable, ditched the smooth bone/skin idea (the whole "grey" thing stank too much of cliche for this particular cliche) in favour of a rough, almost oxidized look with a hefty metal shine. Animations seemed okayish, I wanted a it to sort of strut or "mince" -- yes, "mince" -- as it lopes slowly(<--cliche) torwards at it's prey.



It's got big hands ... all the better for flailing around and battering the player ... like a zombie ... Giger's alien ... the rest of the slow moving humanoid monster cliches. So I decided to throw in an unCliche ... which might actually be a cliche in itself ... or ... something ...

Anyhow, the slightly glowing bits are the hint, and they wash around the model's body. Fade isn't currently functioning, so it's a bit on/off when it happens.



The initial tests were just based on collision events, and then redone so that it attacks via a raycast based on range from target (only about 4 metres). Purple Swirlyness, some damage via a smartbomb effect (doesn't hit teammates) that goes out to an area of around 8 metres rather than just hitting it's target, lots of impulse, no clawing. And as an added cliche - ondeath, it goes out with a bang! Energy Explosion Audio provided by my GPU fan running Torque - and then flanged in Audacity (if it sounded like that normally I think that there would be something very wrong!).

All-in-all, not as bad as it could have turned out, and the colourful explosion effect is quite nice, distracting and I think can generally cause some confusion in-game. Guess I need a variation on the theme, players love variety, and some sort of fast-moving-but-easier-to-kill-hunter-cliche is probably on the cards, some more humanoid aliens that can use guns, and then the really awkward task of making some scary starfish aliens which really look alien (pulls out the Lovecraft books) --- hope I remember how to draw by then ... I'm really out of practise.

And what they look like in action against a conventional army.

Tuesday, 8 April 2008

Integrated AI Routines Test

A(nother) test of pathfinding (from previous post) which is now using Astar, my new targeting and combat routines, and a basic "Teflon" script to stop the AI bumping into each other and getting stuck. They do try to check for a clean shot but I've still had to use a friendly-fire suppression script for blue-on-blue projectile collisions, especially with the spread of shotguns.

I had followed a tutorial on how to make decent quality videos for posting on YouTube, but it's still not great quality once uploaded. The audio files are placeholder sounds scrounged from games I own. Sorting my own audio out is currently a low priority. Getting a working-but-dubious-demo is the priority.



Not a commentary on China and Tibet. It's just riot coppers fighting armed civilians (who need their LODs fixing).

Thursday, 13 March 2008

Red Team vs Blue Team basics

My first battle test, built to test AI team based code and their targeting and accuracy system. No real pathfinding, just basic avoidance of the lone building.