worklog : 3d helicopter game (arcade)

Started by RemiD, October 02, 2023, 10:56:13

Previous topic - Next topic

RemiD

#15
QuoteWill the Helicopter be collecting/finding Fuel to pickup as well.
yes like in the game 'cyclone', the goals will be to save humans, to collect crates, and to avoid the cyclone.
and there will be areas to refill the fuel.

however i want to add some 'improvements', to add some variations in the gameplay :
- save humans on land (land near the human).
- save humans on boats (over near the human with a cable).
- carry a crate from a random position to a target position (over near it with a cable).
- collect items (land near it).
- shoot and destroy monsters (air elementals) who threatens the humans.
- the monsters (air elementals) will throw tornado projectiles at the helicopters, and this may damage the helicopter.
- the cyclone (wind direction and force) will alter the helicopter movements and this may cause collisions with the environment, and this will damage the helicopter.
- there will be areas to repair the helicopter.

that is all my ideas of gameplay for now. :)

Sinjin

Cool, it reminds me of SimCopter which was too buggy to play really...Raid over Moscow comes to mind too for some reason and Raid on Bungeling Bay, which I loved in my youth. I had the idea to remake Bungeling Bay for some time.

RemiD

2023.10.13 :

-there are crates on lands and on water.
-helicopter can grab, carry, drop, a crate (with a cable).

each crate must be carried to a specific place on each island.

http://rd-stuff.fr/blitz3d/3d-helicopter-game-20231013-1430-grab-carry-drop-crate.gif

:)

RemiD

#18
piling up crates on the top of a building, for fun ;D 
http://rd-stuff.fr/blitz3d/3d-helicopter-game-20231014-1230-piling-up-crates.png

however sometimes linepick fails to detect a pickable surface/triangle and i don't know why, and this is really annoying (i have already noticed this in the past).

maybe this is due to scaled entities ?

no problem, linepick works well, this was a logic issue in my code... 

Xerra

Are you making this game for the competition, or just putting it together at your own pace, RemiD?

Suggestion: if you can pick up crates and stack them on top of buildings then you could extent that ability to be able to actually drop them on structures, or enemies.

One of my favoruite gameplay moments from GTA Online was flying a cargo bob and picking up an AFK player in his shiny sports car and then dropping him out at sea. Bet he got a nice surprise when he got back to his TV and saw he was drowned at sea, and the car had a serious corrosion issue :)
M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

RemiD

#20
QuoteAre you making this game for the competition, or just putting it together at your own pace
yes it is for the competition. :)

it is a remake of the game cyclone (1985) on spectrum, but in my own way, with better gameplay / possibilities (imo).

your suggestion is interesting, why not, but later. a lot of things remaining to do !


RemiD

2023.10.15 :

-a carried crate (by the helicopter) can now detect a future collision with the water, the terrain ground, and if it will collide, it will drop (on air) and will fall until it reaches a below surface (water or terrain)

this is a good example on the usefulness of tformpoint() :
comparing the future x,y,z position of a moving entity, with the level of water or of terrain ( terrainy() ), if the future position will be below the level of the water / terrain, this means that it will collide (without using blitz3d collision system and without using linepick and pickables)

however, to detect obstacles on the sides or obstacles which are not water or terrain, i will need to use linepick and pickables (in the direction and length of the translation vector)

:)

William

#22
Quote from: RemiD on October 16, 2023, 11:10:492023.10.15 :

-a carried crate (by the helicopter) can now detect a future collision with the water, the terrain ground, and if it will collide, it will drop (on air) and will fall until it reaches a below surface (water or terrain)

this is a good example on the usefulness of tformpoint() :
comparing the future x,y,z position of a moving entity, with the level of water or of terrain ( terrainy() ), if the future position will be below the level of the water / terrain, this means that it will collide (without using blitz3d collision system and without using linepick and pickables)

however, to detect obstacles on the sides or obstacles which are not water or terrain, i will need to use linepick and pickables (in the direction and length of the translation vector)

:)
ooo i cannot think of the practical applications of that right now.. and i dont know why. but i was wondering how i could learn to do that in an efficient manner i mean i think linepicking so much may be expensive (processing bots from both server and client) hmm..what is tformpoint are you using openb3d or b3d ng, that a openb3d function?



a eta estimate would be valuable for my application (bots mining resources, scouting, attacking etcetera.) i will need to design intelligent ai and efficiently aheh.. i wanted something like 100 bots a kingdom as the villages may need protection, farming etcetera.. 500 bots a game but that i doubt openb3d may support that many in one scene i mean its not using other threads on the gpu. i may need to be inventive scaling, i were considering lod/tile system, zones and low line of sight.
im still interested in oldschool app/gamedev

RemiD

linepick is not 'expensive' if it is done only on near enough meshes, and only on meshes which are low details (surfaces with only a few triangles).

a simple way is to do a distance2d check between the point which will throw the linepick (a 3d vector) and the others entities, before setting only the entities near enough, as pickable.

i use blitz3d.

but openb3d should have a similar function...

RemiD

a good example of the usefulness of tformvector() :

tformvector() can be used to calculate the properties of a 3d vector (with world coordinates) coming from an entity which is oriented in a specific way after having been turned / rotated.

this is useful to calculate the properties of a 3d vector to detect a future collision with an obstacle, before moving the entity, and then reposition and stop or rebound.

for example to detect collisions for a turning moving entity like a bullet, or an helicopter, or a carried crate, in my case. ( with the water, with the terrain, with a building, with a boat, with a tree, with a crate, with a human, with a monster ).

RemiD

#25
2023.10.17 :

-testing to implement a tornado / waterspout in the world. (with an approximate realistic size)
(i will improve the appearance with particles of clouds / water dust / dirt dust, later...)

http://rd-stuff.fr/blitz3d/3d-helicopter-game-20231017-1402-tornado.png

:o


edit 2023.10.18 :
the tornado is now textured and colored with vertices color :
at high height, with cloud color
at low height, with water color or dirt color or sand color (depending on where it will be on the map)

but now there is no vertices lighting shading anymore on the tornado :'(


Sinjin

While your are at LOD's introduce hit-meshes/boxes as well. Just a hidden lower poly which hangs on the pivot on the main object but only that interacts with collisions.

RemiD

Quoteintroduce hit-meshes/boxes as well. Just a hidden lower poly which hangs on the pivot on the main object but only that interacts with collisions.
of course, i already do that.
for each entity, a renderer (more details, for rendering), and a collider (low details, for collisions).

but my renderers are already low details. :))

RemiD

#28
2023.10.18 :

-the low level of the tornado has the color of the material below it (water or sand or grass).
-the tornado damages the terrain and this changes the colormap.

http://rd-stuff.fr/blitz3d/3d-helicopter-game-20231018-1402-tornado-damages-terrain-changes-colormap.gif
;D

now i want to make it damages the buildings, docks, boats, trees, crates, humans.

and then this will create parts on the ground and debris around the tornado.

and i need to figure out a way for the tornado to affect the movements of the helicopter when it goes near it. ???

RemiD

2023.10.19 :

-experimenting a tornado made of parts which are pulled from the ground.

http://rd-stuff.fr/blitz3d/3d-helicopter-game-20231019-2211-tornado-with-parts.gif

but i should probably replace the cube by quads with a dust / cloud texture...

;D