ShrimpleLife - 3D Rimworld

take times to rest and drink water

6 Likes

@Eyewatcher9 Hey, thanks for the advice, I’ll try to make good on it <3

It’s been a minute, but I’ve been chipping away at the project, making progress when I can. There’s a lot to cover.

New jobs; foraging and mining. I made the sensible decision to build an item database to help with managing containers, hauling and the like. When a pawn forages or mines, it rolls a chance for a particular seed/ mineral to drop.

I don’t believe I’ve covered it before, hauling technically always existed, but now…

Functional containers, with a sub-menu showing what’s currently stored. It was developing into a problem where I couldn’t see how resources were moving while debugging, so I made its inventory visible.

construct
Pawn 3 collecting wood from the stockpile in the middle, hauling it to the food crate on the right

To follow, I wasn’t sure if I’d include it, but construction also works. Any mats needed for a construction site are reserved, and any pawns set to construct will begin hauling items to the site. While still set to construct, they’ll wait for more resources, and once a mat needed has been stored, they’ll be sent to collect.

farmPlots

Farming works, as well as the gardener job.

seedbox

Gardeners will look for any seeds in storage and if there are any empty plots, carrying them there. After they’ve grown a set length of time from the item database, gardeners will collect and haul them to the closest food container.

There’s a new kind of research available.

ideas

Ideas unlock features to further optimize your bots. These include setting a particular bot’s diet, to prioritising where resources are carried. These are low priority and will be implemented later.

print

There’s now an activity tracker in the top-right corner of the screen. I set it to the idle state for demonstration purposes, but it’s also used for things like when construction has completed, or when a pawn eats food. It’s not set up, but I left a hook for the related node, so when you click on it, it’ll take you to the relevant building or pawn.

I have a vendor UI for buying bots, but I’m not ready to show it just yet. It serves as a look into how the final UI could look, but I don’t think it’s ready.

moving

Moving/ destroying buildings works. If a pawn needs the building as part of their job, they’ll be redirected to the next job of the same type they’re assigned to, or return to an idle state.

Honestly I’ve probably missed something else. A lot of these features would’ve only been possible after I’d rewrote how jobs worked for maybe the third time, but I’m thankful I did. With how things are going irl I can’t guarantee I’ll be back sooner than later, only when I feel there’s substantial enough progress to document it.

I’m steadily compiling a list of features that need saving between launches. However another substantial part I want to devote some time to is the pawn model and its wg. This’ll open the way to how I want to handle customization, and might make an interesting topic for another time.

Sorry for the long read, but thanks for reading. Until next time o/

15 Likes

GIF

:eyes:

10 Likes

I dont know if you have looked at it but the JiggleBones addon for Godot is great for doing jiggle physics. It requires some work to configure the bones and do the painting so it jiggles correctly for wildly different weights but you can still use blends.
here is a short gif of it running in godot, if you end up trying to use it and have questions let me know and I can try to help or provide some of the source data I used to provide inspiration, but also I havent worked with jigglebones in ~6 months so I’m a little rusty.
Untitled

6 Likes

wiggle

Hey thanks, I’ve been tooling around with a similar system for a few days. More to be done

7 Likes

walk
Early base pawn redesign with walk animation

Hey hey.

Let’s talk customization, and how we reached the above. To set expectations, visually the game was never aiming to be realistic. We’re already limiting face count to allow so many pawns to be active at once, and at the proposed sizes later (see weight table drawing above), that count will only increase.

And while bodily proportions will be… as close to realistic as they can be, any textures applied to the body mesh, buildings, and the environment will be vector-illustrated in style. As the mesh expands, we want methods to deal with artifacts/ stretched pixels appearing before they’re too apparent, and a vector art style diminshes this effect; this informed how the eyes were designed.

Let’s go over some features I’ve implemented, and others proposed for the future. Right now this version of the pawn exists in a separate project for organization, but I’m hoping to transfer them to the main project soon.

eyes

Eyes track a point of interest we can set in the environment. This includes their destination when working, other pawns, or you.

looking

When it comes to importing your own custom character meshes and textures at its earliest stage, it’ll likely be a case of substitution; renaming your files to match mine. In the case of eyes, you’ll need a base texture for the eye, a texture for the iris and its pupil, and a mask. Readmes will be available explaining everything. In a more developed state, everything will be doable inside the game itself.

arms
blend trees, so cool

It’s emphasised here to be obvious, but one thing I wanted to address was minimising clipping. That’s usually when an animation has parts of the body overlap and the arms pass through the thighs while walking for example. In the above clip, I can set a value to raise the pawn’s arms as they gain. I’m not sure if it’ll be necessary yet, as I only have this first stage keyed, but the hip bones are gradually widening at a lesser rate too.

The aim when transitioning to each stage will be to make it as seamless as possible. When it comes to texturing, I’m anticipating a single high quality image across all meshes should suffice. As I key, I’m ensuring all parts of the mesh remain relatively in the position where you’d expect them to be, to avoid any potential misalignments should a custom texture be used.

walk2

There’s the potential for other features, including;

  • male deformation mesh (very likely, once this one is complete)
  • extraneous bones (for things like hair/ accessories/ …other bones)
  • the head actually turns instead of just the eyes (crazy insane)

