Hey - thanks for asking! This is a pretty old project and I'm not sure what I was thinking, you're totally right. I'll update the project shortly.
Recent community posts
Thanks for playing! I realized towards the end that the only part of our game that didn't use the mouse was moving around the grid, so I added the context buttons pretty late in dev (and shortcuts to the dice rolls, so someone could potentially play exclusively keyboard or exclusively mouse). the game works great on phones now, which is a huge plus.
This is a lot of fun! I've been chewing on arcade game with combat taking place in polar coordinates like this (melee though). playing this, it was a lot of fun to see some of those concepts imagined in a different way. Excited to see future updates!
Thanks for playing! I'm not sure what bug you hit there, but the first floor should be identical for every playthrough (the monsters you slay determine the seed for the next floor), so I suspect (and some light testing confirms) that you should be able to consistently kill that first sword-holder every time. I wonder if some deeper bug is rearing its head here :(
it has been a while. moved beholdin' to fb for a while as mack and i sorted out leaderboard stuff & auth etc. with gdpr and general antipathy towards FB, i moved to GameSparks' basic Auth and here we are, back at itch! yay!
This build rotates between 2 map archetypes during the week. I'm currently shoring up some bugs, resisting scope creep and... ok mostly bugs this milestone. I'm hoping to attain public beta / early access within a few months.
Let me know what you dig and what stinks if you take it for a spin.
Called the latest Build v4, but its really an incremental upgrade, so I'll revert to a minor numbering scheme for these from here on out.
- art asset changes
- you can see the explored Map with 'm' key
- fix for Mack's door hack
AM - Planning v3
PM - break
AM - started Floor Gen
PM - Floor gen alpha working. need some test assets.
took some days off there for an internal Gamejam at Work.
AM - Floor gen tests with new assets. cleaned up a bunch of edge cases. unity crashed and lost my scene changes, so rebuilt some prefabs. c’est la vie.
PM - weighted pool of rooms.
AM - varying pool depending on task
PM - more fixes to the generator with higher numbers & edgecases
AM - Main Path + Branches. Coloring for debug.
PM - Seed-driven generation. fixing up methods from ‘quick and dirty’ code to ‘actually usable’. Keeping track of door and room objects for later use (determining enemy spawn strength, spawning bonuses, critical path, tunnels? etc).
AM - woah WFH Friday and long weekend means big gap. cleaned up some allocs and an infinite loops. verified metadata is 100%
PM - broke room generator into standalone class (not Monobehaviour). Started architecting production-ready implementation. Started Building out Floor.cs.
AM- basic tool for converting PolygonCollider2Ds into Meshes. Should be able to build some basic wall pieces with them and start constructing proper rooms. Had an idea for doors + locks!
PM - started making a real room! finished it actually. lots of work, might make a tool or two.
AM - Did 4 more rooms! the system works. could use automated process for collecting doors, making bounds poly, and setting the directory. at least need to prevent unwilling overwrites.
PM - safety for overwrites, mroe rooms
AM - so close! got 1 more mesh to make on the last room. gif tonight I think.
AM - Hookups
PM - Hookups
AM - Hookups
PM - Hookups
AM - hook ups
PM - I took a week off in there to do some other work, but im back at it as of August 21. Spent the last few days slowly hooking the systems of the game up to the generator. its close! Added OnBumpPlayer to the collision handler, altered my WorldEntity class to trigger a callback on state switch. its fun to make this thing.
AM - player gets sucked into rooms now. need to unlock doors based on remaining enemies rather than crystals. should non-enemy rooms pull the player in? need lots of vis work soon.
PM - Cleanup. doors pull you through, rooms unlock from enemy deaths, score resets properly.
AM - some tests, some cleanup. seed generated based on days since my birth, forcing daily challenge. flow complete. v3 close to being done? Secret Doors separated from critical doors.
AM - plan and re-evaluate. Removed health, expanded UI. Reset Multiplier On Hit.
PM - removed some sprite flashes. mesh generator can flip on the x axis, use vert and horizontal gradients.
Spent the last two weeks getting my leaderboard service running. learned new things. just today getting it all hooked together and running. Need to get it posting your score to the backend (should be easy). fixed a render issue with my UI canvas. need to build meshes for the crystals. future plans for perspective camera, giving the game some depth might give the basic mesh visuals a bit more complexity, be interesting to look at. Excited tohit the finish line with this build.
Final UI (name entry) and a couple of playtests. got backend service up to date this past weekend. making a build!
v3 - Map Generation and Back End
v3 wasn't supposed to be so manyt hings, but the nature of the time I had to work on the game meant that when the originally planned v3 was complete (map generation), I was already halfway through the back end work. Normally I would have stuck to the plan, but for the sake of closed-doors testing, I just went with the bigger release.
Map generation - I generate a new floor every day. each floor is just a set of rooms slammed together with some restrictions. Mostly the game tries to make a primary path, then branch off it a few times. The Map generation goes as far as to determine which enemies spawn in which crystals, so everyone is playing the exact same map + contents every day.
Back End - I don't do this much (at all), so it was a learning experience. basically the game uses server time so you can't fake a different day to play a different map (easily). The current build of the game requires internet, so I'm probably just going to be making WebGL builds from here on out. The leaderboard service makes a new leaderboard every day. I assume there is some work to be done securing it, and making the game work with slower connections, but baby steps.
AM - revert camera hack and build skeleton camera controller. debug code for starting game from any scene. Fix for shard pooling.
PM - camera fits a proper scaled 16:9 frame visible at all times, during screen resizes a runtime too. gives me a safe zone to work within
AM - Camera Bounds & slime adjustments.
PM - SlimeRenderTexture changes and fixes (for multiple resolutions at runtime)
July 13th - WFH (no dev) July 14th - WFH (no dev)
AM - finalizing new player asset & hookups. Death State and a Health fix for the player.
PM - UI work to show you when crystals are out of bounds
AM - Break
PM - Ripping out all my UI stuff because it is stupid and I hate it. Building WorldInterfaceController for collecting Shards. Crystals handle their own OffScreen Indicators with a Handler now. cleaner, less traversal through larger systems. everything handles itself better. potentially harder to built systems that affect all these systems as a whole, but that’s a problem for future Kyle.
AM - offscreen indicators with temp art. new bullet assets. Built vis for Drone, skeleton of Entity class.
PM - Drone states. fixed component mismatch on crystal. functionality added to thrust component.
AM -Finished off drone flight pattern. Started building class for the Mine. Will need bullets I guess?
PM - watched TV
AM - basic Factory for IPoolables. not ideal for all situations, but most. Work on the mine.
PM - New Bullet.
PM - some dev time. got drones dropping mines, mines shooting bullets.
AM - Drones and Mines 100%. Starting writing code to generate Spawnable Enemy Lists.
PM - finished up Enemy Spawn placeholder code. non-deterministic score value needs to be fixed. v3 Planning.
v2 - Camera Feel and Entity Work
Minor user facing changes this version. Most notable are probably some of the new assets + the new enemy, which actually consists of 2 entities and a a new bullet type. The Drone Enemy flies in your general direction for a bit, dropping mines as he goes. you can kill it while it reboots after hitting a wall or timing out, and killing it will explode all of it’s mines. Mines explode by firing bullets outwards.
Other than new ‘content’ I’ve cleaned up my little Entity-Handler subsystem inside Unity. it is effectively a set of architectural limitations around States, Entities, and Handlers, and serves to circumvent using Unity’s more verbose system, which would be Scripts, GameObjects and Components. I’ve basically built little world inside of Unity where non-physical entities(score controllers, camera’s, etc) can subscribe to Unity’s architecture like usual, but anything that exists as an entity in the world of beholdin’ directly (Players, Enemies, Bullets, etc) all use this system I’ve put in place. We shall see how that goes.
Enjoy this release, maybe. v3 is looking to be procedural generation of the world! so probably a longer dev time before I upload the next build. Upshot: more time to make new art assets & rejig existing ones.
For the sake of posterity, adding the progress blurbs I wrote for the development of this portion of the game. These posts are as much for me as anyone (even more so here in v1 with only 3 people accessing the game). Sometimes someone may see something here that might encourage discussion. Also I can keep track of my thinks, which I need to get in the habit of doing. Eventually I will be writing proper dev logs probably, some of which may be linked in progress posts like these.
I write these progress blurbs at the end of my commute each day. They are broken down as such. I started doing progress blurbs after writing some basic boilerplate fora top down game and building the first version of the Beholder. As with all things, I missed a bunch of days.
AM - started EnemyManager, Spawnpoint class. Color changes to the Beholder. Scene setup for single-screen prototype.
PM - Started Building enemy, got distracted making the SDF shader effect.
AM - Got Spawnpoint receiving damage, dying and spawning an enemy. Enemy Vis. Built Handlers
PM - rolled out base handler. flash on damage. tweaked main player colors. made weapon hide when not in use.
AM - Enemies get hurt and die. WorldEntity Base Class built. Need think about pooling (interfaces?)
PM- Enemies converted to worldentity. handlers and state machine work.
AM - Spawn Points spawn multiple enemies. enemies scaled down, basic ‘flocking’.
PM - added callbacks to Thrust Handler. Started building formal PlayerEntity. Enemies ’hurt’ the player now, but only if their cast hits them… how expensive are overlaps i wonder. easier for player to drive. gotta think about it.
AM - Player-driven overlaps. player pings entity's CollisionHandler, entity takes it from there. Quick Profile to make sure nothing crazy is happening. Spawns respawn when all enemies dead. need a timer class.
PM - rename Spawns to Crystals. State out the Entities. got a lot of visual thinking to do re crystals and their visual states
AM - Started breaking out the visual states of the Crystal Objects. some small visual util Scripts built.
PM - Crystal states fairly solid. each spawns 8 baddies now. Need UI.
AM - HUD and scoring
PM - high score functionality.
AM - missed a couple of entries here: updated timer class to include an update action, allows for controlled lerps. Got the HUD objects animating on kill. built UI manager.
PM - pooling stuff. interface just enforces naming. Planned for Home Stretch.
AM - game over and title screen hook ups. controller fixes.
PM - camera hack for FPPP and builds!