Rubble has a new update that adds a new firing mechanic (rebuilding!) as well as new levels, and updated / changed puzzles in some existing levels!

For those interested in the process of coming back to this project after a hiatus, I've included some notes for the first week back below, followed by a link to the remaining weeks (due to Itch.io's Devlog post size limits!)

Rubble Dev Process / Notes First Week Back

Started work on reevaluating Rubble

Immediate issues getting the game to run

Files missing from menu system, breaking options and keybinds, etc.

Added files from base menu system, but lost keybindings due to this

Eventually found another version of Rubble which had this intact, copied that version of menu over, fixing issues

Game still has struggles with opening level 2 due to a missing function

Cannot edit anything due to right click and dropdown menus not working in this version of Unreal, despite working in others

Found that this is a common Windows 10 problem which got fixed later, but not retroactively

Found a workaround with using high contrast settings in Windows

Did full playthrough of the game via online version (which still gets downloads on Itch.io)

Found bugs in this version, skipping multiple levels and starting half-way through final level

Copied the game into 4.14, fixing the right click issues... no discernible problems so far with transfer, though I had expected some with the menu system being the wrong version

Fixed bugs in levels mentioned

Found that with added power to each bullet shot, responsiveness issues were much less pronounced than I remember, giving hope for fixing that issue entirely

Considering adding damage/death mechanic back into rolling obstacle on Rube Goldberg level

To eliminate possible problems, moved the damage application from the object to the bullet, having it apply the damage rather than having the objects apply it to themselves when hit

While this may amount to the same thing in most cases (since they were already casting to the bullet), I think it should eliminate issues where they might've cast to the object after it deleted itself, losing that data and not registering the hit in some cases

In considering the damage elements, decided it might be worthwhile to add damage ranges. Since damage is on the bullet now, it would make sense to have more objects have similar damage resistance and then let the player scale their damage manually

This would manifest as a controllable "power" value that allows for larger or smaller destruction to objects

Added a variable-based system inside the bullets to not only work off a power variable, but to save it when fired so that if the player fires a shot and changes power mid air, the bullet will keep the power it had when fired.

Added a system for using the mouse wheel to adjust the power value, intending to use the axis to change damage both up and down

Ran into issues with the negative axis not registering due to how things were set up

Also found the mouse wheel's axis only ranges from 0-1 in the positive anyway, just showing if it's on or not, rather than showing actual scroll speed

As such, I've just changed Increase Damage and Decrease Damage to be on two rebindable buttons and made the system just take each press of those buttons to be a change in power

At the moment both buttons are bound to mouse wheel, one up and one down

Finished converting all wall types to ignore self damage, instead only taking damage from bullets when hit

This makes some numbers on the damage scale not break blocks at all, will have to tweak later

Added floor and ceiling values to the power range of bullets so if power is set to max it isn't going to break the physics system by having all 1000 pieces explode from the wall at once

Finished updating all materials to have the same damage resistance, currently set to 50 [later lowered to 25]

Fixed an issue with the menu not loading Goldberg level properly if clicked from level select (due to inconsistent level naming)

Started rebuilding lighting for Give and Take level, in files listed as Aleven

Plan to repackage and upload this as a new build to Itch.io with the updates (though may need to add a shot-power UI element first, and increase power interval from 5 to 10 to make scrolling through them easier)

Could implement power level saving as a global variable to keep it consistent between levels

Going through the levels in more detail, I've started relearning how the World system works

Decided the world and streaming process seems like a half finished demolition

For unknown reasons (probably loading times) almost every level uses the Open command instead of Streaming

The only exceptions to this are the levels which were deemed too large for this process, which were part of the reason for originally using this process, leading to "overflow" levels

I seem to have eliminated all the use for those levels though, since I cannot stream in an overflow level in an "open"ed level, only streamed ones (unless those levels are child levels of the level, which they no longer appear to be(though I vaguely recall they were at one point))

Deleted all overflow levels

Tested streaming commands on the few that still use it to reset

Too slow, since World is no longer always loaded / in memory, so the game has to first open world (containing all levels) before streaming that level out and back in (after this future resets are faster, but only for that level)

Deleted world, hopefully will make the game smaller to not have a level that contains every other level (even if only via streaming them into it / working as a docking bay)

Changed main menu and in game menu to function independent of world, no longer routing through it

This has at least significantly sped up transfer speed to move to main menu from levels

Found that in deleting World, also lost some elements contained within world being used in levels, like the compactor death trigger, no idea why this was in world anyway though

