SyntaxBomb - Indie Coders

General Category => Worklogs => Topic started by: iWasAdam on October 31, 2019, 02:45:05 PM

Title: 3d (monster) Maze
Post by: iWasAdam on October 31, 2019, 02:45:05 PM
 :o
(https://vjointeractive.files.wordpress.com/2019/10/screenshot-2019-10-31-at-14.42.20.png)

There seems to be loads of talk around mazes, so in further extension to the maze code I released, here is a purely 2d (3d) maze - currently no monster...
Title: Re: 3d (monster) Maze
Post by: Steve Elliott on October 31, 2019, 02:47:50 PM
Yep, maze games are cool.   8)
Title: Re: 3d (monster) Maze
Post by: Xerra on October 31, 2019, 03:19:41 PM
There seems to be loads of talk around mazes, so in further extension to the maze code I released, here is a purely 2d (3d) maze - currently no monster...

Do it, Adam. You know you want to. I'd do it in GMS2, if I could think of a way.
Title: Re: 3d (monster) Maze
Post by: RemiD on October 31, 2019, 06:11:02 PM
well, to be honest, it is easy to build a big maze map all in code, so yes it is a good approach for lone devs...

curious to see what you can create (in 3d!) ;)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 01, 2019, 07:12:24 AM
@RemiD Yep, the maze create code is very simple (as posted elsewhere), but the actual 2d drawing is not quite as straightforward as it first seems as you need to write all the 2d code to deal with the correct drawing - there's no bitmaps used here.

A (true) 3d version would be much more simple, just create the base primitives and display - but (in this case) what is the fun in that?  ;D

current version with some design lines to aid with the 2d plus a slightly modified 'maze':
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-01-at-07.12.58.png)
Title: Re: 3d (monster) Maze
Post by: TomToad on November 01, 2019, 10:30:58 AM
Reminds me a bit of a maze game I created on my C64.  For rendering,I had an array of PETSCII strings for each wall and path. I would check left of the player, if blocked, then I'd draw the wall string, otherwise, I'd draw the path string. Id do the same for right and in front. If the front is not blocked, I'd then check that space's left and right and front. I'd continue this way until the path was blocked, or I had gone the maximum depth.
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 02, 2019, 07:31:18 AM
now with doors and 'visited' map
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-02-at-07.24.50.png)
It's very 'pure', no graphics getting in the way of things and distracting me.
Next step is to work on some zoning and logic. E.G. there might be something that needs attention in zone 1 before progressing to zone 2, maybe the you need to collect something, etc.

I like the fact that it is neutral, so it could be a spaceship, or a pyramid, etc
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 02, 2019, 10:14:57 AM
automatic zones completed and being shown in different colors:
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-02-at-10.13.46.png)
Title: Re: 3d (monster) Maze
Post by: RemiD on November 02, 2019, 10:34:24 AM
defining zones is also good for combining surfaces / textures, and determining what is visible and what to hide/show/render, and which entities to update, so yeah, way to go (i do something similar)
Title: Re: 3d (monster) Maze
Post by: Derron on November 02, 2019, 12:30:56 PM
@ RemiD
Do not mix up what iWasAdam might understand with "zones" (game logic wise) and your "zones" (render/physics engine wise).
So "zoning" can be useful for what you propose - but it cannot be the same as what "game logic zones" would be.

Adam's zones are possibly there to eg allow stuff like "explore the area to open a door" stuff whilst your is there to improve performance by skipping handling of certain elements - or to skip rendering walls or so.

I think for now Adam is using them to display what you have visited (he wrote that :D) so on bigger maps you can have some "auto (mini-)map" which draws what you "know" + some area around. So it is a visual helper which could be used for game effects too (explore 75% of a map and trigger a special event - like a new boss mob spawning).


But maybe I assumed wrong and just brought in some new ideas :D - it is up to Adam to clarify.


bye
Ron
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 02, 2019, 12:50:04 PM
Quote
(explore 75% of a map and trigger a special event - like a new boss mob spawning)
That is pure genius  :o

Just to clarify my use and creation of zones for everyone.
zones are just arbitrary numbered areas. Where the number refers to it's position in the abstract map logic.
E.G.
a door has a zone of 3
therefore placing the key to zone 3 anywhere in zones 0/1/2 is valid. As zone 3 can be accessed from possibly zone 0 or 1 or 2. But not anything higher.

So lets say you have 6 zones (0,1,2,3,4,5)
and the exit is in zone 5, but is full of acid
in zone 4 is a handle to drain acid
But zone 4 needs a key to enter
in zone 2 you find a key to zone 4

