Hey Folks! Adding a few more finishing touches to the renderer today, as I remembered the space prototype has objects that get rotated, animated, and have transparency.
So far, everything I've been testing was set to zero rotation, not animated, and opaque. So some of the calculations I was using start to break when things don't fit that bill. Fortunately, these are fairly standard problems and there's a lot of info out there on how to solve them.
Hey Folks! The line of sight and lighting test seems to still be going well. I've got it rendering multiple lights now!
There was one more bug to solve in the single line of sight/light code I've been working on, and that was to get the line of sight to behave when there weren't enough light blockers nearby. By doing that, I was able to get the light to produce nice round shapes regardless of the surroundings.
Hey Folks! A bit more progress today, as you can see from the image. I got a slightly better wall visibility trick working, and I'm working on limiting vision/light range.
Yesterday's trick to get walls visible was a bit hacky, and I wasn't thrilled with it. I basically just extended the vision rays outward a bit so they revealed chunks of the walls that stopped them. However, it revealed walls in weird slanting angles, and it was a bit distracting when they moved around. Interesting to look at, but for the wrong reasons.
Edit: I spent another 10 or so minutes after posting this today, and managed to get a wall reveal/penetration thing working! The image has been updated accordingly.
Hey Folks! Getting a bit closer now with the new rendering code. As you can see in today's screenshot, the line of sight mesh is now rendering appropriate texture colors for the exposed floor, as well as a simple lighting component based on the floor's normal maps.
Hey Folks! Hope everyone had a good weekend, and Turkey Day if you celebrate that. We were fortunate enough to have friends invite us to their parents' house for dinner, which recharged our social/family stats, so to speak.
The time away also seems to have helped refresh the old brain. I think I'm starting to get somewhere with Unity's rendering pipeline, and a better understanding of it.
Hey Folks! Nothing pretty to show off today, unfortunately. Still wading through the Unity rendering system and trying to get acclimated.
So far, I've been able to get the scene's color information to write to a render texture. That part was pretty trivial. And you can see it covering most of the screen in today's screenshot. However, what I'd like to do next is turning out to be a bit tricky.
Hey Folks! Making more progress on the alternate lighting engine today.
Yesterday's work got basic light rays drawn on the screen, which appeared to cast shadows on random blocks placed around the scene. Not a bad start, but one of the next things I wanted to check was whether this actually scaled up to many lights/shadow casters or not.
Hey Folks! Finished some features today, and had a cool micro story to share as a result.
In today's gif, we see Ian docking his salvage pod to a derelict. He starts in his airlock, and crosses the gangway into the darkened derelict. We can see discarded EVA suits, scrap, and loose items on the ground. Then, using his drill to cannibalize some conduits from elsewhere on the derelict, he installs them in the mainline from the reactor to restore power to some lights and sensors.
Hey Folks! Finally got the wall salvage interactions done, and made a few bug fixes before starting work on a missing room feature.
I figured out that placement bug from yesterday. It turns out that the loot generated by salvaging starts at tile 0,0, floating in space (i.e. not part of a ship), and as the game tries to place loot on existing stacks, it picked up those floating pieces and stacked there. I just changed the code to ignore pieces that were not part of a ship when placing loot, and it behaved correctly.
Hey Folks! Work continues on item stacking, and expanding various loot systems to use it.
The big change today is getting mode switching to support lists of new items instead of a single new item. E.g. having a wall convert into a damaged wall plus a list of scrap parts when it receives a "damaged" interaction, whereas before it could only change from "wall" to "damaged wall."
Hey Folks! Almost there with the stacking feature. I've actually got loot spawning into an area and stacking correctly, it seems. And now we're down to edge cases and other ways loot appears in the game.
Hey Folks! Hope everyone had a good weekend. It was pretty much wall-to-wall for us, between household maintenance and a trip to the zoo with the little one. Hardly feels like we relaxed at all!
And in keeping with that momentum, I decided to tackle stacking items today :)
I'm pretty sure I'm going to need stacking at some point, so I dug into the code. And as predicted, it's pretty hairy. There's a lot of record-keeping and juggling of references, hiding and revealing of objects, and a lot of conditional placement.
Hey Folks! Took a bit of an art and research break today, focusing on adding components and scrap to the game.
Now that we're starting to use tools to break down ships, and ships can receive damage, I thought it made sense to add items to represent some of the smaller pieces that result from each. We have loose components that can be removed and reinstalled elsewhere (or sold), but there are some things we'll only be able to break down into smaller parts if we want to move or make use of them. E.g. ship framework and bulkheads, sections of wall, dead equipment, etc.
Hey Folks! A few new additions today, plus a bunch of clean-up, fixing, and streamlining.
First on the list was to remove orphaned placeholders when the person installing them changed their mind. Previously, ghost items would just be left wherever if the AI got interrupted, but now those ghost items are cleaned-up. I also noticed that installing items on dark ships was hard due to using a lit material, so I added code to change the item being placed to use an unlit GUI shader.
Hey Folks! After getting uninstallation working yesterday, I'm trying to add the reverse today: installing equipment.
A little over a month ago, I was able to get equipment to reinstall elsewhere on the ship by using a debug command. As long as only one crew member was selected, and the cursor was over a valid item, I could press a hotkey to re-place it elsewhere on the ship. It reused a lot of the ship editing UI stuff, and then the crew would go through the steps to retrieve the original and move it to the new place.
Hey Folks! Hope everyone had a good weekend. Typical autumn yard work and prepping the house for cold weather here. Which always puts me in the mood for virtual snow and fantasy games, so I fired-up Skyrim yesterday. Every time I play it I wish the mechanics were pushed a bit harder, with bigger game effects. Maybe some day when I have billions to invest in my own version :)
Back in reality, I started on the ability to uninstall equipment on ships. And my first test is the conduit junction.
Hey Folks! I managed to get loot spawning working today. It required a few more features to be useful, but we're one step closer to a salvage loop!
After some testing, I decided the loot spawning UI needed some additional fields. So now you can not only specify the loot to be spawned, and the radius, but also how many times to try and spawn that loot, and whether it applies to new, damaged, or derelict ships.
Hey Folks! I decided to try tackling loot spawning today. Since converting an installed part into loot for carrying would require spawning portable items anyway, that seemed like a logical stepping stone.
First, I had to figure out how to define the rules for spawning loot. It seemed like the easiest approach would be to choose the loot data to spawn, and designate an area in which to spawn its loot. And initially, I thought zones might work.