Heya!
As some months passed since the last bigger update, I want to share the current status of Pixel Tennis with you.
Game development is quite a journey for me as a side hobby and I’m doing it in no professional capacity. This also means, that some early design decisions, which looked great in the past, might become a burden in the future.
One example is the handling and networking of the match gameplay. With the intention of having a very lightweight server process, matches are not actually simulated on the server, as it is lacking the actual game engine or any kind of physics calculation. Instead, only a few key aspects of a match are validated and synced to the players. This works totally fine in the active playtest, but it also comes with some drawbacks. Especially regarding the planned additional game modes, which include spells, collectibles, ball targets and computer controlled opponents. All those things would need to be implemented twice. Once for the client, once for the “semi-blind” server to validate.
I also heard, that people from non EU regions experience lag or at least some form of latency when playing online. Even, if 2 Americans play against each other, the match is still routed through a server in Germany. On the other hand, most people finding Pixel Tennis on Steam check out the single player mode and do not play online anyway. So maybe, the local or offline play should gain a bit more attention.
Searching for potential solutions I also decided to check out the Open Source game engine Godot. What should I say? It is week 3 now and I honestly fell a bit in love on how doing certain things is so much easier and more intuitive compared to Unity. I even could solve the networking hurdles with onboard tools. However, it would require a complete rebuild of Pixel Tennis, which is not a rash decision to make. So at the current stage, I am validating this idea by extensively testing Godot to find the pros and cons of a potential switch.
For now, this likely means there won’t be any functional updates for a while. However, the current playtest remains fully functional and if you found bugs, I will squash them! Any progress made in the game will be carried over, regardless of the game’s future direction.
If you have any questions or tips, feel free to share them here or at one of the many other communication channels.
See you on the court!
[devblog] Seeing what's next
[devblog] Seeing what's next
Somehow related to an online tennis game.
-
- Posts: 1
- Joined: Wed Oct 09, 2024 10:55 pm
Re: [devblog] Seeing what's next
Hi, kinda interesting to see your game! I'm an indie dev myself searching my way to make my game - it's about table tennis - so that's why I found your game and this forum while searching for a good way to engineer this! I have a few question regarding the development of your game, I would be really appreciated if you can answer that! Thank you.
1. How did you do the main logic of the tennis gameplay? Did you rely on Unity physics simulation or did you do the math of calculating where the ball would land? Since I see the gameplay footage of your game it looked really cool with multiple curving way of the ball and landing prediction. Also it's really matter for the next question
2. What is your networking solution? If you rely on Unity Physic then how could you confirm the precision of the physic simulation between the server and the 2 clients? I see networking library like Mirror does not support very well with Rigidbody physic, and I'm in a research for a better option, looking at Fishnet now before really implement it.
Thank you for answering the question! I wishlisted your game and hoping one day I can play the full version!
1. How did you do the main logic of the tennis gameplay? Did you rely on Unity physics simulation or did you do the math of calculating where the ball would land? Since I see the gameplay footage of your game it looked really cool with multiple curving way of the ball and landing prediction. Also it's really matter for the next question
2. What is your networking solution? If you rely on Unity Physic then how could you confirm the precision of the physic simulation between the server and the 2 clients? I see networking library like Mirror does not support very well with Rigidbody physic, and I'm in a research for a better option, looking at Fishnet now before really implement it.
Thank you for answering the question! I wishlisted your game and hoping one day I can play the full version!
Re: [devblog] Seeing what's next
Hi fellow indie dev MovingSapien
1. The ball trajectory does not rely on Unity's physics engine. It is basically some math (Bezier curves to be exact), where you can define a starting point, a target and the curve in between. This way, the ball path prediction becomes quite easy and also deterministic to sync with all clients. However, this also requires calculating bounces manually. It is not the perfect solution, but it feels accurate enough and enables some cool trajectories.
2. Pixel Tennis does not sync physics over network. If you know the ball path in advance, you do not need to continuously sync the position or a rigidbody of the ball. It can be pre-calculated on each client and the server individually with the data for the initiating hit. I use a custom networking solution, but any pre-build solution should also work fine. I heard good things about Fish-Net, but did not use it by myself.
1. The ball trajectory does not rely on Unity's physics engine. It is basically some math (Bezier curves to be exact), where you can define a starting point, a target and the curve in between. This way, the ball path prediction becomes quite easy and also deterministic to sync with all clients. However, this also requires calculating bounces manually. It is not the perfect solution, but it feels accurate enough and enables some cool trajectories.
2. Pixel Tennis does not sync physics over network. If you know the ball path in advance, you do not need to continuously sync the position or a rigidbody of the ball. It can be pre-calculated on each client and the server individually with the data for the initiating hit. I use a custom networking solution, but any pre-build solution should also work fine. I heard good things about Fish-Net, but did not use it by myself.
Thank you very much!I wishlisted your game and hoping one day I can play the full version!
Somehow related to an online tennis game.
Who is online
Users browsing this forum: No registered users and 1 guest