:)
Title: Re: 3d (monster) Maze
Post by: Xerra on November 02, 2019, 06:46:39 PM
All this chat about mazes reminds me of the the "Hunt the Wumpus" simple grid maze game that I posted the source into the old forums a few years back. I wrote that bugger with a stinking hangover as well as it was new years day, I think :) That used a data structure that was a grid with different numbers indicating what kind of hazard was in it. Just didn't have the ability to put a 3d maze graphic system into it. Not sure if I could do it now with gamemaker, hmmmmmm......
Title: Re: 3d (monster) Maze
Post by: RemiD on November 02, 2019, 08:25:26 PM
zones can be defined in different ways : cells of a grid or other shape (made of flat triangles), and useful not only to uptade / render only some entities, but also for gameplay (keys and locks/doors or triggers and events), i am aware :)

there can be all kinds of zones : youtube.com/watch?v=C2VfmhAlTO8  :))
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 07, 2019, 08:35:12 AM
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-07-at-08.01.52.png)

More or less done. There are monsters and some other stuff. The green diamond above is a monster!

What I have found is that using 2d to represent 3d is not a brilliant idea, but is great to learn general concepts.
The 2d top down map view, could become it's own game

doors and zones makes things complex for no reason, so they were removed

Will be interesting to see about doing a 3d conversion. possibly Faux to begin with
Title: Re: 3d (monster) Maze
Post by: RemiD on November 07, 2019, 05:18:20 PM
Quote
using 2d to represent 3d is not a brilliant idea
no need to reivent the wheel ? :P


Quote
doors and zones makes things complex for no reason
not really... but ok


Quote
Will be interesting to see about doing a 3d conversion
curious to see.
maybe go for a graphics style similar to this :
store.steampowered.com/app/249630/Delver/
(seeing how you already know how to make such "animated images")
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 08, 2019, 08:01:35 AM
Quote
maybe go for a graphics style similar to this :
store.steampowered.com/app/249630/Delver/
Good thought. I will see about getting the initial 3d render system operational with import for models, etc first :)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 08, 2019, 12:11:25 PM
OK, got the (very) basic import and display routines operational. Needed to modify the entity code so you are dealing directly with mesh and material, the scene then automatically handles the entity system itself - trying to minimise copies and optimise itself.

Here's the initial test with 2 cell positions with contents to form the start of a corner...
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-08-at-12.06.26.png)

Next up will be to add a mini maze and link them together...  >:(
Title: Re: 3d (monster) Maze
Post by: RemiD on November 08, 2019, 05:54:26 PM
per pixel lighting/shading, will you add ?
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 09, 2019, 02:11:27 PM
yep. I've got a nice solution for lighting. but let's not get ahead at this early stage...
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-09-at-12.52.54.png)

I've got a primitive map and position system, next up is map collision...

And sliding collision sorted  8)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 10, 2019, 11:51:06 AM
Started work on a door, the frame and the door itself.
Shown below is the first peek with the final shader being activated as a test:
(https://vjointeractive.files.wordpress.com/2019/11/door.png)

In operation it feels incredibly claustrophobic. And that is without the lighting system being operational.

I can already see how it should be - doors should open automatically (unless locked) and then close.
Sound should also be very prominent. doors should scrape, there should be some sort of ship background hum, maybe cracking and creaking as the ship shifts?

It's sort of like a cartoon 'Alien'. there is a real feeling of dread...
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 10, 2019, 02:24:16 PM
and a quick anim for you, showing the automatic door
(https://vjointeractive.files.wordpress.com/2019/11/door.gif)
Title: Re: 3d (monster) Maze
Post by: Qube on November 10, 2019, 03:57:33 PM
Looks like it's working well :) - What's "RCO" stand for?
Title: Re: 3d (monster) Maze
Post by: Derron on November 10, 2019, 04:34:32 PM
Rescue Corridor
Ron Corp :D
Royal Corps
Random Character Overlay


bye
Ron
Title: Re: 3d (monster) Maze
Post by: Naughty Alien on November 11, 2019, 02:36:25 AM
Looks like it's working well :) - What's "RCO" stand for?

Right Corner ..   ;D
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 11, 2019, 07:09:11 AM
Hey... Who turned out the lights?  ::)
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-11-at-07.06.36.png)

But seriously. if you were creeping arounf this place and something jumped out on you... Just have that extra pair of undies ready!
Title: Re: 3d (monster) Maze
Post by: 3DzForMe on November 12, 2019, 08:20:35 AM
The look of this is great, reminds me a little of perfect dark on the N64.
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 12, 2019, 09:01:17 AM
I've not played Perfect Dar. Maybe I should give it a go?

