WIP 3D racing game
-
Hi all !
I decided to open a topic to talk about my project. It will be a car racing game, but I might be able to reuse the engine for an adventure game later.
The purpose of this topic is essentially to keep the motivation, I've never finished a game so far...
At this stage, I have a map of 240 * 240 tiles (20 meters wide) which is quite empty, but the collisions with the various objects are treated. I actually only display 50 * 50 tiles at all times as well as very large objects that overlap several tiles (like bridges and large rocks).
Here is a short video.
The next steps, well before making a complete map, will be to improve certain functions: buffering the placement of the largest objects and raycasting only those which are necessary.
I have no notion of physics, so I learn on the job. You will surely realize it! Also excuse my English, everything goes through google translation...
Finally, thanks to the team for providing us with this great tool, and congratulations to the members for their programs, it's a pleasure to see what everyone can do!
-
That looks amazing. Super impressive stuff. I look forward to following your project!
-
Thank you for those encouraging words Vinicity! :)
-
Awesome work. That engine offers a lot of posibilities for new games!
-
Thank you @Skullo , and yes, I would like to reuse it for completely different games. The map is extremely flat, I'm going to make sure I can get all kinds of elevation changes, it's one of my priorities.
-
Are you getting the elevation changes with the raycast method?
-
@Jaywalker Yes. In fact I use the rayCastObject function, in two different ways, one to detect the ground and the other to detect objects of a certain height. I use the rayCastobject function on about twenty objects in all.
Keeping in mind that I am moving on a two-dimensional tilemap, I use the rayCastObject function on the 9 squares adjacent to the one on which the player is standing, at a height of 1.5m and with a target located at 2 meters in front of the camera, it allows me to detect trees, buildings etc. And I am also testing 10 large objects.
Regarding the ground, in my tilemap, I assign an index greater than 100 to all squares that are occupied by a large object such as a bridge, a hill etc... If the tile has an index > 100 I test the desired object, this allows me to use the function only once and not to test all the large objects.
-
Absolutely amazing dude. Will be keeping a very close eye on this.. Very exciting indeed.
-
Thanks Dave! I'm starting to feel the pressure! Otherwise I just estimated how long it would take me to fill the tilemap... At the rate of one tile per second, that would be 16 hours... it's a bit scary
-
@vincent2105 Don't look at the whole wall to be built, just focus on one brick at a time :) Doesn't matter how far you get - what matters is you're doing something awesome!
-
@vincent2105 your teaser creates some good vibes, please keep on the good work. Watching the trailer I had this song in my head: "Welcome to Miami - Bienvenido a Miami.." https://bit.ly/3MYf9OY
I know, the sound style is more for an intro 😉
And no pressure, its also fun to watch the work in progress. -
Wow, that looks amazing, can't wait to see more. Well done
-
Thanks guys for your support! :) This evening I finally put aside the tilemap, I wanted to clear my mind and work on something else... So I looked into accelerations, brakings etc... There is plenty to do there too, but for a start, I think it already looks better !
-
@vincent2105 interesting. I think if one would do 4 raycasts for each wheel, you could also make a little physics engine :O
-
@jaywalker It's good that you mention it, I started modifying my camera too. I even think that 2 calls to rayCastObject() are enough. With a single call to rayCastObject(), and comparing the .y of the vector, with the .y of the vector at the previous frame, I can now calculate the inclination of the camera/car. I really want to limit the number of calls to this function because I will also have to manage the other competing cars.
-
I think I finally found the solution for setting the altitude of each area...
With a tilemap of 240 x 240 tiles, it's very tedious... Rather than having total freedom, I'm going to delimit flat areas of 10x10 tiles which can thus have different altitudes... That gives me an array to complete of 576 elements, it's already better than 57600 !
I will add very large objects to create slopes and render all less linear.
It's clearer in my head now, but I imagine I'll still run into some unexpected issues. -
@vincent2105 Some plan is better than no plan! But in all seriousness this is sounding like quite a fun project.
-
Thanks @ben-2-0 ! :) I can't wait to have some free time to set this up. In the evening after work and family life, I'm often too tired to immerse myself in it, like many of us probably.
-
The level design of my game will be partly guided by the technical constraint: indeed, distant objects disappear...
I wonder if in a future update of fuze, we could adjust the distance from which objects would disappear. I imagine that a lot of tests have been done and the answer is no, so I will design my map without forgetting this constraint.
-