dim3 Forum

dim3 Other => Idle Chatter => Topic started by: Galavant Garde on December 27, 2016, 02:19:30 PM

Title: One Of Them
Post by: Galavant Garde on December 27, 2016, 02:19:30 PM
(http://cayelanmendoza.com/OneOfThem.jpg) (http://cayelanmendoza.com/OneOfThem2.jpg)

I finally have a name I'm happy with for the zombie game, also Dropbox is about to change Ts & Cs meaning all the pictures from the previous thread will disappear, so time to start a new thread I guess (images won't vanish on this one because I'm using my own website server)

I'll post updates and info here from now!  Currently working on making the zombie look meaner/better - the above artwork is just a quick experiment
Title: Re: One Of Them
Post by: Logan on December 27, 2016, 02:25:52 PM
Sweet! Still watching this
Title: Re: One Of Them
Post by: Galavant Garde on January 03, 2017, 04:20:32 PM
In order to help the enemy AI work out how to engage the player when there are other enemies/objects/obstacles in the way, I'm developing a new vision routine.  Here are some beta shots:

(http://www.cayelanmendoza.com/BetaRays.jpg) (http://www.cayelanmendoza.com/BetaRays2.jpg)

Green means no risk of friendly fire, red means there's a risk of friendly fire, blue means clear shot.  It needs a lot of tinkering before it's ready for the prime time, but the idea is this will help particularly in tight spaces (such as the pictured hallway above) so that if lots of bots are in one tight space they'll be able to know when to hold fire and wait, or when to start shooting/attacking.  In the first picture, you can see the bots either side of the zombie have clear (blue) shots, whereas in the second shot, the bots up the back are at risk of friendly fire if they shoot (hence red) so they'll hold fire

I need to do this because the sight test built into the engine can see the player through some pretty tight spaces, so if I use that as the only deciding factor when the bot decides whether or not to start shooting, it's very easy for friendly bots to get clipped by projectiles.  Indeed my bots kept killing each other when trying to shoot the player because of this.  I'll need to use the built-in sight check to decide whether the bot can see the player or not, but then use this additional vision routine to decide whether or not to shoot.

Note those lasers are spawned by the invisible 'sight' projectiles the enemies use to scan their surroundings to help me see what the enemies are up to.  They're just to help me while testing - you won't see them normally when you play
Title: Re: One Of Them
Post by: Galavant Garde on January 13, 2017, 06:14:27 AM
Enemy AI progress:

The new vision routine is working great!  It's not perfect, but enemies are now effectively deciding whether or not there's a risk of friendly fire and not killing each other all the time.  Also they don't get stuck on each other as frequently (it does occasionally happen if you let them all clump in a small corridor, but it's eons better than it was) and now they're excellent at hide and seek.  If you run off into the darkness, they're pretty good at working out where you 'could' be, and as one of them spots you he tells all his friends.

To test it out, I've been getting deliberately spotted, then running off and hiding to see if they can find me.  9 times out of 10, they do!  And when they don't, they start a randomised frantic search and rake the map until they eventually find you.

Basically, when I play without using the invincibility cheat on, it's actually a challenge!

I've also randomised the majority of the delays between chains so that the enemies don't tend to do things in sync with each other too.  This variable reaction speed makes the game less predictable, so in some scenarios you'll have a lucky escape whereas in others it's game over!  I'll drop an updated download link asap  ;D
Title: Re: One Of Them
Post by: Galavant Garde on January 18, 2017, 02:12:09 AM
Try out this demo:

https://dl.dropboxusercontent.com/u/46335427/One%20Of%20Them/One%20Of%20Them.zip (https://dl.dropboxusercontent.com/u/46335427/One%20Of%20Them/One%20Of%20Them.zip)

This update is all about the enemy AI.  What you should hopefully see is:

- No more friendly fire
- Should hardly ever get stuck on each other
- No more synchronised behaviour (waits/delays are all randomised)
- Better team work
- They spread out when searching

It's still very beta so you'll see all sorts of odd messages in console I've been using to find leaks/breaks in chained functions.  If you want to toggle the rays the bots project to visualise how they see and navigate, open the console and enter 'lasers on' or 'lasers off'
Title: Re: One Of Them
Post by: Galavant Garde on January 19, 2017, 04:21:30 AM
Working on the enemy models finally.  Starting with experimenting with flashlights:

Title: Re: One Of Them
Post by: `teh1 on January 19, 2017, 09:10:39 AM
The amount of effort you've put into this shows! Well done. I did cause the AI to break one time when I got caught up in a corner. They started standing inside of each other to shoot me, and shot very slowly even though I was in plain view and was not running. Eventually they walked on top of me and I sat there for a good 30 seconds with 3 of them on me before they finally shot me to death. I think they were having trouble acquiring a lock.
Title: Re: One Of Them
Post by: Galavant Garde on January 19, 2017, 11:57:49 AM
Yay thanks Ryan!  I was hoping that scenario with bots stuck on bots was a thing of the past but sounds (quite hilariously and annoyingly at the same time) like it's still there...  As for their ability to land a clear shot, yeah lemme look at that  :-\ I'd guess it's when they're in a bit of a clump or stuck on each other, their lasers are going to hit their bot friends because they're standing too close

PS the bots will have new models in the next update  8)

Title: Re: One Of Them
Post by: Galavant Garde on January 23, 2017, 04:49:10 AM
Bot update - how they avoid getting stuck on each other:

- When bots touch, the one with the smaller ID will turn off contact then try to run to a 'dodge' spot it calculates by firing projectiles at the ground around it in a circle until one returns with free space
- When they reach their 'dodge' spot, if they are not obscured by another object they'll turn contact back on then carry on as normal
- If they reach the dodge spot but are obscured by another object, they memorise an array of nodes including the one closest to it and any nodes directly connected to that one
- They'll teleport to the closest node
- If they are obscured by another object at that node, they will teleport to the next node in the array then memorise all nodes connected to that one
- If they continually land on nodes obscured by other objects, they will simply follow the node path until they find an unoccupied node

Sounds clunky, but it works faster and smoother than you'd imagine (because the level is so dark and there are flashlights drawing your attention away)

It's tricky to code around the fact that their models get stuck on each other when they run into each other (this is why I'm turning off contact) but I'm thinking more and more that the way to go is to build levels with as few narrow corridors as possible, or perhaps only making narrow corridors at parts of the map between zones where stuff happens, and once you leave a zone it seals.

Anyway here's a screenshot showing the new guard models all clumping around the player but not getting stuck on each other while using flashlights:


EDIT - the download link has been updated - it has the changes to the enemy AI I mentioned above, and new enemy models.  Also when you throw rocks at enemies it's pretty satisfying - I think I might make that a thing you can actually do in the game (at the moment it doesn't hurt them but it looks pretty funny)
Title: Re: One Of Them
Post by: Galavant Garde on January 26, 2017, 05:02:29 AM
Still not perfect but guards are grouping together and not freaking out/getting stuck anymore :-)


Have also started building the escape route:

Title: Re: One Of Them
Post by: ggadwa on January 27, 2017, 07:26:17 AM
That last shot is very pretty!

[>] Brian
Title: Re: One Of Them
Post by: Galavant Garde on January 29, 2017, 05:30:01 AM
Thanks Brian :-) and it's aaaaaall Dim3
Title: Re: One Of Them
Post by: c^5 on February 01, 2017, 06:26:13 PM
Haven't tried this out in a while, it's definitely coming together! Some thoughts:
- Is there any way to save your game right now?
- I really like the intro scene--but you should probably also have a way to skip it for players who have already seen it
- I managed to get stuck while jumping out of the window one time, not sure if I'm able to recreate it or not due to the above. I ended up hovering above the ground but not quite on the window ledge, unable to move and trying to jump just lead to the attack animation playing
Title: Re: One Of Them
Post by: Galavant Garde on February 02, 2017, 04:22:14 AM
Oh hey c^5 thanks for checking it out, I haven't built a save system yet.  At the moment the prison is the playground map where I'm trying out scripts and ideas, and once the game has an actual purpose and different courses/chapters I'll put in a save system.

There's no user-friendly way to skip the opening scene yet; for now just open the console and type 'skip'.  I will definitely add an easy way to skip it tho, and when the save system is built it'll start up without showing the scene if you've seen it before.

That window you jumped out of is supposed to have an invisible object on it that starts a mini cutscene when you touch it; it must have been a glitch whereby the script failed to catch the touch event.  I see occasional glitches with events not being registered (usually it's the animation event whereby the player model keeps doing the walking animation even though you've stopped walking, or gliding across the floor with the standing still animation playing) and when I restart the engine it's fine.  Not sure if I'm just running too many scripts at once and the engine is too busy, or if Dim3 needs a little update
Title: Re: One Of Them
Post by: Galavant Garde on February 18, 2017, 10:36:15 AM
Little update - building a new highway level:


Have also thought of a new interaction which I'm going to experiment with - the zombie vomits, and enemies can slip over in it :-)
Title: Re: One Of Them
Post by: Galavant Garde on March 02, 2017, 09:01:02 AM
Dilapidated petrol station on the side of the freeway:

Title: Re: One Of Them
Post by: c^5 on March 03, 2017, 11:50:19 PM
I really like the atmosphere the background of the gas station pictures. I recently read Time Out of Joint and it really reminds me of one of the scenes from later in the book for some reason (minus the Zombie  :) ).
Title: Re: One Of Them
Post by: Galavant Garde on March 06, 2017, 12:40:59 AM
Dystopia 🤙 That kind of unravelling of the world around you theme is what I want to emulate in this game, because the player gets to see just how messed up & cruel the humans really are. A dark & crumbling world totally helps to illustrate that actually, but I didn't have that in mind when I started making it...just thought it looked cool. So now that you mention Time Out Of Joint, my brain is like ARGH with ideas, thanks!! I'm gonna stick with this aesthetic & use it to illustrate the eroding facade of civilisation (deep stuff)

Title: Re: One Of Them
Post by: Galavant Garde on March 16, 2017, 07:08:22 AM
Little update - creating a node network for the bots to navigate in the new freeway map.  Going to make a blockade somewhere along the road forcing you to have to find a way around


I think I'll need to add a routine to the bots too so they use their flashlights when they're in the dark, not just to see you when you're in the dark.  Otherwise they walk around in the dark and you can't really see them until its too late.

Anyway I'll keep posting as stuff develops
Title: Re: One Of Them
Post by: Galavant Garde on March 30, 2017, 01:54:06 PM
So I finally sorted out my web host - I can now upload large files!  Meaning now that Dropbox public folders have been retired, I can post download links again!

Here's the latest playable beta of the game - http://galavantgarde.net/oneofthem/OneOfThem.zip (http://galavantgarde.net/oneofthem/OneOfThem.zip)

EDIT - my web host wasn't quite what I expected, so I've killed the site.  That means you can't download the beta for now.  It'll come back soon don't worry
Title: Re: One Of Them
Post by: Galavant Garde on April 13, 2017, 06:24:07 AM
OMG can't believe I didn't think to implement this sooner!  So, enemies hear your footsteps!  It means 1) you gotta be sneakier, and 2) when they're chasing you, they can easily follow your footsteps!  Suddenly, they're better at tracking you down, instead of standing there confused from afar when you slip around a couple corners

So depending on if their alert level is low, medium or high, they'll be able to hear further.

PS I'm almost done with the second level!  And here's a random screenshot of enemies finding me hiding under a desk:

Title: Re: One Of Them
Post by: Galavant Garde on April 30, 2017, 03:42:24 PM
Significant progress in the past few days:

Prison map has had a big makeover:
- real stairs instead of weirdly textured ramps
- layout opened up so you can see where the heck you are actually going
- more pillars and other map geometry you can hide behind
- bye bye nebulous stairwells
- built in glorious glass ceilings letting more moonlight in
- light bollards have made an appearance improving the look of outdoor lighting
- more vents built into the map can be yelled into to make distractions for enemies
- guards have 'hiding spots' where they run to when they're scared

Scripting improvements:
- icons appear on the HUD telling you when a contextual action is available (such as pick up rock, yell into vent, aim/throw, vault over a barrier/bench)
- resolved action button conflict where throwing a rock close to a vent made it irretrievable (trying to pick it up would make the zombie yell into the vent instead)
- I 'think' I resolved a scripting conflict that caused the engine to unexpectedly crash (believe it was something to do with the 'hide all bitmaps' command when no bitmaps were actually shown)

These changes go a long way in making the demo more playable and smooth!  I'm finally starting to see glimmers of a 'real game' now
Title: Re: One Of Them
Post by: Galavant Garde on May 01, 2017, 05:35:17 AM
Here's a screenshot showcasing some of the improvements I mentioned in the last post.  Better lighting, more game-like layouts with structural stuff that makes a bit more sense/gives you places to hide, improved lighting, a little contextual instruction on the screen depending on what your action button will do (in this image you're holding a rock):


You may notice the glowing wasp images - going with wasp venom as the experimental treatment that was supposed to make the prisoner placid and compliant, but it obvs has a different reaction in a human than it does on cockroaches (crazy I know)

EDIT - looking at this from my Mac Pro through the TV, it's pretty dark.  Looks fine on my MacBook though.  How does it come out on your displays?
Title: Re: One Of Them
Post by: c^5 on May 01, 2017, 09:15:10 AM
Improvements sound neat!

EDIT - looking at this from my Mac Pro through the TV, it's pretty dark.  Looks fine on my MacBook though.  How does it come out on your displays?

Looks pretty dark to me on both my Macbook and on my external monitor, hard to make out what's going on in the parts of the scene that aren't directly lit.
Title: Re: One Of Them
Post by: Galavant Garde on May 01, 2017, 04:34:39 PM
If I put the gamma up a little bit, it comes out like this:


Any better?
Title: Re: One Of Them
Post by: `teh1 on May 02, 2017, 07:49:41 AM
All your images just broke as of yesterday. They redirect here:

Title: Re: One Of Them
Post by: Galavant Garde on May 02, 2017, 02:22:42 PM
Argh my web host has been such a pain lately. I'll get on that asap
Title: Re: One Of Them
Post by: Galavant Garde on May 05, 2017, 04:23:04 AM
Got my web host sorted so the images are back.  Here's a new one showing the start of a new enemy capability I've been working on:


When you kill a guard, and another guard comes across the body, he goes up to it to inspect and says something like "J-j-j-johnny!" or "He's dead!" and "OMG" etc.  The moment they spend by the body gives you a chance to run, or spring an attack on them.  Also, the body will only interrupt an enemy's routine once i.e. they won't all keep stopping to check the same body.  Need to polish it a little as they kinda stand on their friend's body, but it's getting there.  I also know this screenshot is a bit dark - still finding the right balance to lighten the game up while keeping it dark
Title: Re: One Of Them
Post by: Galavant Garde on July 22, 2017, 08:09:44 AM
This is still happening BTW, been busy working on other projects.  But I started building the sewer network for level 3, will post updates soon  :D
Title: Re: One Of Them
Post by: ggadwa on July 24, 2017, 06:22:01 AM
This is still happening BTW, been busy working on other projects.  But I started building the sewer network for level 3, will post updates soon  :D

Everything is slow around here, but we're all still working :)

[>] Brian
Title: Re: One Of Them
Post by: Galavant Garde on November 05, 2017, 03:40:09 PM
Oh hai, little update after putting this project on hold while working on some music stuff...

Here's a little screen grab showing you how all of the gameplay mechanics I've been working on have come together to make the game a game:  https://youtu.be/Vsn_fAD3Rpk (https://youtu.be/Vsn_fAD3Rpk)

I know it's a small thing, but I just scripted in a different way of handling walking backwards in that it's always slower than running forward with an awkward backward walk animation.  I mention it because your forward speed and animation changes depending on your health, but your backward speed is always slow, so I had to get the script to remember speeds and animations based on health each time you change direction. Really basic I know, but details count. Seeing though guys script little details like this all the time bringing your projects to life, you'll appreciate how fun it can be when unpolished stuff starts to work seamlessly

Still on the list of things to do is avoiding enemy clumps in small spaces  :o
Title: Re: One Of Them
Post by: Galavant Garde on November 14, 2017, 03:03:21 PM
Another little update - have ditched crawling as I'm not really happy with how the model interacts with the map when laying down. Instead the player can crouch down to hide, as you can see in this little clip:

https://youtu.be/SUiaud1XJ4k (https://youtu.be/SUiaud1XJ4k)

Have decreased the default gamma and chosen a darker ambient light colour, added in a graphical representation of noise you make through vents, and worked a little on the enemy AI. Now they shouldn't start teleporting all over the map when they get stuck on each other; they pass through each other until they find space (still needs work - the clip shows one little teleport but that's triggered  by wall collisions rather than contact with other bots) let me know what you think  :D
Title: Re: One Of Them
Post by: Galavant Garde on November 16, 2017, 01:31:40 PM
I know it's quiet around here, but IDC Imma keep postin