ok. For the time being I'm not using the noise.
Added crouch, so pressing 'c' squats you down - would be good for avoiding laser beam traps possibly, or getting into vents?

Here's the first look (crouching) with the lighting enabled (the red door is locked and it flashes). You can also see that doors have raised (yellow/black) floors. When you go over them, there is a slight jump in height too.
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-12-at-08.50.21.png)

You can also look up and down. Heres me crouching and looking up at the light on the door
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-12-at-08.59.08.png)
Title: Re: 3d (monster) Maze
Post by: RemiD on November 12, 2019, 10:57:36 AM
this looks nice, maybe take a look at alien vs predator 1 (windows), similar environments, low details graphics, nice lighting effects (using scaled "flares")
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 12, 2019, 03:10:11 PM
good suggestion :)
Here's the result of some shader messing about:  :D
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-12-at-15.08.46.png)
Title: Re: 3d (monster) Maze
Post by: col on November 12, 2019, 04:37:59 PM
I do like the art style that you have going on there
 8)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 13, 2019, 08:25:02 AM
Excellent - looks like i'm on to something :)

Next up is dealing with FOV and only showing what can be seen. I can then begin culling the 3d models as needed. that way I can have big levels...

well step 1 - what's in the fov triangle wasn't too bad:
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-13-at-08.32.38.png)

Just need to do a recursive check through the visible fov positions next
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 13, 2019, 12:14:14 PM
it took a bit of wierdness with checking floats to int and making sure that a .5 and above would be rounded up (and not down).
But in the end the recursive routine starts from your position, and works it's way around the field of view and outputs the correct result - even taking into account doors that can be opened:
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-13-at-12.06.07.png)

You can see on the minimap the dark red squares are the active field of view. The bright red squares is the current visible cells. the door is shut, so no further cells are added.

Final stage will be to take the bright red output, feed it into a list, and render the contents of the list - nice and simple process :)

Title: Re: 3d (monster) Maze
Post by: Derron on November 13, 2019, 12:16:59 PM
> it took a bit of wierdness with checking floats to int and making sure that a .5 and above would be rounded up (and not down).

local rounded:int = int(floatValue + 0.5)
2 = int(2.4 + 0.5)
2 = int(1.5 + 0.5)
1 = int(1.4 + 0.5)


bye
Ron
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 13, 2019, 12:28:36 PM
Even simpler - thanks Derron :)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 14, 2019, 07:27:27 AM
ok, next step is to introduce objects into the map - these are static things that will need movement checking, etc.

But for now, this is the first revision of a 'hold' with a barrel. There is only the light from the door.
Because there are no walls, you can also see that the 3d objects behind the door are no visible and being properly culled  8)
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-14-at-07.22.36.png)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 15, 2019, 07:14:20 AM
and now with some walls and lights and crates - The Hold!
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-15-at-07.12.30.png)

And here we are crouching behind some crates and looking up at the Hold ceiling showing details that might be missed. My thought is to have some form of mist coming from the overhead vents?
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-15-at-14.32.34.png)

I like the way the lighting is subdued - it's actually a warm yellow, but the light fixtures have a nice glow to them :)
Title: Re: 3d (monster) Maze
Post by: RemiD on November 15, 2019, 07:09:48 PM
so, is this "emissive lighting" (with a shader) or just fullbright surfaces ?
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 15, 2019, 08:03:50 PM
Neither, it’s a variation of light propagation.
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 17, 2019, 12:30:06 PM
First look with some particle stuff going on - lots of recoding to get it to work :(
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-17-at-12.19.04.png)
and something less subtle with some additional motes
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-17-at-12.29.20.png)
Title: Re: 3d (monster) Maze
Post by: RemiD on November 17, 2019, 01:09:17 PM
in blitz3d, smoke / fog, looks better with the blendmode "add" (instead of only considering color+alpha), maybe this can help...
Quote
Alpha:
This blends the pixels according to the Alpha value. This is rougly done to the formula:

Rr = ( An * Rn ) + ( ( 1.0 - An ) * Ro )
Gr = ( An * Gn ) + ( ( 1.0 - An ) * Go )
Br = ( An * Bn ) + ( ( 1.0 - An ) * Bo )

Where R = Red, G = Green, B = Blue, n = new pixel colour values, r = resultant colour values, o = old pixel colour values.

Alpha blending is the default blending mode and is used with most world objects.


