Coding Task List - Before IB2 Initial Release

Discuss anything in general about the IceBlink Engine + Toolset project (or anything else) here.

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Tue Jul 02, 2019 7:11 am

Framing the screen correctly for diagonal maps works much better now. There's a little framing glitch still ongoing (for all neighbourign maps actually), but a player must focus on it to notice, so I think this one can wait.

Debugging the erratic mover behaviour on diagonals will be much harder. They do strange jumps between positions sometimes. This '"sometimes" makes it even more tricky for me.

I think I have to figure out whether this is draw related or pathfinding related for starters...

On another note: I have an idea that might speed up pathfinding a lot (ie only recalculate an existent, old path if a block is on the next five steps).
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Wed Jul 03, 2019 5:48 am

Good news here - I fixed the tricky bug concerning scrolling props on diagonally neighbouring maps, yeah :D !

There are still minor screen framing issues which I revisit now.

Then I will take a look into optimizing the pathfinding performance (see above)...
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Thu Jul 04, 2019 7:21 am

Almost done with fixing the remaining framing issues - only one instance left to look ino as far as I can see. Oh, I also have to investigate the code for drawing the shadows - it stops drawing those a bit too early on scrolling.
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Fri Jul 05, 2019 6:56 am

All framing issues fixed.

I optimized pathfinding heavily (basically old paths, which are now stored for each prop, are used much more often instead of doing a full recaluculation on every step; this is more tricky than it sounds because we have movers with dynamic targets (chasers, time driven movers when departure time of next waypoint is reached before actually getting to this waypoint) as well a as dynamic area maps, eg walkable state changes via scripts, and also move blocking props that can be movers themselves; note to self: eventually consider effetcs of dynamic height changes, too; also movers can do 2 moves at once on the right rolls... lots of stuff to keep in mind here when trying to just use a path that was valid eg three turns ago).
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Mon Jul 08, 2019 11:22 am

Bug fixing left and right here (eg clones of time driven movers on certain area change constellations, unwanted automove on exiting chest screens, duplicate encounters when idling too long on the battle summary screen, etc).

I would be lying if I said that this is the most fun part of it all, but hey, I fix it now while the relevant code sections are relatively fresh in my brain or it becomes a real nightmare when it hits easily distracted future me a few months later down the road :roll: .
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Wed Jul 10, 2019 7:05 am

Debugging and polishing chaser behaviour right now. Generally, I try to set up the movement and triggering system in a way that the trigger on a mover entering the party square is only called when the prop has a good overlap with the party icon. It is not totally glitch free, but much more intuitive alreday (the palyer sees which mover attacked/initated conversation before the combat/conversation screen pops up).
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Thu Jul 11, 2019 7:12 am

Takes quite a bit of resolve to get the whole living world (seamlessly connected, all the movers types with their diferent logics, scrolling and animated, weather, height shaodws, light system, fading fog of war, outer border framing, good collision feedback so the player knows intuitively why an encounter/conversation started, visual hints for chasers (done), double movers (todo) and idlers (todo), ideally all while above 30 fps, sigh) right... last glitch fixed concerned behaviour of chasing props when the player crosses over to a seamlessly connected neighbouring map (return to post). Had an odd pathfinding crash that happened only once, must be watchful for this one (I set up some try/catch debugging lines in various pathfinding related methods here).

To improve performance for many movers in calculation range I might add a system that puts a hard limit to the number of pathfinding calculations each turn, idling/pausing all other movers. I will have to make sure then that the enigne remembers who was already moved last turn and choses new movers from the pool this turn. I would exempt chasers from this (they would always be preferred).
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Tue Jul 16, 2019 8:12 am

So, I optimized performance by quite a margin again (finetuned streaming system for loading/unloading graphics again, placed limit to 10 pathinding calculations each turn; note: this is does not limit props just following their existing path and also a prop will never skip twice in a row due to performance cap, even if performance cap is exceeded due to this; currently chasing props are never excluded from pathfinding calculations).

Also, I added graphic indicators for props taking a pause, due to speed comparison with party speed or due to being hit by performance cap (little grey cloud) and for props moving very fast due to speed comparison (little green speed lines).

Furthermore, I squished various little glitches and bugs. I have become a bit zealous with this, but letting bugs/glitches pile up is one of the greatest dangers for the project I think.

Next up is adding a little village with time driven movers and time/place fitting barkstring ("Good Morning" (time is morning), "'Have a good night" (time is evening), "Zzzzzzz" (night time), "Praise the Lord of Light" (currently in temple), "The ale is fine" (currently in Tavern), etc.) to my 25 map connected testing ground. This will likely include scale changes (inside house zoomed in, outside zoomed out) and an overview map of the village (using the show map button(s)). Having this work bug free is the crucial, watershed benchmark for time driven movers. I am bit afraid of the effort (and outcome :roll: ), but I think we will get very valuable intel from this excercise. I have to do this now, as I was never deeper into this part of the code.
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

Re: Coding Task List - Before IB2 Initial Release

Postby Dorateen » Tue Jul 16, 2019 2:20 pm

youngneil1 wrote:
Next up is adding a little village with time driven movers and time/place fitting barkstring


I'm looking forward to this very much. The technical discussion is interesting to follow. But for someone like me, seeing the systems in action will help visualize the possibilities.
User avatar
Dorateen
Backer
Backer
 
Posts: 986
Joined: Mon Nov 26, 2012 2:08 pm

Re: Coding Task List - Before IB2 Initial Release

Postby youngneil1 » Wed Jul 17, 2019 7:17 am

Thank you, Dorateen - once I get the village up and running I will do a video about it. Also, it will be included in the Tutorial Module, so it can maybe be used as a builder's template/ressource :) .

Edit: Before starting this work, I am having one last go at improving the ui draw performance. Testing shows it is related to the text on the buttons. I yet have to figure out why rendering this button text is so performance intensive.
User avatar
youngneil1
Backer
Backer
 
Posts: 5021
Joined: Sat Dec 08, 2012 7:51 am

PreviousNext

Return to General IceBlink Project Discussions

Who is online

Users browsing this forum: Majestic-12 [Bot] and 1 guest

cron