I decided to create a complete “rescue the princess/hostages” kind of fighting game.
The game’s story is not complete yet
Environment graphics is mostly taken from SketchFab
Characters & animations are downloaded from Mixamo and assembled in Blender
Coding is made with SceneMax3D
Physics is handled with Minie
Rendering with JME (of course)
It will target PC & Android devices
Source code will be uploaded to GitHub soon and resources will be available for download from ITCH
Progress Oct-12-2023
- A few issues regarding a-sync code blocks and animation canceling were found & fixed in the scripting language
- Resources are now loaded in background threads
- A new (fun!) high-jump mechanics was added to the main player (see attached video)
- A new main player character replacing the previous Ninja was added. The Ninja character will be added to the enemies instead
- The old fighter enemy AI is set to run initially 2 times slower
- Improved camera behavior - in general, handing the camera is a big effort. I watch a lot of Tekken clips to try understanding how they do that.
- @sgold SkyControl system was added instead of static images
The rhythm of the game is aimed to be fast
The main player has relatively full freedom to move in 3D space except when performing fighting moves where he automatically points toward the current enemy
Download current version (Windows)
The current state of the game can be downloaded from HERE
Instructions
W - Jump
A, S, D - fighting movements
Space - in-place jump
Arrow keys - move in 3D space
P - toggle debug mode On/Off
Feedback is always welcome
Cheers!
13 Likes
Progress DEC-18-2023:
Current executable (windows) can be downloaded from here: Fighting_Game.exe - Google Drive
How to run the game from source code (windows):
- Install the editor from here (latest version 1.9.0 is needed): Downloads – SceneMax3D
- Download the zip file with current source code & resources from here: Fighting Game.zip - Google Drive
- Import the zip file to the editor
Select the “main” file and Press on the “play” button. The first time it will take a few seconds for the player to compile before the game starts
Development progress:
Code was growing to ~1500 lines (45KB of source code) to the point where a refactoring is needed to support the mechanics’ state machine.
I watched several YouTube videos about state management in UE / Unity / Godot and that inspired me to develop some scripting features for state management.
I’m moving from direct logic placed inside a collision detection procedure handlers to only setting a bunch of run-time flags like:
player attack & hit with hands / feet, enemy_hitted_in_head / body / legs
Then a special event handlers are triggered when some logical expressions yields “true” for example:
when @player1_hand_attack_head do
run player2_head_hit
player1.data.hand_attack_hit = 0
player2.data.head_hit = 0
end do
where the logical expression is pre-defined like that:
var @player1_hand_attack_head = @player1_can_hit && player1.data.hand_attack_hit == 1 && player2.data.head_hit == 1
This method of reacting to state changes, allows me to cope better with different game scenarios.
Features added:
- Grab & throw - Pressing on X
- Attack legs - Pressing on C
- More sound effects
- Camera shake
- Switched to collider objects (ghost controls) based collision detection rather than checking the joints’ rigid body controls
- Character control moved to a different collision group
Next steps
- load different levels, load different characters with different AI
Cheers!
5 Likes