Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+1)

and it's time for another update

ok so as a quick recap - I have an almost finished version of the game now
 (minus some artwork and some bugs)
but I decided that I'm not happy with some of the levels
and now I try to re-arrange or replace some of them
(I saved the current version just in case - maybe I will release
it one day as a curiosity)


this was an old level that was meant to be some ruins
I added some textures and made it a sort of stealth level
(well the stealth is done with invisibility powerup mostly and it's none of that
scripted forced stuff - if you bring enough guns it's no longer stealth)


some more environmental storytelling
I connected one of the city levels with the subway level (they are still seperate levels
but now follow each other logically)



I have no idea what to do with this level
it's finished and mostly works .. there is just no good slot to place it
I try to avoid maps with heavy combat to follow each other



one Idea I had is to replace it with a completely new level
this one is shaping up quite well - it's mostly a mish-mash of older unfinished maps
(it takes place in a trash dump so it felt appropriate to make it from reused stuff too)


some parts are still heavily under progress - also am I getting a mileage out of this texture or what?



I think I may be ruining this joke to the ground



remember to try out ZortchTest and give me some feedback!

until next time!

(+1)

Hey, I'm curious about how you handle collisions in your engine. If there's a devlog you've written on it I might have missed it?
Are characters AABBs? I don't know if this is 100% accurate but I'd heard that Quake used (discrete?) ray intersection tests against Minkowski summed geometry. Is this the same as what you're doing? 

(3 edits) (+1)

I think I wanted to write about it just forgot 

anyway from what I know Quake is using the BSP for all world collisions
and their trick is to extrude the walls and floors inwards
the advantage is this makes collision very elegant (simple and fast): point to plane collisions for all world collision (no worry about triangles)

and the disadvantage is they need to store multiple copy of the level (e.g. one for bullets-unextruded, one for humans, one for big stuff like shamblers )

and I think this what they mean by the Minkowski geo thing  (I'm not sure about this but I think it refers to adding the volume of one object to another and changing it to a point to object test - something like that)


I'm afraid Zortch is not this sophisticated or elegant: there is a large triangle soup and it's sorted onto a 2D grid  and it's mostly sphere to triangle and line to triangle test
(and characters do a cylinder to cylinder test against each other)
it's quite a complicated mess, I prepared some slides that might explain it better:

there are also many edge cases: a character might stand on another, a character might stand on another
that is travelling on a conveyor belt or mover ..  and so you can only stack crates the moving creatures
will drop you off


it's a complicated thing - there are seperate item classes for items affected by gravity,
ones that stay put and ones floating in air etc.


this made thin enemies very hard to hit - the female guards use slightly bigger OBB than needed
(also all heads use a bigger radius - where there is a head that is)
and of course some bones are marked to not to be hit at all
and I forgot to mention on the slide: the AABB of the character is fixed and not affected by the 3D models box
(usually smaller than the character)


another trick is that the sphere to triangle test needs to be done multiple times
because the new velocity might push the object into another triangle
(not to mention moving geometry also needs to be tested every time)

of course all this trouble is to climb stairs and small heights effortlessly
which sometimes works too well - you auto jump over any railing
there was also a problem with slopes - with sphere collison you get 'free' sliding
but here it had to be hacked in based on the triangle normal

gibs and grenades use a simplified  method where it's only sphere against triangle


(there were problems with this of course: walls would often push out grenades before it could collide with them
so there are extra checks to see if the mover actually changed place etc)

in summary the collision system is a collection of hacks held together with prayer and glue

(+2)

I'm sorry it took me so long to respond but I really am thankful that you've written such a detailed reply!! It's interesting to see how youve approached it

no worries, I'm happy to answer all questions 👍