Populating the player apartment
So now that I have a player loading in and walking around I have started loading the slimes in.
They have no autonomy or... really anything outside of being a picture. The player doesn't animate yet either. Also the way the apartment loads right now is a bit busted so the player can walk through the wall up top a little ways and clip through the wall down bottom. These are all things I will be fixing today, attempting to anyway.
Another issue I find is that the slimes seem to be loading in... shrunk. So that's something I will need to figure out. Then there's the player, some things are loading out of order and placeholders need to be removed.
2 bugs down.
I think the reason the slimes look small is because the player and tilesets are 16x16 double-scaled. I am going to double the slime scale in engine to see if it looks better.
Ah.
There's a few things I would like to do outside of those listed above, chief among which would be getting my old lighting system updated for Godot 4 and implementing light emitters on the slimes and furniture as well as having light coming in through windows.
Aside from that I would also like to have an outdoor area rendered at one edge of the screen and a hallway on the other edge. I would like to have birds, people and cars outside along with the noises they make. The first several months to a year of playing this game will take place inside the apartments so it's important to me that they have lots of detail. Seeing the headlights go by on the windows at night, the glow of the streetlights creating a beam of light into the apartment when the blinds are open, neon signs, etc. The streets could be decorated for holidays too, which will help in preparing for the decorations in the hub areas for the same purpose.
I think that might be what I focus my time on before getting the slime care system implemented, it will give me more time to think about how slime care works because as it is I still feel it's missing something and I don't want to go off half-cocked with the core game loop. No amount of world detail will save me from bad game play,
I will also add a very light parallax to the outside world in order to give it some depth.
There will be some more modifications to the slime template sprite as well, I want to have the sprites facing slightly to the side so I can be a cheaty bastard with the way I handle directional movement. I may overhaul them entirely in the future but for early development I think it will be fine to just have the sprites flip_h when they turn. If I handle it well it may not look so bad and I might decide to keep it. I could animate the face sliding over to the side of the body it is turning to face. Anyway, that's something I will hopefully be doing this week.
Tomorrow I might not be doing a lot of work since I have to head to a nearby town and see about a doctor, I need a letter to be able to move into this place I have been trying to move into since way earlier this year when I joined the waiting list. Now that it's so close things are getting complicated and frustrating and looking like they wont be working out but it ain't over yet so there's still a chance.
However I will try to, of course. I enjoy working on this after all even if I am treating it like a 9-5 I actually have to do that so I don't overdo it and burn out. If I didn't force myself to do other things on the weekends or after 5 I would just sit here and work on it all the time while everything around me fell apart. It's kinda scary how focused I get on things...
Anyway, lunch time. Then I suppose I should animate the player and add some basic wander navigation to the slimes.
Alright, guess I will start with player animation. Lots of frames, gonna focus on only a few animations for now. After that I will get the slimes to do a wander.
Well, I built a little state machine for the player, they wont have much complex going on at the moment, just moving around and interacting with stuff on a simple level. I just check callbacks from input for specific events (Movement key events for now) and when one of the events is first triggered, set the state and direction accordingly. I think this will allow for the player to moonwalk but... maybe they want to?
I also realized I screwed up the frames on my player parts so I have to recalculate those. I am pretty sure I got the V frames right, H frames seem to be offset, however. It turns out it was 58 frames wide, not 62. Bad brain.
Oh boy, this is going to take a while. It is counting blank frames of which there are many. Bugger.
Nope, Got the V Frames wrong too.
It was 20, not 18. GOD DAMN IT BRAIN!
I did notice something that will help me out here, I can set the frame coords to move through frames a little faster.
Well, now, this one is on the sprite artist.
I will have to edit all the sprite sheets. Joy.
I'll have to add more padding overall on everything. This... will probably be a headache. For now I will continue with the busted pixels. I just want to get animations working to start out and then I can fix this all later with modifications to the spritesheets.
I should probably just make my own sprite sheets before I continue with player animation if there's going to be this much work involved. I planned to build this initial stage of the game with a lot of purchased assets from Itch. These sprites have a lot of different parts I could use and I figured it would help me get up and running faster but now that I am sitting here about to animate the bastards in engine and seeing all the problems that they will have I am not so sure.
I'll table the player for now, instead working on adding slime movement control code and A*. Then I need to change the slimes to be more... directional and start working on their animations. After that I might start working on a player sprite from scratch. Something with a lot less superfluous frames.
Alright, I have some basic AI and pathfinding on the client for the slimes.
It's a state machine with a navigation agent. Depending on the state it will either sit idle, move to a random point or follow another node, currently. I will also set up an avoid state and this can be extended to seek certain furniture, chase other slimes, have slimes play tag, have slimes avoid or seek light or shadow, etc.
Once the personality scripts are added in they will manipulate these states depending on the slime's personality to dictate their behavior.
Added a little basic squash and stretch animation to give them a little more dynamism. Didn't have much time left today so didn't want to start anything too complex.
It's 4:30 now and I am still uncertain if I want to dump the current player character sprite and build one from scratch or not. Adding the padding around the frames in the current one wouldn't be that hard, but rebuilding all the animations for each part of the sprite will be a pain if I do in fact replace them in future... and knowing me I very well will.
However it's a matter of how long do I expect to use this sprite? Will I launch my playtest with it? Probably. Will it be around for a year or more? I don't know. I would like to have tall sprites rather than the chibi squished things most 2D games use. I understand it is to add expressiveness to the face but if I doubled the sprite height and kept the head the same size I would keep the expressiveness and not have all my sprites be short, fat and squatty, all ass and no body. Well, all noggin, in this case.
I'll decide that over the coming days.