Engines NIFE Roadmap Shatterloop Game Projects
Deprecated Saepes Mundi Other Projects Blog

Game Projects

Hub Game Alpha Outline

Posted June 19, 2023 by Xhin

This may be more of an outline than a checklist -- if so, I'll stick the checklist items in that post to organize it better.

There are 16 Replies


Held Effects Checklist

  • Once an effect goes through, maintain what's being held in appearance (functionality appears to be preserved already).

  • Batch functionality, in addition to altering appearances should either empty or fill the held datapoint.

  • Make sure it works with all batch functions.

    Get this functionality working as well on (assuming it makes sense):

  • bump_mirror

  • bump_shuffle

  • bump_up

  • bump_down

  • rerel_all

    Exports/imports

  • eggs, rels and colors turn into binary and then charcode strings herein. Spaces should be something outside of ascii to reduce journal confusion.

  • you can set these values manually as well. Maybe by saving to the journal eventually.

  • you can export them all as a hub item, which is a tapestry-cat with type:relseq, props accordingly. Also a custom name. However these items should be unique and not update amts unless all props match (which probably needs hub infrastructure)

  • you can also import your hub items through this menu, which searches for the appropriate tapestry type and shows some kind of preview and the name

    Final Cleanup

  • Get rid of Pouch saving, there's no saving herein at all. Might be a bit tricky given the way pouch is loaded. Alternately could just recode the bootstrap to allow this since I'm using it in exactly one place at the moment, and it's the internal bootstrap anyway.

  • Have a help link. This gives a basic synopsis of the project. Have a question mark switch button that when turned on has a little line that tells you to hover over whatever you're confused about (that's always visible like the menu) when this is on. This generates tooltips, via looking up the func attribute in tooltips.data{}, or if that doesn't work, looking up obj:func. Modularize this and stick the whole kit and kaboodle in js.gtx0.com, it'll be useful both here and with the manifold and also in the future. Ideally generate the CSS dynamically as well.

  • Clean the CSS a bit.

  • June 19, 2023
    Xhin
    Sky's the limit

    Other Tapestries

  • The manifold is basically done. But uh first thing, rename the subdomain to the_manifold.gtx0.com (as well as the hub link). Decrease the width and expand the height a bit for tapestrying, and hardcode the overall size. It needs help and also needs a means of seeing what's actually happening times-table wise. It should also default to base 10, not base 30. Some controls could probably be adjusted a bit as well. Also recoloring for sure. Also whatever the bug is that's creating black pixels.

  • All of these need Javascript loadup APIs where you just put in the starting conditions and it generates whatever it needs to generate. Probably via the same binary/charcode stuff that relseq uses so you can set individual parameters as well easily.

  • You should be able to export these as static tapestry items, which when opened in an image-y format will render them in the UI. This will do other stuff when displayed. Also should have links to their set of conditions so users that see them can use them as jump-off points. This also needs to be built with eventual base display in mind.

  • June 19, 2023
    Xhin
    Sky's the limit

    Items Checklist

    This push will get items 100% in place, outside of trading engines which require social integration anyway. The GPP will at least act as a kind of repo for this kind of thing.

  • Logging in should refresh the entire page.

  • The Fabricator max length should be 50 on the input -- it's already like that server-side so.

  • You shouldn't be able to interact with items in any capacity if you're not logged in, so create a common items endpoint that checks that first and if false, exits entirely. Which probably means passing through that endpoint rather than the direct function.

    Dropped Items

  • Have a button that changes the item viewing mode to a drop mode.

  • Dropping an item decrements it from your inventory and passes through the api to change its location to your current room.

  • DO NOT allow you to drop items to the memorial.

  • Make sure it respects the "amt" variable in the item list for the room. And also for you. Like especially if that item already exists and is an exact clone, just update the amt.

  • When you enter a room, run an async javascript api call that looks for items in the room, and if found, allows you to pick them up. But like this should be a separate ui menu, with it only telling you how many there are (and the most recent and when), just in case players create too much.

  • When picked up, add or increment the player's inventory on both ends and change or decrement the room item field.

    Deletion

  • Create a Recycling Bin somewhere. Seems like a good target for base fixtures.

  • Placing items in here will remove them from your inventory and the database. This should only work on basic items and hub items. And game items. But definitely not medals.

    Fabricator Upgrade

  • Add a piece of content that gives instructions for creating descriptions and images with chatgpt and bing, as well as appropriate links.

  • The fabricator should allow you to set the category to whatever and also add images, and this is where the bing image links are. Also descriptions.

    GPP Integration

  • There should be a button to attach item(s) -- this runs a script on your inventory that lets you pick whatever.

  • When posted, pull the items from your inventory and attach them to the post.

  • They should be viewable on that GPP link.

  • Players can then pick them up, which updates their inventory and removes them from the post and refreshes it. Stale pages shouldn't be able to re-pick up the same item.

  • June 20, 2023
    Xhin
    Sky's the limit

    More GPP Stuff

  • I need an Overseer panel to moderate / alter GPP content. Idk how just yet.

  • The GPP needs a better layout, especially the CSS which is kinda gross.

  • You should be able to edit paths you've made.

  • Page number should be indicated somewhere on the GPP.

  • You should be able to make a soft link to another page rather than a path.

  • You should be able to reorder paths, with the default ordering being their relationship to others chronologically.

  • Parts of the GPP should be linkable via the page number -- there should be some handy script that updates your subloc accordingly. This already exists for locs, just needs subloc integration now.

  • June 20, 2023
    Xhin
    Sky's the limit

    Alpha Library

  • Download and push ~10 Gutenberg books to the server.

  • There should be js code that lets you read books one page at a time. Presumably they are in text format. This will also save your location in them.

  • You can also save custom bookmarks. Bookmarks in general are tied to the book, so come back when you get that particular book again.

  • The alpha librarian will let you check out up to 3 books at a time and otherwise swap them out. Books are cloned for the time being, so there's no danger of other players getting books before you can. They are still items though so you can totally just create / drop a massive quantity of some book if you want.

  • Any pouch that has it enabled will let you read books from the side menu. This isn't true for the hub game.

  • With the hub game you instead have to sit at couches and/or easy chairs, and the book will appear in the main area or in an overlay or whatever is the most comfortable for the player. A 2-column overlay with a kind of book backdrop might make the most sense, with mobile users only getting a single column.

  • June 20, 2023
    Xhin
    Sky's the limit

    2D Space

    This list is definitely just an outline -- I foresee needing checklists herein for sure.

  • I need a basic fixed-screens engine with a sidebar.

  • The sidebar should let you return to the main hub game or move back to the origin of the 2d space.

  • It needs to replace the main UI and you should be able to swap between them.

  • I need to somehow build out a 2D screen by hand without clear visual cues (other than reloading I guess).

  • Have movement/collision/interaction in place.

  • Have artifacts that describe Shatterloop, Driller, Crazy Diamonds and whatever other upcoming ascii games that are definitely happening that I want to harp on. Wild Pig Island maybe? Port in the shared content

  • Have something that describes the upcoming 2D base building platform and has images that showcase the featureset from Shatterloop. Port in the shared content.

  • Touching any part of a big ascii GTX0 will warp you back to the hub game, and this is also super close to the origin.

  • Store your room and also your location within it using the same movement-stop-checking protocols.

  • Have a portal that goes to an "infinite" 2d space based on the wilds generator that lets you pick up some kind of item. Wilds seeding should be based on the adjusted coordinate (by screen) so areas mesh. Still need generator transitions like Shatterloop though. Each room should have a portal that lets you go back to the origin but your location within the 2d space is preserved. The colors are based vaguely on shatterloop and change every few chunks, with ideally some kind of transition zone.

  • I'm thinking that base building actually happens here and maybe you literally have to dig up the landscape to get the blocks you need, so it's kinda an mmo minecraft. A lot depends on how well multiplayer works.

  • For fun, allow jumping of up to 3 solid blocks (food and drink can enhance this), similar to scout animals in shatterloop. Otherwise solids follow the collision / climbing ruleset. If you get stuck you can just warp to the origin of the 2D space.

  • Could add additional stuff ported from Shatterloop if I wanted to have additional fun with the feature.

  • Both systems need coordinates of 2 kinds, which should be indicated somewhere.

  • June 20, 2023
    Xhin
    Sky's the limit

    X0ins

  • Add a piggy bank to the welcome hall. It should have a coin icon as the interactable.

  • Change the Fabricator and Vending machine to have that icon as well.

  • Use the daily limits thing so that the piggy bank will always give you 100 X0ins but you can only do this daily. Idk what category to put this in, maybe it should be a singlet category that displays along with all categories if I get that functionality in place. This work work well also with Announce Mints, so mention that in wherever the appropriate post is.

  • Pricing should be in its own object so I can adjust values for everything / compare stuff relatively easily.

    Fabricator Use

  • Using the Fabricator costs 5 X0ins.

  • June 20, 2023
    Xhin
    Sky's the limit

    The Quantum Forest

  • Come up with a list of tree names -- could probably do a straight import from Shatterloop here with maybe some additions.

  • The Quantum Forest needs to be a reasonably small skein that has branching pathways, trails, mountains, rocks, flowers and sparse/dense treelines. Whatever works best for flavor honestly. These various areas should connect together in various ways. Could totally just import Potioneer's map/engine with some tweaks

  • All sections should have images, which are definitely gonna repeat, making it more mazelike. This is perfectly acceptable.

  • Sections should ultimately have trees pulled from that list in a layered procgen way.

  • The tree type dictates how many branches there are, the stick durability, speed and catch bonus.

  • You should be able to move up to a particular tree and take a branch, which adds it to your inventory.

    Inventory stuff

  • Inventory items should have props, which can just be straight JSON in the database for simplicity. Make sure these exist both in JS and the database and the JS loaded from the database.

  • Inventory item props should be displayable in the Item UI.

    Back to the Quantum Forest

  • Save collections of a branch to a database so users can't collect branches they (or anyone else) have already collected. Maybe limit the amount of branches you can collect in a day.

  • The seed for the quantum forest's skein changes daily.

  • If not already handled, your position in the quantum forest should be a subloc.

  • This will also kick out a player's existing subloc, so there needs to be some kind of date storage of a player's last loc/subloc, ideally in the players database.

  • This daily change also deletes all existing branch collections, so these should also have date storage presumably.

  • June 21, 2023
    Xhin
    Sky's the limit

    Fishing Rod Crafter

  • The laboratory should have a fixture that converts sticks with the appropriate set of properties to fishing rods (within that category) that maintain its properties. Try to set this up in a modular way -- doesn't need to be fully modular necessarily but needs to have that in mind.

  • Also set durability to max_durability.

  • This costs 10 X0ins.

    Angler Shop

  • Add an Angler to the Market.

  • Set the shop up in a semi-modular way (again, doesn't have to be perfect). Should allow you to exchange X0ins for Fishing Rods -- these have a random set of values and names (can't be pulled from the quantum forest). The set of them is 7 days long and rotates every day. Make sure you can see their properties before buying, ideally in some kind of table.

  • You can sell fishing rods here as well for 75% of their actual value.

  • Fishing rods you've sold are buyable for their full value -- also this should apply for all players as it's how these kinds of shops work. Idk what I need to make this work, probably just database entries. Maybe just a special type of loc/subloc on the existing items database.

    Pond stuff

  • The pond should allow you to fish, it should have a link to the Fishing Kiosk and a machine that lets you adjust fish/bait settings.

    Fishing Kiosk

  • Allow you to buy basic bait for 1 each for now.

  • Also more complex baits, which are based on fish properties pulled from the fishing game. These should also have a chance bonus attached to them. All of this should be based on their name as the seed, and there should be 10 total. Idk what the price should be for this or regular bait, just set them to 1 for now.

  • June 21, 2023
    Xhin
    Sky's the limit

    Actual Fishing

  • Give you an area to equip a Fishing Rod and a Bait, displaying properties accordingly.

  • And a button to actually fish.

  • The server should store 10 fish names, based probably on common fish.

  • 10 fish should spawn based on the name, which dictates their value, properties (which bait targets, based on those within the fishing game), and catch chance. All of which should be indicated somewhere on this screen.

  • There should be a wait before potentially catching a fish. This should be based on the rod.

  • Pick a fish randomly, or depending on the bait, weight them more -- this can stack if you target multiple properties.

  • Whether you catch it or not is based on the fish.

  • If you catch it, give you the appropriate fish item in the fish category of your inventory.

  • Either way, consume one of the bait you have selected and 1 durability off your fishing rod.

  • And then update the selects in case you run out of bait or fishing rods it'll blank out and alter the amts accordingly -- BUT it should still keep stuff selected that was selected previously (this is a bug in shatterloop, iirc)

    Fishing Rod Durability

  • Fishing rod durability should be indicated very visibly.

  • If a fishing rod reaches 0 durability, delete it completely.

  • The Angler should let you repair a fishing rod for whatever the exact cost is to craft a new one. This will at least make repair of good angler-sold rods better.

    Selling Fish

  • Allow you to sell fish at the Angler for their full value. Unlike rods, these fish aren't buyable again.

    Adjustment Machine

  • Let you adjust fish names. This will update their properties accordingly. Every adjustment takes 10 X0ins and you do not get a preview.

  • Same deal with Baits.

  • Add a note to the food/drink section about some of it allowing you to see a partial preview of the adjustment machine and a different one that changes the price on it herein.

  • These changes should be true for the entire server -- they're literally just updating the fish names in the database.

    Misc

  • There need to be 10 vaguely fantastical images for the fish, which will probably influence their naming. Players can of course change their names and resultant properties, but the images will stay the same.

  • June 21, 2023
    Xhin
    Sky's the limit

    Casino

  • Create a plinkton-algo slot machine with symbols and various matching properties. Allow you to bet some fixed amount of X0ins and earn at the correct ratios. Obviously probably gonna need its own checklist at some point.

  • Create one for blackjack, where the dealer holds at 16 or above. Should pull out of a fixed 52 card deck. Same deal with betting.

  • Have a memory matching game. You get 3 bad attempts and the grid should be set up to make it basically (but not completely) possible.

  • June 21, 2023
    Xhin
    Sky's the limit

    Alpha Base Building

  • Have storage for houses in a grid, which uid claimed them and I guess their name or w/e.

  • The village area lets you walk around this grid (which goes east and north/south from the origin so X is always positive.) anything with a house in it is filled in, anything on an edge is claimable, and anything else is blocked off by dirt/trees/whatever.

    Base building

  • Having a base gives you ~10 rooms starting out. You can set the descriptions and sidebar images however you want. Have instructions for chatgpt description making if you have writer's block.

  • Base rooms can also be linked however you want.

  • Instead of sidebar images, you can display Tapestries, which load from that API and are more interactable.

  • You can display items, which just appear as links that are clickable / viewable but can't be taken.

  • Take a few fixtures from the game and give them base formats -- they, along with the Cooking Pot can be placed in arbitrary rooms and only the owner of the base can interact with them.

    Village Square

  • The village square should, in addition to providing links to navigate the grid and exit the space, have an info fixture that lays down how the full feature works (port in the shared content) -- where you pay money for more prime locations or fixtures, can have entrances within the hub world and games, and a summary of 2D base building (the ideas of which are changing rapidly). Also the portals system connecting your base entrances together and allowing 2-way entrances into other player's base areas as well. Things like fencing to keep other players out optionally, etc. Also some kind of crops system.

  • Since they're public, base building descriptions and images should have overseer moderation. Honestly so should items and anything else that's playrr-made

  • June 21, 2023
    Xhin
    Sky's the limit

    Food/Drink

  • The Market should have a Grocery, which sells various food and drinks.

  • GTX0la requires X0ins to buy it, if not implemented already.

  • Go through all existing interactable features at this point and itemize what kinds of small upgrades can be done on them, and translate this into GTX0la (all three of which are identical) and some food items which can be put in the Grocery. 2d area jumps +1/2 seem like a good target as well as whatever else I'm doing by this point.

  • GTX0la and the grocery sell list should both have the properties of the food/drink given.

    Cooking Pot

  • The Cooking Pot fixture should let you create an arbitrary food/drink item where the name seeds its properties, and this costs 10 tokens or something. Maybe it costs something like soylent instead which you have to buy with tokens, or the cooking pot is mechanical. Whatever makes the most sense.

    Actual eating/drinking

  • I guess in the food/drink sections of your inventory you should be able to eat/drink directly, though seeing the properties seems kinda important so maybe a context-based link herein or whatever works best.

  • At any rate, you should be able to see various properties and then when consuming they should give you status effects that do the specified things.

  • Status effects of the same type don't stack in magnitude, but you can chain multiple status effects together at the same time.

    For now, no limits to eating/drinking.

  • June 21, 2023
    Xhin
    Sky's the limit

    Versioning

  • There should be a "global" hub game database table that's just various pairs of keys/values.

  • In here, put its version, which at launch will be 1.

  • The game version should be fetched from the server.

  • Have a function somewhere that hides specific fixtures and rooms unless a certain version is hit or exceeded.

  • Players store their version as well. This is based purely on when their table first initializes and any time they eat an announce mint.

    Announce Mints

  • I need a database or object or something that stores all updates. I'm thinking content, that way I can use the overseer panel and the post parser to manage it. Prefix it with something actually fetchable programmatically.

  • A special item that appears alongside player categories is the Announce Mint. It corresponds to how many versions the player version is out of date relative to that global key.

  • Clicking it will open up a UI that lists out previous updates in easy viewable format, or lets you eat an announce mint to go up a version.

  • Doing this will give you some amount of X0ins and will also update your version, which should automatically update your amount of announce mints.

  • If you have zero announce mints, don't display them at all.

  • The updates schedule should still be available on the Map however, so add a note to that herein.

  • June 21, 2023
    Xhin
    Sky's the limit

    Journal Alpha

    Without super over complicating this feature, I still need some kind of alpha for it that things can transition to later.

  • Create a database structure for notes and also for tabular notes. Should be indexed based on the player, game/app and seed/instance.

  • The pouch journal thing lets you work with these. Pages need names/slugs so they can be linked to. Should support the GTX0 post parser.

  • You should be able to work with tabular data and set key/value pairs and have them appear in sorted tables.

  • You should be able to link to other journal notes you've made via [[ type links.

  • You should be able to have more general notes that correspond to the full game/app and play alongside the seed/instance one, though idk how that works exactly.

  • Clean this up as much as possible and *maybe* add some kind of social integration to it -- nothing too complex, but something to presage the full feature.

  • Stick a note about how the journal will eventually work somewhere. Maybe the Library or Party Room. Have a link to this content also within the actual Journal feature.

  • Make sure the Journal works across several different games, has notes exclusive to them, etc.

  • June 21, 2023
    Xhin
    Sky's the limit

    Final Cleanup

  • Make sure my notes are adequately represented.

  • Make sure every target of the advertising project is somewhere within the hub game.

  • Give descriptions for all the rooms.

  • Give images for all rooms and features.

  • Create the Map. But somehow call an always-available version of it the Aleph. Maybe you can pick up an Aleph from the Map, can only have one at a time, and its content is dynamic. IDK, needs work. The map is straight text but at least indicates the date that it was changed last. Also indicates my current stage of the project (pulling from the same Overseered source as the Telescope/roadmap). And basically also gives you directions to everywhere in the hub. It's sanest to just hardcode it and update it as I update the layout.

  • While I'm thinking about it, there needs to be an easy way to go to in-network projects where you have actual save files in some capacity or have actually used them. This still forces you to use the hub game to explore but makes navigation of your active games a lot easier.

  • Clean up the CSS some more. Screen real estate is a giant issue, maybe cut the margins or w/e to help fix it. Pouch also needs a bunch of work, particularly subprojects which are messing with its link css.

  • Make it so that mobile use is easier -- I think the coffee table needs to be in two columns for one thing. The content could definitely be taller. And the 2d space is gonna be a whole other can of worms.

  • Have a hit counter so I know who's visited the site. Permanently store login uids/times as well elsewhere. Both of these need to be easily viewable in a "Stats" overseer panel.

  • Make the logins be never-expire cookie-based rather than ip-based.

  • Social media integration for faster logins/registration.

  • You should be able to browse certain tools as a Guest/Ghost, like relseq or whatever. This keeps you from exporting functions (which is in a separate menu in relseq) but still allows you to use the tool unobtrusively. Url exports seem like they'd be useful though, and just in general as far as tools like this or free teleport areas go. Viewing the hub game should *probably* be a guest thing, though I'd have to carefully find the endpoints that involve the database and tell those players to login/register to use the feature.

  • Push to the main domain and launch. Note: the pouch hub link should go to gtx0 proper, not the hub subdomain.

  • June 21, 2023
    Xhin
    Sky's the limit

    Reply to: Hub Game Alpha Outline

    Username
    Password