Dug out older version of Rubble, pulled death trigger from World, copied into new version of rubble inside CompactOrRun level, updated code to open level rather than stream it

Found an issue in ShapeRoom that has probably made this level impossible to complete for as long as it's existed -- blocks grouping on top of each other and all stacking on one location

Tried a few different solutions related to grouping blocks to stop this from happening, to no avail

Finally created a system on startup that finds all possible destructible blocks, saves their location and deletes them, then a secondary system that spawns a block at each saved transform location -- the array holding this will have around 500 entries

This system seems to fix the level-loading issues where things stack up!

Need to redo lights on level 9-1, SawOrSee, seem to recall these being in separate lighting build overflow level, though also did that for pitfall and pitfall no longer had an overflow at time of conversion

Going through level by level, adding more highlight hex panels to act as guides to the player, giving a more effective means of showing where to go

Fixed and lighting in Goldberg level, as well as in CompactOrRun

Working on lighting for seeorsaw, finding issues with lighting as well as destructible block using indestructible mesh for some reason (missing assets?)

Fixed unbreakable block issue by making new block, substituted in, will have to see if issues present themselves later in playtesting with more asset overlap

Finding issues with first see-saw balancing, seems to jitter when idle

Removed fulcrum beneath, since it's not required due to positional locks

Found out the reason for the fulcrum, to allow level to bounce back into original position

After referring to earlier build, light seems to be handled with a skylight (which is present in both builds) current level doesn't seem to have skylight working

Copied exact fulcrum / level / block system with identical positioning to new build, still results in jittering, must be a version difference with how collisions are handled?

Changed elements of the level geometry to eliminate BSPs and change all of the roof segments to be the same static mesh type, allowing for disabling of 'cast shadows' as well as the addition of a directional light to light the level

Somehow skylights just refuse to work here

Removed a material that was being used for just this level, changed it to the guide hex material instead, allowing me to delete that material entirely, should lower game size

Started going over asset materials used, to see what could be removed to save space

Many materials seem to just be used once or twice, and could be changed with something more common

Fixed fulcrum issues with lots of tweaks and size adjustments, think it might be wall related

Decided the lighting solution I swapped to was more trouble than it was worth, will either use skylight or point lights if that fails after a lighting build

Changed all blocks in that level to a different type of rubble block and deleted NHSRubble since I never really knew what No Hard Sleeping meant, and it doesn't seem to have affected anything to have it off

Mostly I think I had used so many block types because they each had different damage thresholds -- this was more important before players were allowed to manually tweak their shot power, since they can do that, the damage thresholds are now unified and the only reason for multiple block types is variance in Tunneling vs. Rubble and difference of Voronai Cell count (number of pieces they break into)

Will set up UI for shot power and continue with level optimizations and HexGuide additions, starting from the second half of SawOrSee (stupid name, should really fix that--maybe just "Fulcrum"?) assuming lighting issues do not persist

Lighting issues persisted, scrapped skylight again, changed all lights to point lights and started rebalancing all balance based puzzles in this level. For some reason they no longer work, could be new version bugs, could be blocks breaking into pieces that are now too small.

Finished hexguide optimization pass on all levels, providing a clearer guideline for end goal at nearly all times

Testing 4.13 to see if issues in seesaw level persist there too (since lighting is fine there with a skylight) may make more sense to just apply all changes this week to 4.13 instead if other systems work better

Somewhat disappointingly, 4.13 versions work perfectly, making me want to scrap all changes to 4.14 version and start over with redoing 4.13

Rather than swap builds to fix the issue, decided to copy across all elements of the room in the 4.13 build and change the destructible mesh of the block to match exactly

Found a way to fix skylight lighting, despite settings being identical -- must be an engine difference with how it handles some settings

Deleting unnecessary additional lights

Adding the rebuild starting function from ShapeRoom to all levels in order to combat an apparently common bug when opening levels where blocks simply stack

Added PowerHUD for shot power

Created underlying system for saving shotpower as a global variable (allowing it to transition between levels at the same value) and replaced bullet damage with shot power

Changed bullet damage system to only update the new UI when shot power is changed , rather than having the UI update constantly listening for shot power

Found issues with teleport function in Shape Room, won't teleport ball or cube, only player

Fixed, trigger was finding bounding box, not object itself

Rubble Dev Process / Notes Later Weeks:



Rubble 275 MB
12 days ago

Get Rubble

Leave a comment

Log in with your itch.io account to leave a comment.