Multiply:
This blend mode will darken the underlying pixels. If you think of each RGB value as being on a scale from 0% to 100%, where 0 = 0% and 255 = 100%, the multiply blend mode will multiply the red, green and blue values individually together in order to get the new RGB value, roughly according to:

Rr = ( ( Rn / 255.0 ) * ( Ro / 255.0 ) ) * 255.0
Gr = ( ( Gn / 255.0 ) * ( Go / 255.0 ) ) * 255.0
Br = ( ( Bn / 255.0 ) * ( Bo / 255.0 ) ) * 255.0

The alpha value has no effect with multiplicative blending. Blending a RGB value of 255, 255, 255 will make no difference, while an RGB value of 128, 128, 128 will darken the pixels by a factor of 2 and an RGB value of 0, 0, 0 will completely blacken out the resultant pixels. An RGB value of 0, 255, 255 will remove the red component of the underlying pixel while leaving the other color values
untouched.

Multiply blending is most often used for lightmaps, shadows or anything else that needs to 'darken' the resultant pixels.


Add:
Additive blending will add the new color values to the old, roughly according to:

Rr = ( Rn * An ) + Ro
Gr = ( Gn * An ) + Go
Br = ( Bn * An ) + Bo

The resultant RGB values are clipped out at 255, meaning that multiple additive effects can quickly cause visible banding from smooth gradients.

Additive blending is extremely useful for effects such as laser shots and fire.
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 18, 2019, 02:35:10 PM
great read there :)

Looking down I found some sort of space tool so I picked it up...
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-18-at-14.33.30.png)

it took bugger long time to get that glove sorted too  8)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 19, 2019, 02:22:54 PM
Here's a quick look showing the tool + your arm and pressing escape brings up the option, map window...
(https://vjointeractive.files.wordpress.com/2019/11/arm.gif)
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 20, 2019, 07:21:26 AM
just working on the 'dos' part when you lift your arm.
Here's the map view:
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-20-at-07.18.44.png)
You can also see the debug map in the bottom left
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 22, 2019, 08:56:06 AM
Got the noise sorted and a new widescreen viewport.
Also now has stable 60fps windowed or fullscreen :)
As it's a monster maze I thought we needed a monster...
I think inspiration is going to be halflife, alien and the thing!
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-22-at-08.53.23.png)
Title: Re: 3d (monster) Maze
Post by: BasicBoy on November 22, 2019, 10:14:46 AM
I think this looks really good!
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 22, 2019, 11:00:30 AM
Thanks, it's sort of coming together :)
Been working on the 'crab' a bit more adding some texture to it. The red underside gives it a much nastier look - which is great... I'll have to work out how to animate it now  >:(
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-22-at-10.54.50.png)
Title: Re: 3d (monster) Maze
Post by: Qube on November 22, 2019, 11:03:44 PM
Coming along really well, looks great :) - You are such a fast coding machine that I think you are an AI from the future :o
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 23, 2019, 06:43:32 AM
more an old git from the past with a good tool chain  8)
Title: Re: 3d (monster) Maze
Post by: Derron on November 23, 2019, 07:34:39 AM
Lets see when you abandon this project for the next distraction ;-)


Bye
Ron
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 23, 2019, 08:40:42 AM
touche!  ;D

But seriously - this is more a cumulation of everything before it...

Working on some interesting but a mind boggling stuff with the 'crabs'.
E.G.
1. when you get close they should turn to face you - without going round in circles like a dancer - sorted
2. when you are in their line of sight they should turn to face you - not yet sorted
Title: Re: 3d (monster) Maze
Post by: iWasAdam on November 23, 2019, 11:59:34 AM
generally got the detection sorted. Whilst doing testing of positions I used the light material by mistake and found it works great on the crabs.
So a little tinkering later - they now glow with a pulsing light...
Good? Bad?
(https://vjointeractive.files.wordpress.com/2019/11/screenshot-2019-11-23-at-11.43.47.png)
Title: Re: 3d (monster) Maze
Post by: Derron on November 23, 2019, 12:01:25 PM
They should glow "poisonous" or contaminated/radiated - so greenish or so. Depends on the scenery but a "white" would mean it is kind of a deap sea animal wit flourescent material.


bye
Ron
Title: Re: 3d (monster) Maze
Post by: RemiD on December 08, 2019, 09:47:43 PM
i have seen a similar creature, if i remind correctly, it was in the game blood 2 ? or maybe in half life 1 ? (this horrible thing jumps on your face to grab your head and then eat you, it was really scary ! :'( )