Planning the Slime Server - Part Deux
Now that I have some idea how the data will save and how to operate on active slimes I will need to figure out a few things client-side as well. I did some sketches after I posted yesterday to get some idea of what the UI flow will be but I still need to work out one very important thing...
The Baby Slime Base. The current one that I made is probably wayyyyy too many frames. No definitely way to many. 50+. That's a lot of frames to have to draw for every new slime.
So I will break down the slime into it's animations I expect to need, then we will start over with 2 frames per and if we need to later on we can add more. Assuming there is we and not just me, in which case I will probably want to keep it to 2 frame animations just for productivity's sake.
I also have a lot of semi-redundant animations that could probably be sorted with slowing animation down and just changing the face sprite.
The way slime generation works is based on an older project of mine where I built a sprite generation API. The project was called Tamakai, it was basically this game but web-based. My wife played a lot of web-based pet sims and I was trying to make something for her with that more than for me. I personally have always had a strange fascination with Tamagotchi so I wanted to bring that into the mix and then there's my need to network things... Basically this project is the culmination of many other projects. Anyway, the slime server will generate slime sprite-sheets based on the bases I make now so I should probably put some effort into planning the damn things, right? It will be a LOT of work to change this stuff down the line.
Alright, so I will start by listing my current animations and then revise. Some animations may be able to use frames from other animations if I am clever.
- Idle (Normal, Happy, Sad, Sick, Tired)
- Wander (All of the above)
- Eat
- Drink
- Bathe
- Tantrum
- Discipline
- Disagree
- Training
- Study
- Smile
- Shite
- Medicate
I made this sheet knowing I would have to add more animations... knowing that it's 54 frames made me nervous. I can reduce this with some techniques (probably to about half the frames) but... I also want more animations because I would like to give the pets a bit more personality.
- Stare
- Beg
- Ignore
- Excitement
- Angry
- Scared
- Devious
- Blush
- Stuffed (with food)
- Sigh
- Tongue Out
- Crying
- Disappointed
- Tilt face (Inquisitive)
Some of these things can be done with some color modulation or slowing down the speed of the animation or just changing the face sprite. Some will be a little more complex.
I can roll sick and tired animations together but add a green tint, perhaps? Or just slow down the normal animation and tint for sick? Hmm, do I want to do it that way or would I rather have more frames per pet? This is not as simple as I would have hoped.
These guys will evolve as they reach different life stages, this will add layers and things like little floating hands, maybe wings, who knows? The important thing is I need any layers to be easily animated and not to become wonky on some animations.
I made the above slime in half a day, drawing hastily as it is a prototype. If I keep the slime frames around 50 it shouldn't be too hard to produce a bunch of them... on paper, anyway, in practice however...
Assuming I will have layers for:
- Faces
- Markings
- Internal "markings"
- Body base
- Wings
- Face Masks
- Slime cores
Then there's separate objects for:
- Hands
- Hat
- Right Equipped
- Left Equipped
Baby slimes won't have hands or equipment so that's a problem for FUTURE me, but I would like to have it in mind when designing everything.
Keeping in mind I have to create the tanks, decor, apartments, furniture and some clothes for the characters yet... there's quite a bit of pixel art required going forward.
The baby slimes will only have right-facing sprites, I will flip their horizontal scale to show left-facing. When they grow up however their sprites will be Isometric as they will now be in the apartment space and able to wander the world. It would look pretty strange if they were flat in an isometric world.
The reason for this is the tanks are flat since the test I did with an isometric tank ended up looking weird and cluttered. If I made them Isometric they would also be more zoomed out so you wouldn't see the slime as clearly.
In my sprite design I should probably look at the very thing that inspired me, right? I wonder what the Kuchipatchi sprite sheet looks like, now that I think about it...
In the Game Boy Tamagotchi game it's
In Tamagotchi ON
In Tamagotchi Connection
I will try to keep it a bit more simple.
https://www.spriters-resource.com/game_boy_gbc/tamagotchi/
Using the Game Boy Game as a main source to draw from here. But there's some things I can take from the newer versions, some of them I already figured on doing via layers, like the faces.
The idea for the tanks actually came from one of the Tamagotchi games on the Game Boy, the Second one.
I wish that game was translated to English. Maybe I will translate it myself one day. It's actually pretty cool, inspired a lot of what I am doing here in Gerucrash.
The sprites being simple will save a lot of time animating while giving the pets personality, at least that's my hope.
I guess in total we're looking at around 60 frames per slime design. I will likely have to add some code to the sprite-sheet generator to handle offsets for specific bodies and styles down the road but if I keep my frames the same I should be fine.
The generator will take a series of parts and generate the body, these parts will always include:
- Base (The body itself, giving shape)
- Core (The hard core at the center of the slime)
- Highlight
- Shading
And may also include:
- Up to 3 External Marking layers that will be trimmed to fit the body shape by the generator.
- One or two internal marking layers, likewise trimmed to fit the body by the generator.
- Wings which may need an offset in placement handled by the generator.
Then we overlay the face, we can have many different face sets but they will not require generation. They will overlay and animate separately from the body to allow more variance with less work.
When the slimes reach Child stage they will get hands added, also separate and can have a Hat and items equipped in their hands.
Lots of work.
For now though I will keep it simple, adding more layers to the generator down the line, when I add the next life stage. For now there is only the Baby.
The baby will have no markings to start out, just a body, core, highlights and shadows. The highlights and shadows will be separate as they will have to be applied OVER the markings later on down the road otherwise things will look funny.
I also want to add some shader stuff to the slimes like I did in the Geruterra prototype at some point but for now I want to keep the visual work as simple as I can since I am already writing a lot of code.
Well, that's where I am at so far with the sprite design. I'll hopefully be able to produce a new sprite-sheet with all this stuff in mind by the end of the week. Writing all this out got me really overwhelmed about the amount of work I need to do but this whole project is overwhelming, I just need to keep moving forward on it one day at a time and I will have a pretty cool pet game by the end of it.
I always wanted a game where you can raise and breed pets that go on crazy magical adventures with you. None of the things that tried ever really felt right to me, so I am trying to do it myself... but with a persistent, multiplayer world. It's kinda crazy, but I'm kinda crazy... so it just might work. I really hope it does, I also really hope people like it and I can make some money from it if so. I really need to move.
Anyway, that's all I got for today... I will do some sketches and go make lunch, adding anything else that occurs to me to my mattermost chat and either be back in here tomorrow or Thursday. I have a feeling about tomorrow, let's just say.