Updates!
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:https://drive.google.com/file/d/1fYKWFLz75BzhfsJ6AOCw9XHX7Fw9uwgH/view?usp=shari...
Files
Get Rubble
Rubble
A destructible environment platforming experience
Status | Prototype |
Author | Brawph |
Genre | Platformer, Shooter |
Tags | 3D Platformer, Destruction, Puzzle-Platformer, Short |
Leave a comment
Log in with itch.io to leave a comment.