My first attempt to implement jiggle physics was through the VRM tool in blender, and it came with a suite of emote sliders I’d like to reimplement later to make pawns more expressive.

I wanted to continue more on the mesh but I’ve missed working on the game itself. I created a recipe database and will be continuing implementing a cooking system for both foods and mats. Something I’ve never mentioned before is I’m designing with VR in mind, and while I’m yet to own an Index (heck m*ta/ fb), these cooking systems will heavily involve interactions possible both from a desktop and VR perspective. So long as I keep optimisation in mind, it should be achievable.

Actual development next time. Thanks for reading o/

20 Likes

Hey hey, been a 2 months??!?!? minute.

A few things to share. Since last time I posted, migrating the pawns across to the main build went “flawlessly and without issue”.

theymadeit

I made some time to make good on the first level of customisation, meaning you can retexture the eyes of each pawn individually from the game’s directory.

dir

Next time I look into this I’ll be allowing full head replacements, and how to setup any hair to the bones I’ll be adding to the rig.

Cooking works!

When adding to the queue, the recipe book will search for available ingredients and add it to the queue. Any pawns assigned to cooking will fetch the ingredients from nearby containers and leave the finished product in the cooking station. Right-clicking on a cooking station will bring up the option to open the recipe book.

It doesn’t show here, but I’ll be adding more details per recipe for things like calorie count and time to prepare.

cooking
I’ve since fixed the debug name appearing listen there’s a lot going on in there ok

I’ve added a simple job tracker at the top of the screen, and pawns have an icon showing their current task above their head. There’s an inaccuracy you might spot in the following gif, but I’ll be looking into that after I post (icon changes to hauling for some reason).

tracker

Constructing needed some QoL, so I added a progress tracker.

construct

You might also notice pawns turn their head and eyes turn independently from their body when arriving at their task. Was not easy.

Current thoughts on the project, I want people to start being able to play soon but I want an overarching goal for them to complete first (it is a game after all). I have an idea what that is, but this is also bearing in mind that I haven’t started on the next weight stage yet which that might require.

That’s it for now, I’ll leave you with a certified quaternion moment. Thanks for reading.

flip

26 Likes

Really nice progress !
That’s not a easy project you’re doing, but the one i’m the most excited for.

3 Likes

@Heroyne Thank you! And that’s very sweet of you to say, I hope to deliver <3

Not a big update, but bluesky doesn’t have gif posting yet, and I’m equally a nerd as I am excited for this particular bit of progress, and wanted to share.

almost

Next time I post I’ll go into more details along with another major feature I’ve added to assist with building, once belt logic is in more of a complete state.

12 Likes

Holy shit this looks absolutely fire. Remember to stay hydrated:)

2 Likes

@Royalfluff I will, and thank you!

hi

hi

So since the last post I’ve been working on belts. I love playing Satisfactory, and while this would never be anything to the same level as that, I’m happy with my implementation of it. Was a cool challenge to tackle and today I finalised the last few issues stopping me from posting.

Belts have a few features;

  • Can pull resources from certain buildings to place them as an item on the belt (in the above case molten ore from the forge).
  • When placing another building to complete the chain, resources will automatically begin to travel and be added to its storage for processing (in this case what I’m tentatively calling an anvil).
  • Resources will stagger “realistically”, as if the first object can’t move on thus halting the belt and any objects on it.
  • It’s not a feature but just getting the pathing to work was a mathematical nightmare and I want to emphasise that (corners smdh)

bye

Of course you can build them, but you can also destroy them, with a wiggle animation to indicate the entire chain being destroyed. I’m currently working on a method to extract any resources that were on the belt at the time of destruction, and place them in a temporary stockpile for hauling.

buildin
building in action :open_mouth:

One thing I wanted to happen when it came to building, was to allow freedom in where items/ buildings can be placed, but because of the modular and static nature of the belts, we’ll need a way to help align buildings they’re connecting to. Which is why I added a snap grid to help with that.

snappin

The grid will help with building a factory layout, but you can still place any decorations or standalone buildings freely without it.

I mentioned it at the start, but forges have a simple UI to display the current item being, well, forged, and the queue below that. All items that can be put in the forge have an associated melting point that affects how long it’ll take to cook, and if there’s a belt attached, will send it on its way. The anvil (wip) is the workstation for the new smithing job, and I’m anticipating having at least 3 belt chains per anvil feeding resources for the pawn working there.

The way I’m thinking how material advancement will work in the case of furthering research, and allowing more complex machinery to be built, is building various substations along the belt to affect the outcome by the time it reaches the anvil. Think of it not unlike casting the molten ore into shape, to then be finalised by the smithy at the end. This will have applications later if say we were to replace the ore with food and nutrtional value.

Long post, thanks for reading. Sorry if it wasn’t anything much else, the logic involved was fairly complex and was nothing I’d ever done before. There’s still some things to close out such as resources being dropped like I said and fringe cases with connections when snapping belts, but hopefully I can move on to other systems I have in mind, potentially leading up to an EA release.

wigglin

12 Likes