Main Release 2.0






Since this was my first game with my own engine (using SDL and C++), I decided to polish this project, and take a bit of time to fix some of the mistakes. I took the opportunity of the game-jam https://itch.io/jam/improve-my-game-jam-41 to do the improvements, even if I havn't fixed all issues I have in mind.

Performance improvements
On Desktop, performances are already good, because this is a small game with simple game mechanics and with a simple scene to render. It can actually run on a potato! But on the webAssembly platform, even simple game can be slowly.
Surprisingly, after profiling, one of the main offenders was the calls to "glGetError()", that are now stripped out on webGL release build.
I hope that the game will feel smoother on the vast majority of PCs / web-browsers.
Bad frame timing control
On the c++ code, I was trying to regulate the frame-rate by hand. It ends that both my code and the GPU-driver were conflicting about the frame-rate, resulting a laggy feeling.
Removing my c++ code just resolved this issue ;)
Reduce the files size
On webAssembly platform, the game is dynamically uploaded to the web-page when launching the game. I optimized the assets, but I also used better quality textures (that was really bad in the first release). The upload size was 26.4 Mb with release 1.0, and now 22.2 Mb with release 2.0.
Visual improvements
Alongside performance improvements, I lighted the rendering by using less textures and by simplifying shaders.
Lighting dynamic-range
I now used HDR (high-dynamic-range) intermediate render-targets that allow more constrast in the rendering equations. It basically uses 32bits floatting-point storages in the GPU instead of 8bit integers to store the color values.
At the end, the colors are converted to 8bit integers (the native screen format) with tone-mapping and vignetting.

Better rendering of the stars (sky-map)
The rendering of the sky-map was done using two cube-maps, sampled at full-screen resolution. I also felt that the lighting contast was too small. In fact, the sky appears fully dark on real pictures taken with the day-light at the surface of the moon.
So I decided to render only the lighter stars, using small billboards. I still want a realistic sky, so I downloaded a stars nexus (https://www.astronexus.com/projects/hyg) and I used it to place them.
Better rendering of the ground
I wasn't really satisfied about the ground looking. For the texturing, I was using several noise texture, that are not feeling right. I simplified all this mess. I also added rocks on the ground, that improve the overall feeling. I'm still not completely convinced by the final result. Maybe I'll try again in the future.

By the way, the ground geometry is extracted from a "real" moon 16K heightmap (about 1Go TIFF image). Of course, it is baked to have game-ready assets. The same technique is used to render the full moon on the menu.
Gameplay improvements
The gameplay and user-interface are hard to get right. I try my best to polish the game, even if I usually skip doing it. It's also a period where testers are useful, but I don't want to annoy my friends about the game. That said, I made few improvements that hopefuly make the game better.
More comprehensible gameplay options
Detailed gameplay options are not adapted to casual games, for which players have a short non-engaging experience. I decided to simplify the options, and consequently to make them clearer.

Fixed button display (keyboard or gamepad) with better menu navigation
The menu has shortcuts for all main actions.
The game can be played with only a gamepad!

Mics.
* Reduce slow-motion effect when using the overview
* Remove camera shaking, improve camera feeling
* Fix spurious "warning" showing when the player is flying towards a red platform but the player is still far away
Get MoonLanding Project
MoonLanding Project
platformer with the lunar landing module
| Status | Released |
| Author | lanocram |
| Genre | Platformer |
| Tags | emscripten, Gravity, hard, moon, Physics, Singleplayer, Space, webgl |
| Languages | English, French |
| Accessibility | Interactive tutorial |
More posts
- Main Release 1.0Dec 30, 2023
- Implementing a small physics engine for a platformer gameJun 02, 2023

Leave a comment
Log in with itch.io to leave a comment.