Byteden Games

The Prototype Repository

December 13, 2024

Taking some time to refactor my code and split it into modules that can later be reused for future game jams, etc. Notable changes include a new input system, spine integration, chipmunk2d integration, cleaner folder structure, etc.

December 11, 2024

It’s been a while since I posted, but I made a new bluesky account @chugget.itch.io. I also did another game jam, and made some progress with juice & ui. I’ll dump some gifs I’ve saved over that time just to clear up the clutter (game jam WIP images, ui screenshots, shaders, spine, etc.)

window_movable_shader_wip window_movable_shader_artifact stages_around_jam_3 spine_error spine-boy-x-flipped shadow_shader_artifact shadow_shader shader_artifact_top_left Screenshot 2024-11-18 015339 Screenshot 2024-11-18 015309 Screenshot 2024-11-18 015300 Screenshot 2024-11-18 015255 Screenshot 2024-11-18 015245 scoring-jam-final raylib-cpp-cmake-template moving_bugs moving_around_jam_2 moving_around_jam imgui_shader_window_complete flashing_shader_button entire_window_sheen_shader entire_window_rippling_shader entire_window_flashing_shader entire_window_bobbing_shader entire-round-jam

October 31, 2024

  • Scuffed text implementation, needs correcting
  • more work on understanding the code

October 29, 2024

  • More work on text animation!

October 25, 2024

  • modified event system to be more precise, text system needs overhaul

October 24, 2024

  • updated event system code, now it needs testing
  • more research regarding input system

October 21, 2024

  • Added new event system, needs editing and testing. Event system method missing some things, needs redoing. Learning about how other games structure text, movement easing, etc.

October 17, 2024

  • Refactored imgui::ninepatchbutton(), needs debugging
  • debugged imgui::ninepatchbutton()

October 16, 2024

  • Started imgui ninepatch button, needs work
  • tweaked input system, more work on buttons
  • Added a couple of buttons for easy console access
  • Set dithering scale to be constant (2.99994)

October 15, 2024

  • Tweaked waitForEvent() in lua to deliver payload. Need to run unit tests on event system again
  • Made sol2 error message more detailed,
  • Got event waiting payloads working
  • Segfault with unit test, trying to solve.
  • Event unit test works, all tests pass, but the test still says it fails, and sometimes it throws a segfault for no predictable reason (not always)
  • Updated input system to pass payloads with relevant data.
  • Added input system unit test, needs debugging
  • Need more work on input system.hpp and .cpp, and then unit testing all over again

October 14, 2024

  • Explored input system more
  • Input system needs testing/fine-tuning
  • Input system fully tested. Now to integrate it into the game.
  • showTutorialWindowWithOptions() working now

October 13, 2024

  • Cut out some features from tutorial system
  • Got main game/menu music playing via lua script
  • Dithering shader added
  • Trying entt.fwd to reduce compilation times
  • Added keymapping layer for later input reuse/controller binding, needs testing

October 11, 2024

Nothing new to post today.

October 10, 2024

  • explored task management & ninepatch scaling some more
  • Wrote drawNinePatchUIIndicator()
  • Worked on npatch component for in-game npatch indicator rendering
  • Added screen fade-in/fade-out
  • Added ninepatch indicators for entities that blink and time out
  • Added filter to component viewer
  • Used imguilistclipper to reduce processing when showing entities
  • Added camera offset fix whenever window size changes so the camera always centers right.
  • Added some sounds, but the sound system needs to be tested now
  • Got music playing.
  • Started work on scripts that will auto-execute on startup.
  • Sound effects working properly now.

October 9, 2024

  • Added goap world state atom access function
  • Added zoom camera to entity/location functionality
  • Added a method to display indicator arrows around an entity, which needs testing
  • Pretty happy to see this working as planned:
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function tutorials.sample(deltaTime)
    addGameAnnouncement("[color:KONSOLE_BREEZE_NEON_GREEN]Welcome to the tutorial![/color]") -- TODO: should be showwindow method instead
    addGameAnnouncement("Wait for 3 seconds...")
    
    wait(3) -- Wait for 3 seconds
    
    addGameAnnouncement("Now press the [color:KONSOLE_BREEZE_WARM_BROWN_ORANGE]'A'[/color] key.")
    waitForKeyPress("KEY_A") -- Wait for the 'A' key press
    debug("'A' key pressed!")

    
    -- show a color coded message in a window and wait for a tutorial window closed event
    -- If the window contained multiple buttons, there will be a table payload to indicate which button was pressed
    showTutorialWindow("You have [color:KONSOLE_BREEZE_TEAL_GREEN]completed[/color] the tutorial!")
    
    pauseGame() -- Pause the game before locking the controls
    lockControls() -- Lock the controls except gui
    waitForEvent("tutorial_window_closed") -- Wait for a specific in-game event
    unlockControls() -- Unlock the controls
    unpauseGame() -- Unpause the game

    addGameAnnouncement("Screen fade test.")
    fadeOutScreen(10) -- Fade out the screen in 1 second
    wait(10) 
    fadeInScreen(1) -- Fade in the screen in 1 second
    
    addGameAnnouncement("[color:KONSOLE_BREEZE_NEON_GREEN]Tutorial completed![/color]")
    
