9/28/2023
Sometimes you have to dissapear for a while, only to return stronger
(never give up on your dreams, may this be inspiration to you)
My long absence / No devlogs
Hey guys! It probably hasn't felt that long but it's been 2 weeks, since the last devlog!
So basically shortly after the latest devlog, I felt the placement system was lacking and since the new re-branding I wanted it to have walls, and possibly layers... AND I did get the walls working eventually maybe a week after the most recent devlog but it just wasn't working how I wanted too and layers wasn't really hard to implement but it would be weird to have floating layers if there wasn't any support system (i.e walls), so after this I kind of was in limbo on what to do, I think shortly a bit after I learned some mroe blender and found out how to use Geometry Nodes and then after much distractions I came back to the game and I decided that I should just expand and improve on the mechanics the placement system rather than try and implement features that the game wasn't exactly ready for..! So the past weeks was just alot of trial and error and failures, over and over but it was worth it in the end though! I basically had to recreate the the entire placement system many times but it wasn't too difficult!
Proper Rotation
So in the last placement system, I didn’t realize that the rotation wasn’t actually proper rotation, all I would be doing is rotating the building piece by 90 degrees
, which of course was rotating it but since the placement system had width and height in 2D for each building piece I had to basically not only rotate it by 90 degrees
but I had to also flip the width and the height, so that when your dragging the part around it would automatically recalculate the new position the building piece has to be on the grid! I was SUPER happy when I finally got this working!
So here is a video example of a bush model I created, so in code it’s size defined with a width of X = 4
, and a height of Y = 2
! So basically when I rotate now it’ll flip the size and recalculate it, if you watch closely it jumps to another point on the grid and also rotates 90 degrees
!
Dynamic Placement Piece Size Support
Yay, so basically in the old placement system it only supported the same width and height (i.e 4x4, 1x1), so this kind of ties into the rotation a TINY bit, but now basically this allows for better feeling placement and just better control of how you place things because when you rotate it flips the sze allowing for more accurate placement!
Better Placement Indicator
I think the box indicator that the old system used was kind of clunky and it didn’t look really clean so I decided to add a highlight in it’s place! So basically now, when your able to place the highlight fill color will be white and when your not able to place it’ll be red!
Consistent Grid Rotation
Before this was an issue I glossed over but it would’ve been detrimental when I introduce saving and loading, because the rotation of each paradise is different so basically the grid coordinates wouldn’t be correct depending on which way the paradise was facing so basically, here is a paradise that isn’t rotated at all; the grid would start at the bottom-left hand corner
But depending on how I rotated it; it wouldn’t have the grid start at the bottom-left hand corner and this would be a problem for obvious reasons because let’s say a player saves their paradise on the unrotated one and then they come back to the game and decide to load on one that is rotated 90 degrees, everything wouldn’t exactly be in the right as they placed them relative to where they are looking…
So in order to fix this I had to basically rotate the grid the amount the paradise was rotated and this made every single paradise grid start at the bottom-left hand corner regardless of rotation!!!
Better placement security
So when the player decided they wanted to place a certain object of course I checked if they had enough money, but the problem was that I was also sending the final cframe of where the part should be and I was sending that from the client, which means, an exploiter couldve passed any CFrame and then thhe server would’ve just put it at that spot, but now instead I use just pass over the current location on the grid the mouse is closest too and of course the width and height of the object and the server will calculate all of it and make the cframe on the server without having to ask the client for it, and no latency either!
What's next?
It has been so much fun making the game better even though I didn’t make a whole lotta progress on paper, the placement system is WAY better than it was and I’m super happy about that!
I’m probably going to add some finishing touches to some of the placement system code and after I create more attractors; I’ll probably come back and implement deleting attractors on your paradise as that is probably a feature the placement system definitely will need; the reason I haven’t done it up until this point is because the attractors are intertwined with the plushies so like clean up would be a bit messy but probably not as bad as I think though!
The game still needs alot of plushies and attractors so now that the placement system is finally at a not only playable state but I’d like to think pretty professional… I can FINALLY focus on honing in on my blender skills and creating some beautiful models!
The game is right on track and I’m super happy about how it’s coming along; it’s been a journey and it’s crazy how much time has already passed but let’s keep making this game though! Thanks for any and all the support!
Until next time… (hopefully won’t be 2 weeks LOL)!
@PuggleyCake I can’t find words too tell you how greatful and appreicative I am of that fanart you made 2 weeks ago, It’s beautiful and everything looks AMAZING… It means so much too me that you put that much time in effort into it for a game that isn’t even done yet! Thank you so muchhh, words really can’t explain