Beta Development Day 3 + Insights


 Things take shape

I am trying to push this over to a working state, but work is taking most of my day leaving me with very little time for development.

so anyways, I started making today's batch of changes, and from yesterday's batch I have copied this list:

  • Redesign the client module to work in asynchronous mode(startup, send, end communication) and have a thread protected receive.
  • Redesign Server to have an abstracted I/O(input/output) class so it can be swapped with whatever I need at the time.
  • Write a signer class that receives data to send and sign it and authenticator class that checks who signed the data received by the server and inputs it to the game as the correct player.
  • GUI text box with the ability to handle letters numbers and a few symbols as input from keyboard for signatures(currently name only, maybe some more unique signature later) and for commands because making a proper UI will take time and I currently want the game to be functional.
  • Render card backs for Decks and Enemy Hand.
  • Render Numbers for important things: Cards in Deck, Health, Energy, Cards in enemy hand(you clearly shouldn't be seeing what those are).

Simple Player ID

starting off the day I made a very simple and very stupid player ID: "host" for host player and "remote" for remote player and AI, the least secure option that makes it so everyone who connects to the game can play without blocking anything that will cause issues later on, there are additional problems this approach introduces as I didn't completely decouple the player ID yet but that will have to wait till I start having issues(testing actual multiplayer).

after testing, this thing actually works. the hardest part was separating the added line from the general data - simple 2 lines of code.

with that the Signatures are added and I can start progressing through the stages of development towards the first post-Alpha build of the game.

Textbox

making a GUI element is a bit harder with a lot of code going into it, for handling all types of interactions, as it is going to be a new type of element in this version of the codebase(my old OpenGL 2D WinAPI codebase because SDL doesn't handle texture manipulation as nicely).

so after a while I managed to hook up everything in the main menu screen(did I mention I made a menu screen?) so you'll be able to set up the Host IP and your name when playing.(will be used for future player ID)

so we can now use the main menu and write some stupid things, this can also be hooked directly into the game screen to allow for executing commands and playing the game like in the alpha.


this now finally works and all that is left is rendering the rest of the game onto the screen before I release the first post-alpha version!

Rendering new things

creatures now render on the screen!!! YAY:


this required me to make the "always pass" AI, so this is now part of the game.

next is rendering other game elements, like the stack:


which was easy enough to make on a basic level(doesn't show owners or targets)

next is rendering 2 strings to represent each player data(enemy creature for debugging):


later is Indicating the Turn and Phase


now you can see which phase and given how the game behaves with the "always pass" AI we can somewhat play the game.

but it's still missing the crucial part: Rendering Rituals.

that will be something for tomorrow because it's getting late and because of work I have very little time to make progress on this game.

Day Summery

the remaining items on my todo list:

  • Write a signer class that receives data to send and sign it and authenticator class that checks who signed the data received by the server and inputs it to the game as the correct player.
  • GUI text box with the ability to handle letters numbers and a few symbols as input from keyboard for signatures(currently name only, maybe some more unique signature later) and for commands because making a proper UI will take time and I currently want the game to be functional.
  • Render Numbers for important things: Cards in Deck, Health, Energy, Cards in enemy hand(you clearly shouldn't be seeing what those are).
  • Render Counters(Special Counters On Creatures and Turn Counters on Rituals).
  • Render Rituals
  • Enemy Rituals Render - only Ritual Type and Counters (you should not be able to know what ritual your enemy set up before they cast it, but you should know its type and the counters on it)
  • Render Attacker and Blocker Indicators(simple line?  value in blocker stack?)

Point of Release for Post-Alpha

  • Player Target Area(so you can click on player)
  • Highlight Origin/Target
  • OnClick commands
  • pass command button + key
  • Render Target Indicators
  • Render card backs for Decks and Enemy Hand.
  • Mundane Blitz/Swarm AI.
  • refine player ID class.
  • Make Online Play work again.
  • Chat?

Point of Release for Beta Version 0.5

  • deck editor
  • world exploration for adventure mode?
  • story/adventure mode(intro)
  • more AI functions
  • refine GUI
  • draw Beta card art
  • compose beta music?
  • options submenu
  • multiplayer "accept/reject" options?

Point of Release for Beta 1.0

This is a gargantuan list for early access development, and with my limited codebase it might hurt the potential of the game, but I keep things mostly abstracted so if I make a better codebase, or want to move all of my code into an engine that will support my utility classes(all written in C++) I can move it pretty quickly.

Final Words for the day

I need to be honest about this game:

  • it's not releasing at least for a full year, but beta might be released as early as next month. I'm under a contract that makes it impossible for me to make a side gig right now, I will be mostly out of the contract by late 2024 so I plan to take my time making this game and maybe a few others and polish them to a level that feels good.
  • I'm not planning on making games on any real engine any time soon, so the game might still look scuffed even at release if I don't figure out bytecode shaders and other advanced stuff(rounded arrows, semi 3D cards, etc.).
  • I do plan on monetizing the full release(I know, awful of me), meaning that the beta is going to include only the features of a demo and will be missing the 4th faction(and any future factions beyond that), missing the full singleplayer mode, and will not be compatible with the full game's online play. the beta will still be available as the Demo version of the game even after release.
  • I hope I will be able to add proper mod support for the game with set synchronization, multi-set gameplay, and proper API for players to add new effects, keywords, and card interactions to their custom cards(through DLL based modloader) but it might get cut away with only a basic card creator that has all the currently available mechanics(basically access to MY development tools, which are currently notepad as the current card format is in plain text).

this game is something I plan to leave behind me as a proud achievement, even if it fails completely I will still want to be able to look at it and say "I'm proud I made this game" because even if the game sucks it'll be the best version of it I can realistically make.

Get Fundamentals Card Game

Leave a comment

Log in with itch.io to leave a comment.