Been trying to work out how best to get my enemies to stop clumping when they're in narrow corridors.  I realised why my code wasn't working how I intended it to - I was using the Touch event whenever they bumped into each other to trigger their who-should-stay-put-and-who-should-get-out-of-the-way logic.  However, it turns out bumping into each other also triggered the Collide event every now and again, which I was using for wall collisions...I was using a totally different logic for bumping into walls after straying from a node path than touching another object, hence my bots sometimes just got stuck and did stupid things like teleporting and running in circles etc.

SO, I've stopped using the collide event all together, and it's already working better!

Now my biggest bugbear is how the closest node for a bot to run to is often on the other side of the bot to where the following node in the path is...hard to explain without a diagram, but essentially the bot runs one direction for a short distance, then beelines the other direction because that's where the next node in the path is.  Know what I mean?  Ideas on how to avoid that??  I know I could probably do a calculation for which is closer - the first or the second node in the path...but that seems too manual and clunky.  IDK I might give that a try and see how efficient I can make it
Title: Re: One Of Them
Post by: Galavant Garde on November 19, 2017, 05:37:11 AM
Yay coding breakthrough  ;D my bots don't get stuck on each other anymore!  They're almost ready for prime time!!

This was such a pain, it may be of help to anyone coding their own combat bots to share what I did to make them work:

