Notes
Quote
3rd world problem - Damn ,the electricity is out.1st world problem - Damn, my internet is slow.0 world problem - Damn, I am using 8gb of ram in WSLimaginary world problem - Damn, these reusable workflows on the cloud vm are so slow.
2025
Markets
CICD Reusables
-
05:38PM
Pipes were broken, but not because of the cold but rather test casing the resuable workflows. One of my bad habits is going out of scope during a gamejam, but its also where I find new solutions to non-existent problems. Best to call it imgainary world problems, since its not a first world nor a zero world problem, its further backwards. The
utils-file-alterations.yml
seems like its good to go for testing, will push that all the way to main and see what happens with it. -
06:09PM
Next, the focus was getting the
utils-godot-itch-build-pipeline.yml
, which is another reusable workflow that I plan to call during this gamejam. Eventually the goal will be to make this monorepo super modular and easy to build out even faster, there might be a point where we can go from concept to full startup in less than 48 hours. -
11:58PM
To test the reusable workflow, we would call it under the
jobs
like this:
jobs: trigger-godot-build: uses: KBVE/kbve/.github/workflows/utils-godot-itch-build-pipeline.yml@main with: branch: "dev" deploy_to_itch: true godot_version: "4.3" export_name: "TowerDef" project_path: "./apps/rust_godot_towerdefense/godot" build_artifact_name: "towerdefense_web_build" itch_username: "kbve" itch_gameid: "tower-defense" secrets: butler_api: ${{ secrets.ITCH_API }}
However, I will do this tomorrow, after I finish up the core player script and the movement.
B13
-
06:58PM
Starting the base foundation for the brackeys game jam, this time around, we will stick with the basic gdscript and avoid calling the rust code until later on. Once the base game is playable and generic gameloop is done, then we can shift some of the logic over to the rust side. Under the
scenes
folder, we will try to build the game around just a single scene and rotate out the canvas and ui between the different game modes. Next, we want to link thegame
to theproject.godot
.
2024
Style
The current plan is to build out a KBVEStyleSheet, which will nest our static and dynamic tailwindcss configurations. I will try to keep this as vanilla js as possible, so that it can be called and used with any library. This should make it easier for us to style our website and rotate out the colors as we wish.
export const style = new KBVEStyleManager();export const dyn_style = new DynamicKBVEStyleManager();
These will be the two main source of truths for our style sheets.
Let me boot up the dev build using the nx command, ./kbve.sh -nx kbve.com:dev
, which runs the localhost version of the website on port 3000.
While I am fixing up the dynamic styles, I will continue to work on the curves.
The styles class looks good, going to update it and include the documentation, jsdocs, comments, ect… so that we can now utilize it across the AstroVE library.
Let me go ahead and generated the markdown for the code as well.
KBVE Style Management Library
The KBVE Style Management Library provides a TypeScript-based framework for managing and applying dynamic styles within applications. It leverages interfaces and classes to create a flexible system for handling style variables and their transformations.
Interfaces
IKBVEStyleSheet
Represents the base contract for a style sheet within the KBVE framework, defining how style variables can be retrieved and manipulated.
- Methods:
getVariable(name: string, dyn?: boolean): IVariableProcessor
: Retrieves a variable processor for the specified variable name. Optionally, a dynamic flag (dyn
) can be specified to modify the variable name retrieval process.
IVariableProcessor
Defines the operations that can be performed on a style variable.
- Properties:
variable: string
: The current value of the style variable.
- Methods:
getText(): string
: Returns the textual representation of the variable.setTransparent(percentage: number): IVariableProcessor
: Modifies the variable to apply a transparency based on the specified percentage and returns the processor for chaining.
Classes
KBVEStyleManager
Implements IKBVEStyleSheet
, providing the core functionality for managing style variables.
- Private Properties:
variables: { [key: string]: string }
: A key-value store of style variable names to their corresponding values.
- Public Methods:
getVariable(name: string, dyn: boolean = false)
: Implements the interface method to retrieve and process style variables.
- Private Methods:
replaceHyphensWithSpaces(inputString: string)
: Utility method for formatting variable names.applyTransparency(variable: string, percentage: number)
: Applies transparency to a variable based on a given percentage.
DynamicKBVEStyleManager
Extends KBVEStyleManager
to override the getVariable
method, enabling automatic dynamic variable processing.
- Public Methods:
getVariable(name: string)
: Overrides the parent method to always retrieve variables in their dynamic form.
Exported Instances
style
: An instance ofKBVEStyleManager
for default style management.dynStyle
: An instance ofDynamicKBVEStyleManager
for dynamic style management.
This library offers a structured approach to handling styles, allowing for both static and dynamic manipulation of style variables. Its architecture facilitates easy integration and extension within TypeScript applications.
RSPS
Going to assign a couple small goals for the Atlas library, this includes setting up the bezier curves, an automated browser window and building out the base levels of robo movements.
Before I set the goal for something too large, I think it would make sense to focus on smaller goals for the library.
The three small tasks that I have assigned to weaver are:
- Bezier Curves. 721
- Selenium Integration via an interface. 723
- BlueStacks Integration via an interface. 724
For the Bezier curves, we want to aim for them to be as human like as possible.
Aside
Since we finished up the base style manager, I want to extend it out for the aside menu and maybe style up the options for each of those options.
Well besides adding the aside
, I am thinking of adding an additional SWIPE
menu that we would call on the bottom.
The current issue with the aside menu is the color scheme is not yet matching what we are aiming for, hopefully we can resolve that by tonight.