I'm making a Game for Steam (I hope) with BabylonJS

Hey man, it didn’t even cross my mind that there could be a javascript library for this haha ​​so I ended up creating my solution and that gave me a bit of a headache :sweat_smile: but I’ll take a look at this library, I found it very interesting, thanks!

1 Like

I made a little more progress in the game (still trying to get to the state to create the trailer). I’m starting to have some performance issues, so tomorrow I’ll try to improve this

3 Likes

I love the artistic direction so much !!!

2 Likes

Thank you very much bro! I chose something simple because I don’t have much experience with art. I realized that you can do something cool with a reduced color palette.

2 Likes

Slowly, but progressing :sweat_smile: Reaching the trailer stage is more complicated than I thought haha

6 Likes

Still so cute!!

1 Like

:star_struck: :smiling_face_with_three_hearts: thanks bro

Wow, looks amazing! :star_struck: I really like the art style, awesome job!

1 Like

Thank you very much bro, I’ll have news soon

Night mode WIP :heart_eyes:

3 Likes

This is looking so good! Following with interest as I love city builders.

1 Like

Thank you very much :blush:

1 Like

While I’m at it, I’d like to update you on the development.

I’ve spent the last few weeks trying to improve the game’s performance as much as possible so I can record the trailer (my laptop isn’t that powerful, it has a modest Geforce 1650, so when recording the screen, the framerate would drop and the recording wouldn’t turn out very well).

There’s still a lot of room for improvement in performance, but I just needed to improve it enough to be able to record video, and I’m currently getting a decent 60fps even with a fairly large city:

What I did to get these improvements (I’m not sure if I’m correct about the FPS impact, but maybe it helps someone)

  1. I’m using instanced meshes for literally everything (high impact)
  2. I’ve reduced the post-processing effects samples (medium impact)
  3. I’ve merged meshes that share materials in Blender (this has reduced draw calls a lot) - High Impact
  4. I’ve lowered the shadow quality a bit - Low Impact
  5. I freeze the mesh matrix of all meshes whenever possible - Medium Impact apparently
  6. I freeze all materials - Medium Impact apparently
  7. I select all meshes as active (alwaysSelectAsActiveMesh). They are almost always within the camera’s Frustrum, so there is no need to spend CPU to select them - High Impact
  8. I reduced the number of polygons in the meshes - Low impact, but I really liked the effect visually
  9. Scale the camera’s speed and inertia using getAnimationRatio() - The impact is more visual, if the FPS drops a lot, it is not so easy to notice because the camera continues to act the same way
  10. I tried using freezeActiveMeshes, but it is hard to control so I decided to postpone it to the final optimization phase (but id had a Huge positive impact on performance)
6 Likes

First, the screenshot looks great. I really like the minimalistic and clean aesthetic of the game and the UI.

Second, thanks for sharing your learnings! This is super useful for anyone using Babylon.

4 Likes

There are still a few adjustments to be made to record the trailer correctly, but I’m happy with the result, so I decided to share it.

About the adjustments I still intend to make to the trailer:

1 - The ships appear out of nowhere, I need to improve that, maybe show a portal or something
2 - I don’t think the reason for the GameOver was very clear (please tell me if you noticed haha) but I’ll improve that soon

5 Likes

Phew, I think I finally have enough material for a trailer and to create a STEAM page :grin:

9 Likes

This is looking better and better!

1 Like

Can’t agree more!

1 Like

Yeaaahhhhhhh !!!

1 Like

I’ve had a little time to work on the game recently, but I’ve already managed to record a few takes for the trailer, and now I’m adding more buildings and variety to record the final take :grinning_face:

5 Likes