Devlog Mechanical Turk
Game base idea
First day of jam was dedicated to finding an idea around the theme : Ecosystem
My process is really simple, i write a bunch of word that come to my mind around the theme and try to build an idea around the concepts.
My list of word was : "Loop, Stability, Ecology, Nature, Balance, Waste Management, Recycle, Water Cycle, Enclosed"
Brainstorming around those word finally gave me a generic idea:
Managing a spaceship vitals to maintain life inside it. Idea was to manage the main vitals : Food, Oxygen and Cleanness.
If you played the game already, the final results was .... not exactly that.
Around this main idea i started to build a gameplay loop trying to combine the amount of time i can spend on that project and experiment with tools and concept i like.
So i decided to make a 3D game and for the artstyle i wanted to play around with BlockBench.
I also choose to have a robot to avoid making organic creature, in my experience it always endup with a very long time modelling and animating your character or trying to fit your gameplay on premade character assets.
With the main direction and other constraints i come up with the final idea:
You're hired as a remote handyman controlling a little robot in that distant spaceship, you have to perfom tasks to maintain ship vitals and ensure the crew stay alive.
Early one i wanted to have a little mystery around the ship since you'll never see anyone else that other robots (still don't want to create living creatures !)
First prototpye
The next step was to have a basic game loop around my concept. Just a little cube controlled in thrid person and small element on floor that can be clean when passing on it.
Also played a bit with Physics objects around (RigidBody) and trying to move them around. I soon realised that collision between my robot and rigidbody was a bit unpredictable but said to myself i'll fix that later (big mistake !)
With that little prototype done on day 2, i think it was time to start playing with BlockBench
BlockBench
Blockbench is a software mainly used for creating custom assets for Minecraft. I recently so a bunch of timelapse of people using it to create cool pixel art style 3d model (for example this tree and this pokeball)
I've been using Crocotile3D for previous projects and wanted to see if BlockBench could offer good alternative and if the way you paint could be better.
Before the jam i played around with it to make a little lighthouse :
I like the way it looked but was not really usable in a game project, the shapes and structure of the model was really messy, for the jam i tried to have a more logical process to keep things cleans.
After spending a few hours on making my little robot i was pretty happy with the results but pixel densisty was not consistent due to some resizing i've done on the main parts. So the next day i tried to fix that.... that's when the problem happened...
I saw that by generating new texture in blockbench was taking the previous pixel i painted to the new texture, so i abused that to find the right pixel density... at some point i pressed save and ... a blank texture erased my painting work.
I made a few other tries with BlockBench but i was not really confortable with it and a few days had passed and i did not make any progress so it was time to come back to a tool that i'm more confortable with : Crocotile3D
My conclusion on BlockBench:
Pros:
- I like the way you paint pixel in 3D it feel really natural
- The automated UV Wrapping feature are straighforward and easy to use
Cons:
- I was not able to find a proper workflow to modelize complex shape, for that part i feel more confortable using Crocotile
- UV automated is great but not always give the expected results and when you start making manual change i feel like you loose the simplicity of autogenerated things to overly complicated manipulation. (I'm now really impressed by the guy making the floating island stuff)
Godot 4 Physics
After switching back to crocotile i made a bunch of model to have and environnement quickly and get back to the actual game
I wanted to have the ability to move thing around and started creating a ForkLift mechanic. Your robot will be equipped with a forklift and you can pick up any rigidbody around the ship to move it somewhere else.
My day 2 simple prototype was doing it but i noticed a bunch of unpredicted behavior with RigidBody in Godot.
- Simply pushing object by running into them was not consistent, at first the object were not moving at all. By playing with weight and friction, i managed to have it kind of working but it did not feel natural. I was pretty sure that i was able to do that in Godot 3 so i started looking around and found that. Everything was about putting the right layers. I had it working pretty fast after that and thought is was done (spoiler : it was not !)
- Depending on the type of shape physics was not the same at all. As i was playing with robot i only work with basic collision shape (cube, sphere and cylinder) .
- And the main issue : Physic was unpredictable ! My small prototype was ok but as soon as it got bigger (more items ...) things got out of hand. Rigidbody were sundennly flying into space, my robot would get stuck inside them and sometimes both will end ud with my little robot flying into space.
My conclusion is that in the current state Godot 4 Physics is not really a simple tool to make physic based game.
Most of the issues are reference into that issue
Since i was only working a few hours a day, testing this and trying to have a working game took me a good chunk of the game jam.
My solution was to remove all rigidbody and used scripts controlled object, the physics was less simpler (basically only gravity is applied)
Finishing a Game
As always my goal in game jam is having something playable at the end, not matter how short it is. So i decided to change the scope of the project to have something done. During my prototyping i had the idea of a little story with you doing a bunch of non sense tasks until you were asked to do something you don't want to do and offer a choice for the player to refuse it and sabotage everything.
I focus on that and made most of the game in 2 days. For the rest of the jam i was on and off fixing bugs and adding a bit of content here and there.
I had a bunch of mechanics around the plants where they would grow when you are not looking at them and a fertilizer bag that you had to bring from the storage to replant. But sadly this was not ready for the deadline and i had to make a shortuct in the story to skip that part.
Conclusion
When submitting i was happy with the result as it is a short but finishable game. The scope drifted too much from the original idea to fit well with the theme.
I was able to play around with some feature in Godot that could be usefull for future project:
- Physics is working but as a lot of issue a the moment that require a bunch of manual work. I have a better understanding of this and may try to contribute to Godot to make some fixes.
- I really like the visual of my game overall, the CRT Shader (inspired by this and this) is a good fit with pixel 3d visuals.
- Godot 4 export to web is now working well, just had to replace my decals with Sprite3D
- Made a lot of test around Group, i tend to avoid them in my other projects but i found them usefull to notify a bunch of object (Make quest marker appear on all related items for example)
Overall it was fun to make that game, i think next jam i'll try to find a gameloop before doing any graphics experiment just to secure a cool gameplay.
Thank you for reading and playing the game !
Leave a comment
Log in with itch.io to leave a comment.