worklog : 3d helicopter game (arcade)
i am currently working on a 3d helicopter game ( with arcade controls / movements / gameplay ), a remake / modified version of a game of the 80's.
i am going to share some of my progress / thoughts here.
around 112s to travel from one side of the map to the other side, in helicopter, at 330km per h, with 1 blitz3d unit = 1 meter.
the heightmap is 1024x1024 scaled x10 on the XZ axises and x25.5 on the Y axis, therefore 10 240m x 10 240m in width and depth, and 25.5m in height.
the time it should take to travel from one side of the map to the other side should theoricaly be :
10240 / 330 000 x 60 x 60 = 111.709s
the helicopter movement speed seems correct.
incredible what we can achieve with blitz3d !
-added bullets and collision detection using linepick and pickables (for bullets).
-added damage particles depending on material damaged (by bullet).
i have decided to make a game with possibilities similar to 'cyclone' (1984), where the goals are to avoid a cyclone and to explore different islands to go save humans and to collect crates.
but i want to add some physics for the helicopter and variable wind direction and force depending on if the helicopter is near / far from the cyclone.
i also want the cyclone to destroy the environment like trees, houses, ships, crates, humans, and this would produce flying debris in the cyclone.
i also want these flying debris to be a threat for the helicopter (causes damage).
so the helicopter movements would be affected by the wind and the flying debris (if a collision happen).
i also want to add some combat so i have added some air elementals.
i have noticed that when a rigged skinned mesh is animated, linepick detects the collision with the Tpose, not with the animated pose...
i will probably have to have an empty rigg (skeleton with bones) and attach cubes on it, as a pickable mesh. not tested yet...
-improved the color map generator and the lightshade map generator ('lightmap')
i draw the heightmap in an image editor.
the stairs look is wanted.
i may use 'impostors' (textured flat mesh with 4 vertices / 2 triangles) for far away trees, because there are a lot of triangles to render for barely visible shapes, it is not good.
Hey, how did you know the stairs look is one of the main things I've been focused on recently? XD
It's not only easier to create, but I think that relates to why some people like games like A link to the past better than Elderscrolls... less to process, so you can just enjoy.
Hope it goes well, and thanks for the help with my Ifps thing. One of your suggestions was what helped me get it working :)
-helicopter can over near land and save humans which are on land.
-humans go towards helicopter only if helicopter is near enough, and is over land (not over a cliff ), and has a low move speed.
controling the helicopter with physics is very fun.
for the moment i focus on the essentials for the gameplay (like what is in the game 'cyclone'), but then i have some ideas to cause damage to the environment or to the helicopter (propeler or shell), depending on the collisions which happen.
You mean like in "Not tetris"? That WOULD be fun for a helicopter game! Just seeing the things in real life looks like a catastrophe about to happen. The more you make it like Hard drivin' - mistakes inevitable, perfection impossible - the more people will probably like it :)
-helicopter can over near a boat (on water) and save humans on the boat (with a cable).
-humans who are on a boat can grab the cable and be saved by the helicopter.
-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.
piling up crates on the top of a building, for fun.
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...
-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).
-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...)
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...
-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.
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.
-experimenting a tornado made of parts which are pulled from the ground.
but i should probably replace the cube by quads with a dust / cloud texture...
-new tornado structure / behavior :
the tornado is made of clouds going from up (the sky) to down (the ground).
-the tornado is made of textured quads.
now i want the tornado to 'rip' and destroy the terrain and the buildings / boats / (cars ?) / trees / crates / ( humans ? )
this will spread dust and parts in the air around the tornado.
some of the heavy parts which are projected far enough from the tornado will fall on the ground and stay static.
and then the helicopter will have to go save / help the humans (on land, below destroyed buildings / trees, fallen in the water), and carry essential things for emergency surgery / foods and drink / tools to repair stuff.
-added far away horizon fog
-added clouds above the tornado
clouds with blend 2 (multiply 1) :
clouds with blend 5 (multiply 2) :
i have to make the texture of the cloud more bright / white, it is not easy to blend textured quads to get the appearance that i want...
i will probably have to code a single surface system for the above clouds, and for the tornado clouds, but for now they are separate entities (copies of one mesh using copyentity()).
-improved the colors of the clouds and of the tornado to appear more correctly lighted shaded.
-added dusts of the color of the below material (water or sand or dirt) which are created after the tornado has 'damaged' the water / terrain.
now i have to find a way to have the tornado damages the buildings / (cars) / boats / trees / crates (humans) and this will produces debris and parts.
and this will also produces missions for the helicopter...
-helicopter is turned pushed more and more down, the nearer it is from the interior / core of the tornado.
-helicopter is turned pushed more and more outwards and up, the nearer it is from the exterior of the tornado.
-helicopter shakes more and more, the nearer it is from the tornado.
-helicopter shakes less and less, the farer it is from the tornado.
-the tornado damages the environments (buildings, docks, furnitures, cars, boats, trees, crates), and this creates parts pulled pushed in the air by the tornado, first up and outwards, then when far enough from the tornado, down, until they reaches the land / water.
but all these parts causes slowdowns... so i have to experiment with one mesh one surface per island (for all the parts), and i will remove some parts progressively ( as if the emergencies / firefighters would remove them )
That looks amazing. I like the blurred effect you have going around the tornado
this is simply textured quads (with a dust texture), which go from the center of the tornado, opaque (alpha1.0), to outwards of the tornado and up, progressively more and more transparent (less and less alpha), until they become totally transparent (alpha0), and then are deleted.
i have re-written my TODO list to keep it simple, because, often, i want to add many things / gameplay possibilities / effects, and then i feel this is too much work and i give up.
so i will put only 6 kinds of buildings :
-appartments buildings (with several levels)
-hospitals (to repair humans)
-garages (to repair cars)
-docks (to repair boats)
-fuel stations (to fill up the tank of cars / boats / helicopter)
to keep it simple, all these buildings will be the same except the appartments buildings which will have several levels.
first attempt to model a low details appartments building / the parts composing this appartments building :
good progress.. the buildings looks simple but nice.
btw to post proper line breaks instead of that odd dot line break
just enter 2 spaces on a new empty line like
..it's that easy and is supported.
i have decided to only make a game similar to the game 'cyclone' (1985), in term of possibilities, but in 3d and with some physics movements.
because this is becoming a never ending project, and i am less and less motivated to work on that.
Reply To Topic (minimum 10 characters)
Please log in to reply