- If a bot touches another object, they check the object's name to see if it's another bot, something they should ignore (i.e. an invisible checkpoint etc), or the player
- If they touch a bot, they decide who dodges and who stays put by working out which one has a bigger ID (this way there can be no error - one MUST get out of the way)
- If the one who has to get out of the way (I'll call him the dodge bot from now on) is stationary, they will turn off contact allowing the other bot to run through them
- The stationary dodge bot then checks on a timer to see if they're obscured while contact is switched off - if not they turn contact back on and resume what they were doing
- If the stationary dodge bot is still obscured (i.e. the other bot stopped on top of where he's standing) the dodge bot will sidestep a few map units then check again if they're obscured
- If the dodge bot was actually moving at the time they bumped into the other bot, they'll side-step the other bot and carry on along their path completely avoiding any obscuring issues
- The bot which doesn't have to get out of the way (I'll call him the boss bot from now on) will carry on uninterrupted so that at least one enemy is always focussed on the player in any multi bot combat scenarios
- If the dodge bot runs in front of the boss bot in order  to get out of his way, therefore obstructing his view of the player, the dodge bot will engage the player until another bot accidentally bumps into him, and the original boss bot will readjust his position to get a clear shot of the player

It's a nebulous logic map, but it works.  It scales up too - there can only be one boss bot in any multi bot clump, so every other bot will become dodge bots and run out of the way. When they sidestep or whatever, the original boss bot will no longer be obscuring them, so one of the remaining dodge bots will become the boss bot, and so on until they are all spaced out (it happens quite quickly actually).  Side-stepping and dodging use a combination of nodes, and uncharted parts of the map the bot has verified is free from objects by firing invisible rays at the ground, meaning even if there's only one nearby node, they will be able to spread out wherever there is physical space irrespectively.  Also the timing is pretty tight, so you won't really notice bots occupying the same space for long if at all.

I've probably explained that poorly, but I'm just happy it works! You'll be able to pick it apart when I put the project data folder up for download again soon.

So now THAT'S done, I'm going to start working more on the player's abilities.  On the menu is being able to infect bad guys (which will completely change their behaviour and make their scripts that much more massive - here we go), and even just being able to yell/make noise to startle or mislead bad guys.  Because right now the baddies are a bit too fearless I find

EDIT:  Just added the ability to, well, basically just yell and make zombie noises.  It's SUPER useful when you're running around the dark as it allows you to trick enemies and run them around in circles trying to find you!
Title: Re: One Of Them
Post by: Galavant Garde on December 15, 2017, 02:37:35 PM
Little update:



Been working on improving the textures, particularly bump and specular mapping.  Have also just added new parts to enemy hearing - some sounds travel further (i.e. footsteps are quieter than yelling etc) AND enemies' sensitivity to those noises increases the more alert they are.  On the list of things to add is the randomised decision for a bot to run to a nearby bot to seek out help / tell him where he saw the player.

I'm also gonna organise a party at my place where my friends who come over will all make sound effects to be in the game lol, looking forward to all the 'urgh's and 'OMG it's coming!'s etc
Title: Re: One Of Them
Post by: Galavant Garde on December 18, 2017, 03:31:42 PM
Latest update - working on enemy AI, and I've just figured out a neat way of getting bots to keep tabs on which other bots are nearby, and whether they're aware of the player's presence or not.  By them keeping in contact in this way, if one spots the player but is too far away from other bots to just yell out for help, they will take a shot, then run to go get help!  It works really well!!

Once they've gotten help, they won't try it again until after they've lost the player and had sufficient time to calm down (this prevents disruptions to their combat routines - it'd be silly if they kept running off for help all the time).  Also, they won't run for help when the nearby bot/s are already aware of the player, as chances are they're already engaged in battle or are frantically looking for him.

