Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Galavant Garde

Pages: [1] 2 3 ... 11
1
Idle Chatter / Re: One Of Them
« 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 the first 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

2
Idle Chatter / Re: One Of Them
« 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

3
Idle Chatter / Re: One Of Them
« 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...

4
Idle Chatter / Re: One Of Them
« 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

5
Idle Chatter / Re: One Of Them
« 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


6
Idle Chatter / Re: One Of Them
« on: March 22, 2018, 10:36:44 AM »
Fixing up the zombie model, better or worse?


7
Idle Chatter / Re: One Of Them
« on: March 18, 2018, 01:32:06 PM »
https://youtu.be/IUqLXE6Ywe4 redid the opening sequence, a bit shorter and (I think) better

8
Idle Chatter / Re: One Of Them
« 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

9
dim3 Versions / Re: dim3 v24 Release
« on: March 14, 2018, 03:54:36 PM »
Ha, spaghetti code  ;D I fixed it now, all good.

10
dim3 Versions / Re: dim3 v24 Release
« on: March 13, 2018, 02:22:02 PM »
Scrap that last message - v24 DOES build fine in Xcode9, and the app launches, but it crashes when you load a map... :(

EDIT - I've worked out that it doesn't like when you use strcpy(map->info.name,name); in map.util.main.c...

EDIT 2 - I can stop the crash happening by manually setting the map name instead of using the above command, but then the game doesn't know which map is currently open when I use the map.info.file API in any of my scripts.  So if I instead use the 'name' reference in the map_new function under map.util.main.c (i.e. map->info.name[0]=name;) it slices the first character off the name for some reason. I'll keep digging

EDIT 3 - yeah I can't yet work out how you've linked it all together Brian, so for now I'm having to manually make a new string in the map.util.main.c with the name of the map I want the game to load with. That's fine for me, but I'm gonna keep trying to make it configurable from the project file like it's meant to be (& like it currently is in v24...so odd that this has happened...maybe it's something in the new compiler that works differently).

Meanwhile though, I've upgraded side-scrolling mode! Now there's DIM3_INPUT_MODE_SIDE_SCROLL_X, DIM3_INPUT_MODE_SIDE_SCROLL_X_REV, DIM3_INPUT_MODE_SIDE_SCROLL_Z, and DIM3_INPUT_MODE_SIDE_SCROLL_Z_REV so you can easily switch to side view/mode at any angle...I kinda wanted to make it easy to dynamically change just like when you're climbing ledges on Unchartered. Works like a charm  8)

11
Idle Chatter / Re: One Of Them
« on: March 10, 2018, 02:34:31 PM »
Update!

- 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

12
dim3 Versions / Re: dim3 v24 Release
« on: March 04, 2018, 02:46:39 PM »
PS took me a while to get to it, but v24 builds and runs just fine in the latest version of Xcode  ;D going to have a tinker with it. Thanks again!!

13
Idle Chatter / Re: One Of Them
« 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

14
Idle Chatter / Re: One Of Them
« 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

15
Scripting / Re: Improving enemy vision
« on: February 11, 2018, 07:55:53 AM »
Update:

My game script does this:

Code: [Select]
function botRollCall(game,id)
{
    botRoll.push(id);   // adds ID of any bots calling this function to the checkpoint roll call. Note is only called after spawn event
}

function playerWatch(game)
{
    playerPos=map.object.getPosition(0);
    brightness=game.event.callPlayer('lightLevel',null);    // player script returns bone brightness
    if (brightness>0.3) inTheLight=true;
    else inTheLight=false;

    for (i=0; i<botRoll.length; i++) {
        distance=map.object.getDistance(botRoll[i],playerPos);
        if (distance<15000) withinRange=true;
        else withinRange=false;
        inFOV=map.object.isFacingId(botRoll[i],0,120);
        game.event.callObjectById(botRoll[i],'playerProximity',withinRange,inFOV,inTheLight);
    }
    game.event.chain(5,'playerWatch');    // loops chain every 5 ticks
}

My bots do this:

Code: [Select]
function spawn(obj)
{
    obj.event.callGame('botRollCall',obj.setting.id);    // sends ID of bot to the game script
}

function playerProximity(obj,inRange,inFOV,inTheLight)
{
    if (inRange) {
        if (inFOV) {
            if (inTheLight) {
                if (obj.sight.testPlayer()) enterCombat(obj);    // only perform sight test if game script calls saying player is in range, in FOV and in light
            }
        }
    }
}

So far so good actually!  The only bit that isn't totally reliable is the map.object.isFacingId call - it sometimes says the player is in the FOV when it isn't within 120º, and I'm not sure how the slop is calculated.  So I think I may have to make my own routine for verifying if the player is in the FOV

What I can then do is instead of triggering the combat routine as soon as the sight test passes, I can make a variable called something like 'spottedPlayer' which other functions rely on to decide if to carry on with what they were doing, or stop and enter combat. For example, if a bot is their way to get help or trigger an alarm, I wouldn't want the sight test to interrupt them

Pages: [1] 2 3 ... 11