Comments (4)
This sounds like implementing vanilla behavior, which is out of scope for valence. Is client behavior affected by this? In other words, does the client automatically update hunger and saturation without the server telling it to?
from valence.
This sounds like implementing vanilla behavior, which is out of scope for valence. Is client behavior affected by this? In other words, does the client automatically update hunger and saturation without the server telling it to?
The client does not automatically update hunger and saturation without the server telling it to, but there is also no way to tell the client about their own hunger right now either. In my opinion, I agree that implement behavior such as automatically decreasing food level when player runs, automatic regeneration, etc. is out of scope, but I also believe that just implement the basics so that it's usable by devs wouldn't be outside the scope.
If anything, from what I can tell, I would say that the current state of #558 is actually outside the scope of valence regarding implementing status effect behavior. If you also believe it to be the case, I'll remove the behaviour and ready it to be merged.
I would love to discuss further what precisely are the non-goals of valence, as it's not clear in the README. For example, what exactly do you consider to be "vanilla behavior"? Because there's a lot that valence is already doing that vanilla is also doing. I'd just like it to be a bit clearer. Thx :)
from valence.
"Vanilla behavior" is any behavior that is not client predicted. If something the client does would cause it to become out of sync with server state, valence needs to account for that so that it's capable of detecting it and correcting client state if desired by the user.
For example: the furnace crafting recipe is vanilla behavior, but the concept of a crafting recipe is not. Minecraft's terrain generation is vanilla behavior, but the concept of chunks is not.
So regarding potions, we only need to implement what's necessary to get the client to show the effect in the UI. We don't need to implement any of the actual effects unless the client makes state predictions that would invalidate the server's state.
An exception we have is "would having this behavior or feature make it easier for end users without limiting anything", which is evaluated case by case, based entirely on opinion.
from valence.
"Vanilla behavior" is any behavior that is not client predicted. If something the client does would cause it to become out of sync with server state, valence needs to account for that so that it's capable of detecting it and correcting client state if desired by the user.
For example: the furnace crafting recipe is vanilla behavior, but the concept of a crafting recipe is not. Minecraft's terrain generation is vanilla behavior, but the concept of chunks is not.
So regarding potions, we only need to implement what's necessary to get the client to show the effect in the UI. We don't need to implement any of the actual effects unless the client makes state predictions that would invalidate the server's state.
An exception we have is "would having this behavior or feature make it easier for end users without limiting anything", which is evaluated case by case, based entirely on opinion.
Alright, thanks for the clarification. I'll remove the potion stuff then and make it ready for merging then. I'll keep this issue open.
from valence.
Related Issues (20)
- Use standard `div_ceil`
- Add EntityAttributes
- Damaging entities + death
- Absorption
- Setting the server name (On F3 screen) HOT 1
- Client Version Check HOT 1
- Set default health based on max health attribute
- Make `valence_protocol` usable for other projects HOT 1
- Use new `[lints]` table in `Cargo.toml`
- You can login with the same account multiple times HOT 1
- Rewrite the project with `evenio`
- Block Actions
- Yaw exceeding limits HOT 4
- Use `compio` instead `tokio_uring`
- Project Rewrite Tracking Issue
- Loading terrain takes exactly 30 seconds HOT 1
- fix case where plauyers send too many packets/actions HOT 1
- Combat Example doesn't work
- Ask if the developer can upload this on bilibili no. In China, we can't see this demo video through YouTube. HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from valence.