Enhancing the JaimesAscent Demo

Hi @rickard @SwiftWolf ,
I found your projects fascinating and believe that by combining your talents, you could elevate the JaimesAscent demo to the next level.

Here are a few suggestions:

  1. User-Friendly GUI: Integrate the Lemur library to add a start/pause/resume menu.
  2. New Game Mechanics:
  • Limited Attempts: Set a maximum number of tries to complete each level.
  • Checkpoints: Include restart points in case Jamie falls through a gap.
  1. Additional Level: Introduce a second level to expand the gameplay.
  2. Joystick Compatibility: Ensure compatibility for both the game and the UI.

These changes will significantly improve the user experience and gameplay.

What do you think?

2 Likes

Great ideas.

I had ideas to implement checkpoints (especially when trying to get some screenshots), and controller support. But I wanted to keep the scope limited to actually finish it. Nothing to say they canā€™t be added.
One regret is that I didnā€™t add a proper end state, but again, I wanted to limit feature creep and finish it during the weekend.

Gui, sure, but I wonā€™t add it. I have not experience with Lemur and no interest in learning it atm.

Honestly I havenā€™t tried the little demo that @rickard did, I have some experience with Lemur (itā€™s the library I use for my GUIs). It would be interesting to work on this little demo :yum:ā€¦

Iā€™m not very good at designing :sweat_smile:, but I can create something decent so I can use it.

I had no idea how to start a pause menu (with the right theme :yum:), but after a couple of hours designing and implementing code, we finally have a pause menu (press/resume + exit).

It is adaptable to any window/screen size or resolution, what do you think of this design?

[ NOTE ]

  • I havenā€™t made any PR to rikardā€™s repository, for now itā€™s local, Iā€™d like to receive suggestions to improve it (if I can hehehehehe)
  • You still canā€™t pause the game because the UI just appears on top of the scene.
7 Likes

Hi @SwiftWolf
The GUI looks fantastic! Did you incorporate sound effects for menu interactions like opening/closing and button clicks? They are not essential, itā€™s just my curiosity :slight_smile:
We could organize a game jam. As soon as I have time, Iā€™d like to improve the camera and character movements. The game concept is excellent, and adding a second level would be beneficial for experimenting with level loading. Iā€™m also considering implementing checkpoints for player convenience.

@rickard , could you please share the original glTF file of the level? It would be quite helpful. Ideally, Iā€™d like to restructure some AbstractControl components of the moving platforms to enable direct scene editing and adjustments to obstacle speeds and movements within the SDK. However, this would require a resolution for the issue I previously reported

Thanks

2 Likes

Currently it doesnā€™t have sound effects (itā€™s a PLUS, Iā€™ll look for some effects to see what theyā€™re like)

Itā€™s an amazing idea :+1:

By the way, the PR for the interface is already here if you want to try it out:

1 Like

Yeah, I can upload the .blend if that helps. Will probably put it in a separate repo, though.

1 Like

Hi guys,
Iā€™ve been making progress on the demo recently.

Key Improvements:

  • Optimized AbstractControls: Some are now testable within the SDK editor with Gradle projects (see fix #642; thanks @tonihele).
  • Optimized Pause Menu provided by @SwiftWolf : Pauses all game elements, disables player input (camera, physics and animations).
  • Added Checkpoints: Improved game resilience.
  • Fixed Minor Bugs & Enhanced Gameplay: Improved camera and player movement, added particle effects to the rolling ball and enable soft particles with TranslucentBucketFilter.
  • Integrated Physics Debugging Tool: For easier development and troubleshooting.
  • Updated Libraries: Updated all project libraries to the latest versions.

Wish List:

  • Joystick Support: (Past issues with lwjgl2 and Windows 11; see Issue #1925.
    With lwjgl3, joystick inputs are detected differently than in lwjgl2, resulting in incorrect directional commands. This requires further investigation). ā†’ Contribution Welcome
  • Music & Sound Effects: Enhance the player experience. ā†’ Contribution Welcome
  • Multiple Game Levels: Demonstrate level loading/unloading for memory management.
  • Optimized Collision Shapes: (Requires original level .blend file) @rickard
  • Optimized Jumps: (Consider consulting @sgold for expertise)
  • Improved Physics on Moving Platforms (bounce effect): Especially during descents when Jaime is on top of them; see the 2nd picture (@sgold 's input might be valuable).

Collaboration:

The project has great potential. By leveraging everyoneā€™s expertise, I envision developing a small demo with the jME mascot, inspired by the engaging gameplay of PS5ā€™s AstroBot.
Anyone interested in trying the demo or providing artistic input is welcome to join.

@rickard , would you be interested in developing a second level for the demo? :smiley:

The project is available here.

Green cube is the checkpoint

Improve Physics on Moving Platforms (bounce effect) [TODO]

Edit:
Rickard, to avoid altering your original project and its intended purpose, I created a fork of the project to expedite the changes. If youā€™re interested, I can submit a PR at the end of the work, or you can incorporate any useful parts directly.

3 Likes

Awesome!

Iā€™m wondering whether we could migrate this to the jmonkeyengine org? Might be more suitable in the long run.

I donā€™t mind merging these into the main project. Create a PR and Iā€™ll merge them.

I can make another level, but Iā€™d like some input about what it should contain. Especially ideas about physics puzzles.

1 Like

Iā€™ve added a repo for assets and uploaded the scene:

Iā€™m unsure whether the images are included or not. Iirc they are not. If anyone knows how to bundle them, let me know.

1 Like

Hi @rickard
Unfortunately, the .blend file you shared does not contain the textures.
Here is what the file looks like when you open it with Blender:

Here is a tutorial that explains how to package textures in the .blend file.
How to Pack Files - Blender

In general, perhaps it is best to share 3d model files in .glb format (which includes the textures) in case someone is not using Blender.

Regarding the level design of platform games, I researched and selected some videos with intriguing ideas that might inspire you. But I donā€™t want to overcomplicate things, so feel free to create what you want. :wink:

Edit:
The game demo currently lacks a defined goal. A clear objective must be established for players to progress to the next level. Please consider this when designing future levels.

The simplest goal, as also suggested by the name of the game, might be to reach a specific point in the level.

Uploaded glb file as well. And added issues for some of your suggestions.
Itā€™s funny you should mention Super Mario World:

6 Likes

We should definitely have Game Jams more often! Great work everyone! :wink:

2 Likes