It's pretty neat in action - I want to upload a build soon so you guys can try it out!  There are 3 playable maps now btw  ;D
Title: Re: One Of Them
Post by: Galavant Garde on December 21, 2017, 11:01:58 AM


Title: Re: One Of Them
Post by: Galavant Garde on December 26, 2017, 03:32:31 PM
Ok I've got a demo for you to try out:

https://we.tl/QgrOQ5iUhX (https://we.tl/QgrOQ5iUhX)

Been working hard on this - the enemy AI is probably the toughest I've ever built.  You really gotta creep around otherwise you don't stand a chance.  What you'll notice they do is:

- give chase when you try to bolt
- keep tabs on nearby bots so they can run to them for help when in trouble
- respond to different sounds in different ways
- change behaviour depending on if they know you're there or not
- keep an eye out for friendly fire
- literally kick you when you're down
- get sad when they find a dead bot

They're also much better at long-distance shots than before.  Now, while they do chase you pretty hard when you try to run off, it IS possible to lose them if you duck down in the dark behind something. So keep tabs on hiding spots you find as you go along.

Please tell me if you manage to get into the sewers under the bridge - I'm curious if the bots are too easy or too hard.  Also I know I'm going to need to add more places to hide, and more abilities for the zombie (like maybe hiding in a box and pushing said box around, could be fun) but for now please tell me what you think of the progress

