Got my generation algorithm working... And immediately started looking at rewriting the thing to be even more asynchronous. :/
Notices by Angle (angle@anticapitalist.party), page 15
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:39 JST Angle -
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:38 JST Angle Yeah, the increased asynchronicity thing didn't work out, but that's fine, I can revisit it later if I need to. For now, I just implemented chunk loading and actually used that world generation, even if it's dead simple for the moment.
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:37 JST Angle Okay, so I've been trying to figure out serialization to my satisfaction. Slow going, but I think I'm making progress. Currently trying to decide what to do with objects that need to be modified after their constructor - my current serialization algorithm doesn;t handle that well. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:36 JST Angle ...And now that I post that, I realize I should try just having a list of modifications and applying them when I try to finish the object. Whoops. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:35 JST Angle Alright, that works pretty well. But now I'm back to trying to figure out exactly what messages to even send. Like, I want to update entity positions every tick. Okay, so that's an ID for the datagram, an ID for the entity, and the new position? But what if I want to update some other field for an entity? Is that a new datagram? Or do I want one datagram, and also specify which field of the object I'm updating? :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:34 JST Angle Think I'm gonna figure out some generic system for specifying the field in an object that I want to update. Just give each field an ID, I guess? :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:33 JST Angle Yeah, I did that. Got datagrams for player movement direction and position working, so that gets sent back and forth between server and client. Nothing exciting to look at, but it works! XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:32 JST Angle Did some more work on separating client and server, and in theory it should be a bit closer to allowing multiple players to use a server. And I eliminated some debug messages. Still nothing much to see though. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:31 JST Angle Okay, have block and side registry data moving from server to client now. And I reintroduced grass, while I was at it!
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:30 JST Angle Sending chunk data to the client now. Need to work on my code for loading and unloading chunks, though. Also, apparently entire chunks worth of grass will occasionally go missing? No idea why that happens. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:29 JST Angle Okay! I think I have full multiplayer support now? I still need to test the thing, but in theory, multiplayer should be supported as well as singleplayer is - that is to say, not very well, but still. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:28 JST Angle Alright, tested it! I do in fact have multiplayer working! Now that I ironed out a few bugs, anyway. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:27 JST Angle Did a bit of refactoring and some bugfixes. I think I'm going to adopt a dev cycle? Nothing too fancy, just a basic 'New Features -> Bugfixing -> Optimization -> Cleanup & Refactoring -> Documentation -> Repeat.' And the optimization and documentation parts are going to be really light until I get the project to the point where it makes sense to put more effort into them. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:26 JST Angle Yeah, definitely thinking I want some kind of ECS? Need to figure out the specifics. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:26 JST Angle Okay, so I started poking at my lighting system so i could properly send it's data to the clients - and I think I need to implement a proper entity component system. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:25 JST Angle Well, I'm not sure about the specifics yet, but I'm going to plow in face first and hope I figure them out. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:24 JST Angle Okay, so! Entity Component Systems are kind of neat, actually? Given me a bit of a new perspective on programming. I kind of feel like there should be direct language support for this kind of thing somehow, instead of something I have to implement on top of the language? But, there ain't. Not sure how it would work, either. Some kind of decent multiple inheritance for state would be my first guess. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:23 JST Angle Or maybe that, except dynamic? Like, some kind of system where an object can have components added and removed after it's been created? I don't know, that sounds crazy hard to code efficiently. Be really neat though. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:22 JST Angle Well, I have an ECS that's satisfied with for now. Now I just need to figure out what I want to do for network code? I had been sending player position and movement direction updates via 'ModifyObjectDatagrams', which specify the objects id, it's registry id, the id of the field I wanted to modify, and then the new value for said field. If I'm going to just make everything entities, maybe I want to go 'EntityID, componentID, fieldID, fieldValue'? But I'm not sure yet. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:27:21 JST Angle Hmm. I'm leaning towards just addressing the components directly, but I'm not sure that fits either? Cause not all entity components will involve networking? behavior and camera components generally won't, for example. But I guess most of the others often will, at least on the client side? So.
Maybe I want to separate 'object that receives network updates' into it's own thing somehow? I'm not sure. :/