end

October 8, 2024

  • Nothing new to share today. Work continues on tutorial system.

October 7, 2024

  • More ninepatch debugging
  • Ninepatch working now, needs tweaking to look right.
  • Added bg and fg to ninpatch window
  • Changed gui color scheme to konsole breeze
  • Added simple announcements log ![](images/Screenshot2024-10-05at3.30.27PM.png
  • Added a list of defined events file to keep track of events fired by the game which can be detected by lua
  • Adjusted mouse input to not go through windows
  • Added color coding based on name as well as RGB values
  • Made in-game controls lockable via lua
  • Changed ninepatch to use imgui drawlist
  • Added announcement-adding with lua
  • Added lua event publishing argument-less-ly via console
  • Tutorial mode tweaking
  • Added event_system::subscribeToLuaEvent
  • Added resetListenersForLuaEvent()
  • Wrote unit tests for these
  • Added registerTutorialToEvent(), linked it with tutorial system to allow automatic addition of tutorials
  • Modified console to log command input
  • Fixed transparency issue in ninepatch window
  • Currently the ninepatch rendering will be cut off by other imgui windows in the way, but this may not be a problem right away and will be put aside for later fixing, should it be necessary to fix
  • Added game pausing/unpausing methods to lua
  • Fixed ninepatch clipping error

October 4, 2024

  • Worked on ninepatch functionality some more (needs testing)
  • Placed game assets in a centralized repo
  • Added Kenney and universal sound fx packs to repo

October 2, 2024

-Integrating sound system, needs testing -More work on sound -Added ninepatch configuration json -Added initial worldstate and goal state to creature json, needs more work -Made sample cp437 ui image -Tried getting cp437 export on Ubuntu font (show image), with little success -Added linux konsole breeze colors to the color file (2024-09-30 > show_your_work)

September 30, 2024

  • show lua window on script
  • Tutorial windows will fire an event on close which lua scripts can listen for
  • Removed spotlight shader, wanted something more simple
  • Wrote unit tests for some entity access methods to be used lua-side
  • waitForCondition() unit test was failing, now fixed
  • Added a simple sound management system, but this needs to be tested

September 27, 2024

  • Made changes to website code to better allow mobile viewing (didn’t work, does anybody know how to keep edges from being cut off in mobile?)
  • Allowed tutorial system resetting via lua console
  • Started lua-tutorialsystem linking
  • Started integrating tweening system for imgui windows

September 26, 2024

  • Started work on tutorial system (lua scriptable), with dummy methods for now
  • Added spotlight effect shader that can be triggered with lua (untested)
  • Started work on a creatures.json that will allow data-based ai initialization
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"CREATURE_MOUSE": {
        "name": "Mouse",
        "attributes": {
            "health": 50,
            "speed": 2,
            "vision_range": 15
        },
        "tags": ["AGGRESSIVE"],
        "actions": {
        }
    }

September 25, 2024

  • Made a new hugo batch file that auto-generates a new post (so I don’t have to enter the date each time)
  • Changed console font again..
  • Finished script reloading command via console (to hot-reload ai-related lua scripts inside the game)
  • Finished lua_dump feature which dumps a list of all user-added functions and tables defined within the master lua state (for debugging and easy access)
  • Changed show console key to f6

September 24, 2024

Made a “Lua mode” in the console for inputting lua code with spaces in it (makes inputting lua code hassle free)

September 23, 2024

Did a lot over the weekend!

  • It’s no longer necessary to specify worldstate update functions
  • New blackboard access function hooks
  • Added automatic loading+running of worldstate update functions
  • Updated logging functions to be more descriptive
  • World state access functions
  • Turned goal selection logic into lua
  • Explored using coroutines in goap - prob not worth the hassle right now.
  • Cleared out some todos
  • Added blackboard initialization functions that can be customized by entity type
  • Added overloaded lua debug function
  • Started work on coroutine tutorial system
  • Tutorials can be added by means of a simple lua script
  • Implemented waitForKeyPress() function
  • Implemented wait(seconds) function
  • Implemented waitForEvent(string) function
  • Wait for custom lua function condition
  • Unit tests for basic tutorial functions that use coroutines
  • New unit tests for updated event system
  • Spd::setLoggingLevel() must be called within unit test to allow spdlog output
  • Worked out bugs in unit testing
  • Unit tests for base_functions.lua
  • Tutorials = tutorials or {} to avoid overwriting a table
  • Action update functions are now coroutines
  • Started integrating imgui_console
  • Logging has been redirected to the imgui console
  • Added autoscroll to spdlog statements in imgui_console
  • Made console font smaller

September 20, 2024

  • Added current state caching for correct detection of changes
  • Made postcondition setting automatic
  • Fixed some bugs
  • Fixed deltatime value bug
  • Fixed worldstate caching bug
  • Question to self: How to implement default fallback actions in goap? -> Using a default goal always set to true every loop using condition lamndas would probably do the trick

September 19, 2024

September 16, 2024

  • Unit tests for event system that can be tapped in from lua scripts (subscribe to c++ event, publish c++ event, define new event types in lua, publish/subscribe to custom lua events)

Somethin from Game Engine Architecture:

September 12, 2024

Working on configurable goap system with lua + json for use in future projects.

August 2, 2024

So I recently did a bunch of stuff, in addition to a game jam. I’ll upload what I made soon. In the meantime, I got my particle system working both on web (ES 2.0) and the pc (opengl 4.3).

July 10, 2024

  • Started work on general tweening system.
  • Work on animation of imgui windows.

June 29, 2024

  • Started work on tutorial/dialogue system that uses lua, for extensibility.
  • Completed correct color rendering for various tilesets loaded in with LDTK.

June 26, 2024

Recently completed a game jam! Here’s the game: https://tommyv2.itch.io/autorock-roulette
Some recent progress on my personal projects:

  • LDTK tileset rule loading for better looking walls and environments

May 8, 2024

  • Added animated transitions for when there are multiple entites on a map.
    alt text

April 28, 2024

  • Frustrated with the limited time I have (I translate multiple webnovel titles daily from Korean to English on a daily basis) to program, I took it upon myself today (Sunday) to complete a game in a day. Well, I failed to do that, mostly because I made the scope a bit too big and I got hung over some UI tweaking (making context menus disappear after mouse moves out of it in IMGUI is hard).
  • I’ve got some basic UI together.
  • Notable new things I’ve done include using font awesome icons, image rendering within the IMGUI context with animations, playing some sound effects and using some new gui elements I haven’t tried before such as the collapsing header.
  • I worked a total of maybe 4-5 hours on this, but that wasn’t enough for me to get a basic game loop going, unfortunately. Perhaps I’ll return to this particular project in the future.
  • At least I know to keep the games I want to make in short burts even shorter than I think is proper. alt text alt text

April 26, 2024

  • Added a log window where the majority of the colony’s story will be visible.
    alt text

April 25, 2024

  • Added game over condition.
    alt text

April 24, 2024

  • Farm plot designation by mouse drag.
  • These need to be actually built by the colonists (TBC)
    alt text

April 23, 2024

  • Added mouse drag events to be used later for placing objects and buildings, among other things
  • An input mode to indicate what is being input through the mouse drag

April 22, 2024

  • Now creatures can get hungry/thirsty and will die if they reach a certain limit.

April 19, 2024

  • Added some placeholder objects to the environment.
  • These objects can be inspected now.

alt text

April 18, 2024

  • Added rocks to the map.

alt text

April 11, 2024

  • Trying to come up with some intersting stories that can be used as a basis for gameplay.

Sample Story 1: The Serial Killer Colonist

A team of settlers embark on a remote region and start to forage and farm for food to survive. They establish farm plots and plant seeds, watering the soil from water taken from ponds. It turns out, however, that there is a serial killer in their midst who, unbeknownst to everyone else, slowly begins to kill off the colony. He has a signature–he always leaves some kind of fruit or grain behind in the mouths of the dead. Those taken by surprise are not able to react or really defend themselves. The colonists grow terrified, and going about their daily tasks begins to be a challenge. They continue to die out. Though there is a lot of grains and fruits to be harvested, no one but the serial killer remains to do so. He hides the bodies in a certain room and locks the door. He also puts aside trophies–body parts–for his collection. Sometimes he will look at them to remind himself of his achievements. He takes over the colony alone and, feeding on the harvested food, waits for new people to join the colony, at which point he pretends to be a law-abiding citizen and welcomes them in, biding his time until he can strike again without danger to himself…

Sample Story 2: Ghosts in the Soil

Colonists must collect seeds from the environment to start planting something, since they have nothing with them due to a recent bandit raid. They start walking around and exploring. This plain is a big place, and there’s even a source of fresh water, in the form of a pond. The ground here seems fertile. There are curious mounds in the soil that appear to be graves of some sort–perhaps, long ago, someone actually occupied these lands. What could have happened to them, that they abandoned this seemingly fertile place? As the colony gets under way, with farm plots being arranged and the rocks and debris cleared out of the way, the colonists begin to notice something strange. There are times when something white and ephemeral glimmers in the air in unexpected places, and multiple colonists report having fitful sleep and nightmares. It seems they are not alone here. They start writing down what they have seen on the walls and on parchment, as they value historical records and are interested to see what this new phenomenon may lead. The happiness level of the colonists drops considerably. They no longer see this place as the blessing they once did. Nothing sinister seems to happen as of yet, but these ghostly beings give the impression that they are watching and waiting.

April 10, 2024

  • Water evaporating?
    Testing CA water

April 9, 2024

  • More work on cellular automata water.
  • Started baseline brainstorming of procedural stories that could be told with this farming sim.

April 3, 2024

  • Line of sight integrated into game.
    Combatants demonstrating line of sight

April 1, 2024

  • Finished porting line of sight code from here
  • Now it needs to be tested, along with cellular automata code.
  • Initial testing of GOAP code complete. This will need to be used later when actual farming AI is needed

March 29, 2024

  • Added pond generation back in.
  • Integrated cellular automata system, which will need to be tested.

March 28, 2024

  • Starting work on simple farming prototype.