PS if you get sick of the fit on the operating table scene, open the console and enter 'skip' to jump ahead to when he falls out the window and starts playing.  Also there is one action button, one melee button, and one crouch/hide button you'll need to set

Good luck  8)

Title: Re: One Of Them
Post by: Galavant Garde on December 27, 2017, 05:39:24 PM
Update on the way - I'm adding the ability to creep around so bots can't hear your footsteps. It's kinda a crouched walk. Also am furnishing the levels with more decorative stuff to hide behind and more decorative stuff to make it look better in general.  Also cutting a few vents out of walls and creating more escape routes so it isn't just a gauntlet slaughter fest.

PS check out how much nicer it looks - remember the first few screenshots I posted?

Title: Re: One Of Them
Post by: Galavant Garde on January 01, 2018, 05:35:19 PM
Will drop an updated link in a couple days - so far have added in auto-regenerating health, sneaking mode that doesn't make footstep sounds, bots can get scared and run off if you catch them unawares, got rid of the ugly snorkel vents and put some proper drains in that are actually visible and useful during gameplay, fixed a few dumb node-path errors with the bots, things like that. Still need to make melee more interesting, and probably add a bit of code where if you're hiding somewhere and they saw you in that area they stick around and search for a bit longer and more thoroughly
Title: Re: One Of Them
Post by: Galavant Garde on January 03, 2018, 11:04:23 AM
Hullo guys, first update for the year, and it's a big one!

