Welcome to the second ARTIFICIAL devlog! I was hoping I would be able to release these every week but It seems I'm going to adapt a more manageable bi-weekly format. Otherwise I would bore you by talking about uninteresting parts of the development process. So let's get into it!
Final game is going to contain numerous cut-scenes. At one point player will be thrown into deep abyss by a huge mechanical monster. I handled visuals and animation, but working with audio is not really my strong suit. Fortunately I happen to be working with two skilled freelancers. Devel Sullivan takes care of all ambient music of ARTIFICIAL and Vlad Drahan helps me out with most of the SFX. We managed to put together this scene and I'm really happy how it turned out!
Sometimes unpredictable life events can get in the way of development. One of these days I woke up motivated for work, thinking how much stuff I'm going to get done... then I found out about clogged pipe in the garden. I kinda ended up playing real life minecraft for the rest of the day.
Conveyor belts can be found in almost every level. They can carry various objects, they can be turned on and off again, but mainly - they are important part of various puzzles and level design in general.
I never thought that there can be so many issues one can run into with such a simple mechanic.
The most common issue being objects bumping into the wall openings and then getting stuck. This usually ended up in a huge pile of objects wiggling around. I realized that instead of just pushing objects in the direction of the belt, I also have to write a small piece of code to keep the objects centered. This solved most of the "bumping" issues and objects started to happily ride on the conveyor belt.
Conveyors can also affect the player. It's great fun, but player's body is not really a physical object (from the code perspective) so a small bug appeared where player could be pushed into walls from time to time and get stuck. I've managed to solve this by projecting a capsule into player's new location (each frame before moving them by conveyor) and checking it for any collisions. If collisions occurred, it meant that player would be teleported inside a wall or some other object.
I also realized that conveyor belts are pretty long and sound which they make cannot really be emitted from a single point in space. I had to write a small script which compares position of the player relatively to the conveyor belt, and moves the sound emission point to the part of the conveyor belt closest to the player. This way the sound feels like it is always coming from the conveyor and not some static point in the room.
I've already managed to introduce Devel Sullivan up above - he is the guy who stands behind all ARTIFICIAL's music. We currently have multiple finished tracks so we figured that we could show you a little sneak peek.
One of the things which take up most of the time is getting back to old levels and improving them both visually and gameplay-wise. For me, working on ARTIFICIAL is a huge learning process. Most of the time, new levels end up looking far better, than the older ones. It's definitely not a bad thing, but it creates a huge visual inconsistency. That's why I have to revisit old environments from time to time and make sure that I'm still happy with how they look and how they play. Below, you can see small example of how one of the environments changed over time.
ARTIFICIAL is mostly a one person Indie game and that's why I'm often relying on opinions of people from my Discord community. Feel free to join in if you would like to help out, or just see more screenshots and videos from development!