Open lemonchu opened 8 months ago
Close #4, #7, #63
I can't agree more that the seg faults are still a problem! Even though I adopted EnderXie's method, I still encountered the same seg-faults this afternoon. It seems that functions associated with Render() have caused it after the ball was removed. Besides, after removing a player that is pushed off the edge of the block, I can still see the ball falling down. Maybe this problem is similar to your Issue 1?
I can't agree more that the seg faults are still a problem! Even though I adopted EnderXie's method, I still encountered the same seg-faults this afternoon. It seems that functions associated with Render() have caused it after the ball was removed. Besides, after removing a player that is pushed off the edge of the block, I can still see the ball falling down. Maybe this problem is similar to your Issue 1?
There is a bug in actors_to_remove makes removal of ball actors malfunctions. I have fixed it, and it maybe helpful to your works! I would greatly appreciate it if you would be willing to help me test and explore other secure ways of deleting the balls.
close #81 close #67
Close #4 Close #7 Close #63 Close #81
TL;DR
New Feature: Cross-Platform Multiplayer Network
Implemented Features:
room
,client
, andlocal
mode.room
mode is for the host of a playground.client
mode is for connecting to the room to join the party.local
mode is for playing with the dead ball for practice.Now GameBall can be played on Windows, Linux, and MacOS!
Usage:
GameBall --mode=local
GameBall --mode=client --address=192.168.1.1 (your ip) --port=1115 (default server port is 1115)
GameBall --mode=room --port=1115 (your server port, default is 1115)
Room
mode will automatically show room ip in the consoleCaution: In
client
mode, port 1116 is reserved for banning 2 clients ball running on the same device. Want to override this restriction? Hint: use--res_port=***
Bug Fix: Actor removal
The is a bug in game_ball.cpp of misuse of map function. Now it is fixed.
Enhancements: Ball Jumping On Left Mouse Click
Implemented Features:
Jump Activation via Left Mouse Click: The ball is now programmed to jump when the left mouse button is clicked.
Grounded Jump Constraint: To add realism and challenge, the ball can only jump when it is in contact with the ground. This restriction prevents continuous mid-air jumps.
Single Jump per Click: The ball will perform a single jump for each click of the left mouse button. Holding the button down won't cause multiple jumps.
Consistent Spin During Airborne State: While the ball is airborne post-jump, its spinning motion remains constant. This detail ensures a seamless visual experience.
Enhancements: Ball Respawn
This mechanism is simply teleporting the fallen ball back to the playground.
Known issue:
Client Quit Leaving Ball(Solved by fixing an actor removal bug): GameX still not have a proper scheme to erase the ball picture when the client quit. We fixed the bug in actor removal, and close this sub-issue.
Seg Faults When Quitting(Temporarily Solved by removing some lock_guards): GameX has issue when exiting on
Application::~Application()
, it is about handling too many mutex_locks. I just remove some of the locks and it stopped showing seg_faults now! But it may be thread-unsafe.Looking forward to feedback and suggestions!