Firstly, here's the updated link:  https://we.tl/vbdz1H3EfF (https://we.tl/vbdz1H3EfF)

This update introduces:

- new sneaking ability
- redesigned prison map with various nooks/hiding spots
- redesigned ray lighting
- automatic health recovery
- automatic camera height adjustments when theres low ceiling clearance
- more scenery
- refined vaulting over ledges
- can now vault from the sneaking/crouching position

The way these things all work together completely changes the feel of the game. To me it's starting to feel like an actual game now ;-) the sneaking and hiding behind stuff element is much more prominent, and it actually flows well. The bots are pretty formidable, and much better at working together. The ray lighting makes things not only look better, but being able to see the light makes creeping around and avoiding light so much more doable.

Feedback please  ;D be brutal, I can handle it



Title: Re: One Of Them
Post by: Galavant Garde on January 13, 2018, 04:05:25 PM
Little update video:

https://youtu.be/NXkaeJc0S_E (https://youtu.be/NXkaeJc0S_E)

The biggest thing to look out for is actually something you can't see.  It's the unnoticeable checkpoint saving and loading with no save screen or input from the player!  Less is more, plus I'm not a fan of the dim3 save screen, and it crashes a lot too.

I've rewritten the bots' vision and movement routines from scratch plugging a bunch of logic gaps and dead ends that caused odd behaviour in the past.  This has made them a lot better at filling a small space without getting stuck on each other (see up the top of the stairs in the video)

I also rewrote the math for bot aim when standing on different levels, and when the player height decreases.

The checkpoint thing is all manually scripted - was a big learning curve for me, but let's just say I'm dreaming in 'for' loops now.  The biggest issue I found with it was packing the Y angle of objects in the save data...took ages to work out that it was often freaking out because the Y angle had too many decimal places.  The way it works is, while still playing you can reload from a checkpoint smoothly, but if you quit and come back to the game later, it'll be at the start of that level. It's a tradeoff I know, but I'm pretty happy with it.

& before you say it, I know the action icon in the middle of the screen is terrible - it's on the list. Also I won't upload any more playable demos since nobody seems to try them out - will just do videos instead I think.
Title: Re: One Of Them
Post by: Galavant Garde on February 28, 2018, 04:37:46 PM
Still chipping away at this.  Have overhauled the enemy AI with moderate success:

