The ongoing 1.3 update epic
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
It's amazing how tiny things can often be the biggest pain in the ass:
I was just playing around with breeding some animals through throwing wheat on the ground. Well, it turns out this gets weird real quick.
The functionality works just fine mind you. The animals go into breeding mode, and a baby pops out a short time later. However, particles are the problem.
See, as far as I can tell, when you right click with wheat, that happens on the client, so it knows locally that the animal has gone into breeding mode, and the hearts start popping out. However, AI, and thus the code that picks the wheat up off the ground, exists on the server, so they eat it, but no hearts come out because the client is oblivious that they are in love mode.
Also, no packets exist for communicating that kind of information, because it isn't needed by vanilla behavior. So, just to get the bloody hearts, looks like I need to write a custom packet handler ;)
Same with placenta and the birthing particles actually. The client isn't actually aware of the "birth", it's just notified that a new entity has spawned at a particular location, which is the same thing that happens when a chunk is loaded, or what have you. As far as I can tell, there's no particular birth effect.
So yeah, I've said it before, and I'll say it again: this is going to take awhile :)
I was just playing around with breeding some animals through throwing wheat on the ground. Well, it turns out this gets weird real quick.
The functionality works just fine mind you. The animals go into breeding mode, and a baby pops out a short time later. However, particles are the problem.
See, as far as I can tell, when you right click with wheat, that happens on the client, so it knows locally that the animal has gone into breeding mode, and the hearts start popping out. However, AI, and thus the code that picks the wheat up off the ground, exists on the server, so they eat it, but no hearts come out because the client is oblivious that they are in love mode.
Also, no packets exist for communicating that kind of information, because it isn't needed by vanilla behavior. So, just to get the bloody hearts, looks like I need to write a custom packet handler ;)
Same with placenta and the birthing particles actually. The client isn't actually aware of the "birth", it's just notified that a new entity has spawned at a particular location, which is the same thing that happens when a chunk is loaded, or what have you. As far as I can tell, there's no particular birth effect.
So yeah, I've said it before, and I'll say it again: this is going to take awhile :)
Re: The ongoing 1.3 update epic
Thats fine by me theres not a thing wrong with btw 1.2.5 for the time being =]
Never say no to Panda.
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
I am not sure if I am following this properly and am at work and unable to check this out.FlowerChild wrote:-snip-
Would that not mean that while in a game, if you have one client feed an animal the other client(s) will not see that said animal is in love mode?
Edit: in case it is unclear I am talking about vanilla
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Huh. That's actually a very interesting point. If someone with access to a 1.3 mutliplayer environment could test that out, I would be very interested in hearing the results.Ethinolicbob wrote: I am not sure if I am following this properly and am at work and unable to check this out.
Would that not mean that while in a game, if you have one client feed an animal the other client(s) will not see that said animal is in love mode?
If I am correct, you are right in that it shouldn't show up. If it does show up, I may have missed something in looking through the code.
-
- Posts: 262
- Joined: Sun Mar 04, 2012 7:58 pm
Re: The ongoing 1.3 update epic
Edit: Didn't.
Last edited by jakerman999 on Tue Aug 07, 2012 12:41 am, edited 1 time in total.
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
Dude don't offer programming suggestions. Just don't.jakerman999 wrote:-snip-
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
Got home checked it out. No hearts on the foreign client.
Seems if you do your own packet handler you are passively fixing vanilla bug(s).
Another (not relating) bit of interesting I found while doing this.
If you log into a LAN game with the same username (or by both not defining a name in offline mode) it will bump the other player off. In this case it bumped the host which resulted in bumping the server.
That would cause so much havoc in a big LAN party with one malicious person.
Seems if you do your own packet handler you are passively fixing vanilla bug(s).
Another (not relating) bit of interesting I found while doing this.
If you log into a LAN game with the same username (or by both not defining a name in offline mode) it will bump the other player off. In this case it bumped the host which resulted in bumping the server.
That would cause so much havoc in a big LAN party with one malicious person.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Damn, I was hoping I was wrong :)Ethinolicbob wrote:Got home checked it out. No hearts on the foreign client.
Seems if you do your own packet handler you are passively fixing vanilla bug(s).
Thanks for checking it out and verifying though man. It was a good theory.
EDIT: I think I'm actually going to triage this one for the first pass. The functionality is working, it's just the display that's not fully active at present (no hearts or birthing particles). If I spend hours resolving something like this now, it's just going to demoralize me, whereas if I come back to it later once the bulk of the mod is in working order, it will be much less tiresome to resolve these small but involved issues one at a time.
Yeah, I think that's the best course of action. I'll note this one down to be addressed at a later date.
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
If you need any other vanilla server-client interaction tested I still have it setup and am available sporadically for the next hour or 2
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Nah, it's cool man. Thanks. Honestly, the way things are working internally now, I don't think there's much difference between running SSP and LAN, other than not being able to test simultaneous actions from 2 clients.Ethinolicbob wrote:If you need any other vanilla server-client interaction tested I still have it setup and am available sporadically for the next hour or 2
That's in no way an indication that the first release will be LAN enabled. Testing those kinds of interactions will definitely be important down the road, but like above, I don't want to get bogged down in those kinds of details right now.
I will be a lot happier (and I'm sure a lot of others will be too) when I have the mod working as it did pre-1.3. Once I get that out of the way I can move on to addressing the rest of the issues without this huge mass of work hanging over my head.
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
Yeah. Realised that it won't be available for Multiplayer. Figured I would offer anyway in case you wanted to quickly figure out which specific vanilla interaction is client based or packeted from server. Either way I am likely to do it anyway when I stop procrastinating and start being productive.
My mind cant quite fit & internalise the whole damm code like yours seems to. I usually start with isolation testing to figure where stuff goes wrong.
That pretty much sums up my entire job...
My mind cant quite fit & internalise the whole damm code like yours seems to. I usually start with isolation testing to figure where stuff goes wrong.
That pretty much sums up my entire job...
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Well, I don't really. The trick I find is to deal only in very broad strokes at the high-level, otherwise you become overwhelmed by the details in something that is too massive to fully conceptualize all at once.Ethinolicbob wrote:My mind cant quite fit & internalise the whole damm code like yours seems to. I usually start with isolation testing to figure where stuff goes wrong.
Then, I tackle the underlying systems one at a time, poking and prodding at them only as they immediately concern me. That slowly fills in my higher or medium level understanding of what's going on.
You'll notice I'm devoting a lot of attention to compartmentalizing my tasks right now. That's because I know very well that this will quickly become overwhelming otherwise.
Also keep in mind that while I primarily consider myself a designer, I've fully architected a few commercial games in the lead programmer role, including their multiplayer components. This gives me a general high-level understanding of how these things work, even if the low level details vary from game to game. So yeah, a certain amount of it just comes down to experience, and getting used to dealing with massive projects at a high level in a manner that doesn't fry your brain :)
- Ethinolicbob
- Posts: 460
- Joined: Sat Feb 25, 2012 2:03 pm
Re: The ongoing 1.3 update epic
Appreciate the insight man.
I gleaned a lot more from that than you may realise.
I gleaned a lot more from that than you may realise.
-
- Posts: 57
- Joined: Sun Jul 17, 2011 8:15 am
Re: The ongoing 1.3 update epic
cant remember this was alredy asked... but just to get it clear:
the EXTENDED-BLOCK-IDs was not in the 1.3.1 update right? we still have to wait for this!?
the EXTENDED-BLOCK-IDs was not in the 1.3.1 update right? we still have to wait for this!?
- Eriottosan
- Posts: 656
- Joined: Sat Nov 26, 2011 8:27 am
- Location: U.K.
Re: The ongoing 1.3 update epic
No, they weren't in 1.3.1. I think this was covered a while back in the MC news thread. I think Mojang are going with a new string based system in the future, but the effect is the same in that there are more blocks able to be added. The hope is that this will be included with the Modding API in 1.4, but we won't know till we get there.
However, I'm not sure this is particularly relevant to this discussion, as it is now more a following of FC's progress updating, and previously was a thread on 1.3 discoveries, not what was left out.
However, I'm not sure this is particularly relevant to this discussion, as it is now more a following of FC's progress updating, and previously was a thread on 1.3 discoveries, not what was left out.
私は日本語が大好きだ。だから、私と話すとき、日本語で書けば、日本語で書いてください。
I like Japanese, can you tell?
I like Japanese, can you tell?
- RaustBlackDragon
- Posts: 1748
- Joined: Fri Oct 14, 2011 6:25 pm
Re: The ongoing 1.3 update epic
So what makes the custom packet necessary? Does that mean I'd need to send custom packets for every single one of my dogs' abilities/stats? That scares me. Even if you were to implement a hook system, It certainly wouldn't be compatible with the hook system forge will inevitably implement to fix this, so I'm concerned that I'll have to maintain two copies of the codebase, one for BTW and one for Forge.
What's the price of freedom now?
Can you cut me a deal?
A crate of wholesale liberty,
or a justice combo meal?
Can you cut me a deal?
A crate of wholesale liberty,
or a justice combo meal?
Re: The ongoing 1.3 update epic
this might not be the correct place to ask, but does this mean with the connection of both client and servers that people such as myself, will not be able to play off-line? For example, I do not have a standard all-time Internet connection, so I bring my laptop to a friends house, and download the latest updates for both better than wolves and mine craft. With so much coming from server-side, off-line single player is effectively disabled right? Many apologies for possibly posting in the wrong place but if anyone will know the answer to this will be the people on this lovely forum.
**ED I T:Still working on using Dragon dictation, stupid spelling…**
**ED I T:Still working on using Dragon dictation, stupid spelling…**
FlowerChild wrote:I'm drawing a line in the soul sand.
finite8 wrote:Give me all your diamonds and your enchanted gear or your base is going to resemble a Chunk Error.
- Elevatator
- Posts: 573
- Joined: Tue Jan 03, 2012 6:32 pm
Re: The ongoing 1.3 update epic
What? The Server runs internal.DocHussey wrote:-snip-
Even in 1.3 you can play offline.
⠀⠀⠀⢀⣀⣠⣤⣤⣤⣶⣶⣶⣦⡀
⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦
⠀⢀⣾⣿⣿⠟⠉⠀⠀⠀⠀⠈⠻⣿⣿⣷⣄
⠀⣼⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣧
⣰⣿⣿⣿⡀⠀⢀⣴⣾⠿⣵⣦⠀⠀⣿⣿⣿⠇
⠙⢿⣿⣿⣇⠀⠈⠛⠁⠀⠈⠁⠀⣠⣿⣿⡏
⠀⠀⠻⣿⣿⣷⣤⣀⣀⢀⣀⣠⣾⣿⣿⡿
⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡥⠤⠒⣢
⠀⠀⠀⠀⣀⣽⣿⣿⡿⠿⠿⠛⠉⠁⣀⣤⣶⠟⠁
⠀⠀⢴⣭⣥⣶⣾⣿⡇⠀⠀⠀⠀⢸⣿⣿⠁
⠀⠀⠀⠀⢀⣿⣿⣿⡷⠀⠀⠀⠀⢸⣿⣿⣧⡀
⠀⠀⠀⠀⢾⣿⣿⣿⣤⣤⣤⣤⣤⣼⣿⣿⣿⠇
⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁
⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦
⠀⢀⣾⣿⣿⠟⠉⠀⠀⠀⠀⠈⠻⣿⣿⣷⣄
⠀⣼⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣧
⣰⣿⣿⣿⡀⠀⢀⣴⣾⠿⣵⣦⠀⠀⣿⣿⣿⠇
⠙⢿⣿⣿⣇⠀⠈⠛⠁⠀⠈⠁⠀⣠⣿⣿⡏
⠀⠀⠻⣿⣿⣷⣤⣀⣀⢀⣀⣠⣾⣿⣿⡿
⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡥⠤⠒⣢
⠀⠀⠀⠀⣀⣽⣿⣿⡿⠿⠿⠛⠉⠁⣀⣤⣶⠟⠁
⠀⠀⢴⣭⣥⣶⣾⣿⡇⠀⠀⠀⠀⢸⣿⣿⠁
⠀⠀⠀⠀⢀⣿⣿⣿⡷⠀⠀⠀⠀⢸⣿⣿⣧⡀
⠀⠀⠀⠀⢾⣿⣿⣿⣤⣤⣤⣤⣤⣼⣿⣿⣿⠇
⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁
Re: The ongoing 1.3 update epic
DocHussey wrote:this might not be the correct place to ask, but does this mean with the connection of both client and servers that people such as myself, will not be able to play off-line? For example, I do not have a standard all-time Internet connection, so I bring my laptop to a friends house, and download the latest updates for both better than wolves and mine craft. With so much coming from server-side, off-line single player is effectively disabled right? Many apologies for possibly posting in the wrong place but if anyone will know the answer to this will be the people on this lovely forum.
**ED I T:Still working on using Dragon dictation, stupid spelling…**
How fast does your laptop run minecraft right now? Can it handle stress?
'cause, as far as playing SSP is concerned, that things gonna be a server when you start up the game.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Mainly that I'm modifying an existing vanilla entity in a way that requires additional info to be communicated between client and server.RaustBlackDragon wrote:So what makes the custom packet necessary? Does that mean I'd need to send custom packets for every single one of my dogs' abilities/stats? That scares me.
As you know Raust, compatibility is not a focus for me. I may take steps to help with it later by investigating stuff like ModloaderMP or what have you, but for now, it's not a distraction I want to deal with in doing this port.RaustBlackDragon wrote: Even if you were to implement a hook system, It certainly wouldn't be compatible with the hook system forge will inevitably implement to fix this, so I'm concerned that I'll have to maintain two copies of the codebase, one for BTW and one for Forge.
- RaustBlackDragon
- Posts: 1748
- Joined: Fri Oct 14, 2011 6:25 pm
Re: The ongoing 1.3 update epic
Understandable, I know how greatly we differ on the compatibility issue. At any rate, I'll stop fretting about it until I get a better grasp of how things stand, which should hopefully be soon.
What's the price of freedom now?
Can you cut me a deal?
A crate of wholesale liberty,
or a justice combo meal?
Can you cut me a deal?
A crate of wholesale liberty,
or a justice combo meal?
Re: The ongoing 1.3 update epic
To be honest man I don't think anyone uses ModloaderMP anymore. I think Forge becoming incompatible was a deathstroke for them. The only major mod that doesn't require forge AFAIK is this one and it doesn't really cater to compatibility.FlowerChild wrote: As you know Raust, compatibility is not a focus for me. I may take steps to help with it later by investigating stuff like ModloaderMP or what have you, but for now, it's not a distraction I want to deal with in doing this port.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Keep in mind that BTW add-on mods will require some kind of common-interface for all this stuff, otherwise it's going to be a complete cluster-fuck. I can either roll my own or use an existing solution like ModloaderMP.Sarudak wrote: To be honest man I don't think anyone uses ModloaderMP anymore. I think Forge becoming incompatible was a deathstroke for them. The only major mod that doesn't require forge AFAIK is this one and it doesn't really cater to compatibility.
Anyways, I will evaluate that later. For now I am special casing until I get everything working again and have a better idea of how everything works. My general programming policy is to special case first, then come up with a general purpose solution if needed, once I have a better understanding of all the problems involved.
Re: The ongoing 1.3 update epic
Righto. As far as special casing and then generalizing I thought that was just good practice. I mean I know a lot of people who like to start designing a grand framework before they've even built out the cases that it'll actually be used for but that's silly and you end up wasting effort and usually not even fully covering all the use cases. Then again my boss does that sometimes... :PFlowerChild wrote:Keep in mind that BTW add-on mods will require some kind of common-interface for all this stuff, otherwise it's going to be a complete cluster-fuck. I can either roll my own or use an existing solution like ModloaderMP.Sarudak wrote: To be honest man I don't think anyone uses ModloaderMP anymore. I think Forge becoming incompatible was a deathstroke for them. The only major mod that doesn't require forge AFAIK is this one and it doesn't really cater to compatibility.
Anyways, I will evaluate that later. For now I am special casing until I get everything working again and have a better idea of how everything works. My general programming policy is to special case first, then come up with a general purpose solution if needed, once I have a better understanding of all the problems involved.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: The ongoing 1.3 update epic
Hehe...maybe, but I don't think that's what they teach in school anymore. Over-architecting is definitely a problem that I see a lot of junior programmers develop, and it winds up just slowing down their development speed to a crawl while often creating an inflexible code-base that will ultimately need to be ripped apart and refactored at some point.Sarudak wrote: Righto. As far as special casing and then generalizing I thought that was just good practice. I mean I know a lot of people who like to start designing a grand framework before they've even built out the cases that it'll actually be used for but that's silly and you end up wasting effort and usually not even fully covering all the use cases. Then again my boss does that sometimes... :P
I tend to just apply the KISS principle at all stages, keep the code I do write modular and easy to swap out, and get the job done. You'll notice I've never felt the least bit compelled to do a complete rewrite of the BTW code-base, but I will go back from time to time to refactor sections of it when I see the necessity, and rarely will it break anything else.