I've structured my packages into client/server/common. Still have to finish writing tests, refactoring, and then rewrite the code to actually respect that split. XD
Notices by Angle (angle@anticapitalist.party), page 9
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:08 JST Angle -
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:08 JST Angle If anyone's willing to take a look at the code and give me pointers on this, I'd appreciate it. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:07 JST Angle Alright, wrote a ton of tests and refactored a bunch of code. Currently working on the architecture for client and server to communicate. Not netcode yet, but I want to have things arranged such that I have a neat little place to *put* the netcode once I get to it.
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:07 JST Angle Also, I have like, three different coordinate systems - block position, chunk position, and region position, and I keep needing to translate between them. That's probably a problem. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:06 JST Angle Not sure how to go about it though. Do I just make 'client connection' and 'server connection' classes, and make it so that whenever the client or the server want something from the other, they have to ask their connection for it? :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:06 JST Angle Not entirely sure what I want to do about this though. Maybe I should just ditch regions? They might not be necessary. They exist mainly so I don;t have to add every chunk to the world coordinate hashmap, but maybe that's fine and I should actually do it that way. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:05 JST Angle Well, I have the data about as disentangled as I can get it for the moment - now I just need to write the code for the client and server to talk to each other. Still gonna put off netcode, but a friend recommended I stuff everything into ByteChannels for sending it back and forth, so I'm going to look into that. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:05 JST Angle And the world coordinate hashmap exists so that I can afford to have much larger worlds, without running into weird behavior due to unreasonably large coordinate numbers, but maybe I shouldn't worry about that? I dunno, I think i still want to do things that way. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:04 JST Angle Alright, next step is to write the code to compose and process datagrams. Things have been going pretty well so far, though I don;t have anything to make cool screenshots out of. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:04 JST Angle I created a discord server for the project. It's not nearly ready to be an actual game, but if you're interested, feel free to check it out. If you code with Java, I'd be willing to walk you through how to get it running, and show you how it works. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:03 JST Angle Now have player input and position updates happening entirely through datagrams! Now I just need to transfer world data through them... XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:03 JST Angle Alright, did a ton of code cleanup, and made blocks half as big so that stairs and slabs can be natively represented. Now I need to decide what to do next. I'm thinking either attempting multithreading, for chunk generation and loading, or some UI stuff, including a title screen. Not sure. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:02 JST Angle Well, did a whole bunch of work on sending chunk block data, then realized I need send block type data first. So it goes. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:02 JST Angle Working on the UI stuff. Turns out the friend who's library I'm using already put in a whole UI package, so I'm using that. Had an issue with it, but he helped me figure out how to fix it, and I put in a pull request for the fix, just for practice. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:01 JST Angle Alright, I can send block type and some chunk data via datagrams! Super laggy and eventually locks up though, so I must have made a mistake somewhere. Gonna write some more tests next, I think. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:01 JST Angle Got a simple debug window working. Nothing too crazy, and it doesn't actually have any debug info in it yet, but, one thing at a time. XD
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:00 JST Angle Still working on tests, trying out Checker Framework. While testing the thing, I also spotted a ton of what I think are T-Junction errors - single pixels with nothing drawn on them. Gonna have to figure out what to do about those later. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:30:00 JST Angle Alright, added an fps counter to the debug window, though it only counts off the last frame, and like the first half of a WAILA display, though it uses the raycasting function I mad earlier, which is inconsistent for some reason. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:29:59 JST Angle Well, I'm working on optimizing data sent. I implemented rate limiting for data sent between client and server, and learned in the process that the server sends WAAAAY to much data to the client, atm. It's mostly chunk data - so, I need to figure out how to store less chunk data. I reimplemented HomogenousChunks, from earlier, and datagrams for them, and that helps a bit - but it's still way to much data. So, I need to look into Run Length Encoding or KD Trees, or something. :/
-
Angle (angle@anticapitalist.party)'s status on Friday, 13-Jan-2023 07:29:59 JST Angle And now I've added an outline around the block the player is looking at. My raycasting function seems buggy with negative values, I think, so I'll fix that next. XD