New vision routine controlled entirely by the game script:
- Game script successively calls all bots telling them if player in range, FOV, and light;
- Calls will not interrupt what bot is doing unless player is ‘visible’ or within flashlight range;
- Bots ignore calls when in the middle of something important that shouldn’t be interrupted;
- As all bot vision is calculated sequentially in one script, there’s no lag from multiple simultaneous calculations;
- This routine allows bots to spot the player almost instantly while using less engine resources;

New touch/dodge logic:
- Bots now decide which bot should get out of the way by ranking importance of their activities;
- Precedence is based on if they’re moving or stationary, in combat or not, or in middle of something that can or shouldn’t be interrupted;
- If both bots decide they’re ranked equally, the game will decide for them;

Tighter logic map:
- Removed several hundred lines of unnecessary code including functions with duplicated functionality or that weren’t called regularly;
- Heavy use of function stacking making script easier to follow;
- Bots now able to work out if their chain has been interrupted/broken, and will start a new chain if this happens (this prevents freezing bots);

I'll make a video showcasing how much tighter the enemy AI is soon  8)

Still to do:

COLLISIONS!  ARGH, bumping into other bots works fine - bumping into walls is sadly still messy.

Also on the radar is implementing a ledge-walking mode where you walk against the wall along narrow ledges - should make for some fun action sequences
Title: Re: One Of Them
Post by: Galavant Garde on March 01, 2018, 02:54:05 PM

Better sky - kinda thought the yellow was too much...

Also, I know I've said this a load of times and later retracted it after finding bugs and stupid shortcomings, but the enemy AI is SO much more polished now.  There are a few physics issues that are holding them back (such as sight tests / projectiles passing straight through walls - this totally ruins everything lol) but as always I'm sure I'll work it out
Title: Re: One Of Them
Post by: Galavant Garde on March 10, 2018, 02:34:31 PM

- Fixed issue where action buttons still registered when player input was frozen;
- Player can now walk sideways along narrow ledges;
- Bots have more efficient/reliable method for noticing nearby bots to go get help from;
- Multiple wall collision events are now blocked out preventing bots from getting stuck on walls;
- Bots now filter noises more effectively reducing confusion/broken chains;
- Improved rock-throwing method including ability to abort a throw while aiming;
- Improved bot melee reducing friendly hits;
- Improved bot animations;
- New lightning effect;

Check out the lightning effect and the ledge crawling here:


For the lightning I've gotten rid of the over-saturated ambient lighting effect - now it lights everything up nicer, you see the shaders/bump maps properly, and there's a flicker to the flashes making them look more realistic.  As for the bolts themselves, they're auto-generated using the dim3 lightning api...I think I'll ultimately get actual lightning bolt images and put them on large transparent frame-changing panels in the distance or something like that
Title: Re: One Of Them
Post by: Galavant Garde on March 14, 2018, 04:14:27 PM
Latest update - I realised side-scroll mode is limited to the X axis only, which would mean I'd have to build levels with ledges/cliffs/whatever all facing the same direction.  Which is sad.  So I modded the engine adding side-scroll input from X/X-reversed/Z/Z-reversed axes! Here's a little snap taken out the side of the prison:


So you can be running around in 3rd person view with FPP input mode, jump out a window or whatever, and regardless of which direction you're facing or the ledge is pointing, you can land on that ledge and switch to side-scroll mode.  Walk left means walk left, and walk right means walk right, regardless of the player's orientation! Small thing I know, but it adds a lot in terms of gameplay dynamic - a lot more so than other bits I experimented with like yelling into vents and knocking out lights
Title: Re: One Of Them
Post by: Galavant Garde on March 18, 2018, 01:32:06 PM
https://youtu.be/IUqLXE6Ywe4 (https://youtu.be/IUqLXE6Ywe4) redid the opening sequence, a bit shorter and (I think) better
Title: Re: One Of Them
Post by: Galavant Garde on March 22, 2018, 10:36:44 AM
Fixing up the zombie model, better or worse?
Title: Re: One Of Them
Post by: Galavant Garde on March 26, 2018, 06:03:07 AM
Focusing on making everything look better at the mo...dark pictures I know, but the player and bot models have been redone with better UV mapping, and I've adjusted the geometry around joints to make for less jagged body parts when they move around.  Still have a few odd triangle shadows around the lower back which I need to improve...getting there
Title: Re: One Of Them
Post by: Galavant Garde on May 28, 2018, 12:50:43 PM
PS for anyone still following, I just made it so the player leaves blood patches when shot, and you can slip over on them!  So far it works pretty well, not ready for me to share a video or any screenshots yet, but it's a really fun interaction I don't think I've seen in an RPG like this before...can really save your skin if bots are chasing you but slip over
Title: Re: One Of Them
Post by: Logan on June 02, 2018, 01:15:05 PM
I'd like to play this at some point, do you think next time you put out a build you could do a windows version too?
Title: Re: One Of Them
Post by: Galavant Garde on June 03, 2018, 12:20:06 PM
Ah Windows. Well there is a Win32 build of dim3 already on http://klinksoftware.net/download/ so you could just add the data folder and it should work...only thing is that I've modified the engine a bit so the game can do side-scrolling input on the x, inverted x, z, and inverted z axis (the official build only does x) so you'll get errors and strange behaviour when you jump out windows and shimmy along ledges.

I'd love to get it on Windows though if you fancy helping me compile it?  I don't have any Windows machines you see...
Title: Re: One Of Them
Post by: Galavant Garde on June 06, 2018, 03:10:47 PM
Turns out Apple is killing 32-bit soon (amazed it lived this long to be fair), meaning dim3 needs a bit of work under the hood if this little project is ever going to be more than just a hobby. So I'm working on getting the PNG and MPG libraries inside dim3 upgraded to x86_64 (the PNG one is proving to be particularly difficult) so with a bit of persistence and luck you'll hopefully see "One of Them" published under the dim3 flag in future just like Ronja & Sinking Sally back in the day.  If I can successfully compile the engine without any i386 code I'll put it up for you to download!  If anyone wants to lend a hand upgrading the libraries I'd be eternally grateful!

I'm also brushing up on my Unity skills too as a plan B.  I know it's more up-to-date and flashy, but it's really resource-intensive, plus I'm really fond of dim3

EDIT - openGL and openCL are being killed off too...yeah that looks like the end of it
Title: Re: One Of Them
Post by: Galavant Garde on June 13, 2018, 06:16:13 AM
Ok so the latest with this project is I've got slipping over in blood working solidly, and when a bot slips over and you rush at them, they see you running at them and they freak out covering their faces.  You can slip in your own blood too, so be careful. It's really fun!

Ledge walking also works solidly, throwing rocks as a weapon/distraction works, lighting is a tonne better, checkpoints and auto-saving (custom scripted) work great, sneaking VS running is functionally integrated into the gameplay, and the enemy AI is at a point where they don't get stuck on anything really plus they store enough variable data that they can easily resume whatever they were doing if they're interrupted by anything.

With all that, it's pretty solid and playable now.  This is the point where I'd start building levels and assets to make the whole game, however with the upcoming changes to macOS killing 32-bit and depreciating OpenGL/OpenCL I've sadly had to start porting the project to Unity.  Big setback, but good to apply what I've learned from you all and from using dim3 to a more modern engine that'll make the game really pop.  Here's one last moody dim3 screenshot:


And here's a Unity screenshot:


I'll still do tweaks to the project for dim3 as it's a proof-of-concept demo I'll be using/showing people - when I do I'll post em here
Title: Re: One Of Them
Post by: Galavant Garde on September 25, 2018, 02:08:28 AM
I've done a few updates to the Dim3 version of this project - turns out Dim3 still works fine on Mojave so no need to kill it completely just yet.  Now there's a nice long desert freeway to run to freedom along.  Still need to add enemy banter and a proper menu, then it'll be essentially done!  Which is exciting - I put a lot of time into this.  But also sad, because it's actually really solid and playable, but it'll never see any consoles or phones / tablets in its current form.

RE moving over to Unity, Dim3 actually makes a bunch of things surprisingly easier.  For example, in Unity there's no easy way to work out how bright the light is over an object.  Dim3 made it easy to build light-sensitive enemies (thanks Brian!), but with Unity I need to attach a script to each light that monitors the player distance VS the range of the light, and calls the player to tell it when it's in the light or not.  Nuts!  Also, knowing if you're on top of an object in Dim3 is a piece of cake - I used this for my blood spills that you slip over on..  Not so easy in Unity...it seems I have to manually compare the Y position taking into account the object's Y height.  Brian, you really spoilt us!  But at least now I properly understand vectors

Title: Re: One Of Them
Post by: Galavant Garde on November 12, 2018, 01:25:51 AM
Nifty little addition to the Dim3 version of the game - enemy bots now turn their heads dynamically towards the player when walking nearby...it's kinda unnerving as you don't know if they will spot you or not.  The screen grab is dark sorry, but so is the whole game so hey :-)