Prototype


Biiig disclaimer: Readme is not in the PROTOTYPE tagged version and instead is on master and is necessary for testing and understanding things.

Checklist of Requirements:

R1: PC and Android - DONE
R2: Sound  - TODO
R3: Running smoothly
R4: Adaptive screen - kinda
R5: Plugin - TODO UI Toolkit and Dotween? (Will probably use UI toolkit for menu and lobby and/or dotween for card effects)
R6: EditorExt: TODO: cardMakyr,displayer
R7: Using input system - I mean I imported it but its not like its useful
R8: Using Universal rendering pipeline - Did not properly check what that entails yet
C10: Netcode - DONE
A16 - cloud services - Lobby,Relay - DONE

Aditional requirement will be picked from bellow:

  • Likely:
    • A2 - Adressables - Presumably this will allow us to ship with less than bilion assets but I did not read on this much yet.
    • A6 - Tweens
  • Possible:
    • A3 - Particle system (Tweens are likelier)
    • A8 - animations (Particles are likelier though)
    • A10 - polish
    • A12 - Good settings (There is not much to set)
  • Unlikely:
    • A1 - Save&Load - Little reason for it unless we will be doing PvE content (which is NOT at all on the menu)
    • A7 - Splitscreen (After all the effort with netcode - don't you guys have phones?)

We have definetly fullfill 2 Required requirements and definetly not fullfill 3 thus sitting somewhere between 25-62,5%


Comments and such:

As of now the networking side of the game is neigh perfect. Its UI is still in shambles but at least everything is happening and happening relieably. We need to add support for connecting via code and quickjoining lobbies but that is a question of a few UI elements.
Also note I will need to handle loadingscreens or such because web requests don't happen immediately and the UI does not look good during loading.
The Gameplay is not finished. To be able to "Play" I need to implement 3 types of actions:

  • Playing minions
  • Attacking with minions
  • Casting spells

And only the first one sort of works and so the act of playing cards does not really affect the outcome.
Soeaking of outcome the game will end if one player reaches zero HP....once I implement that check.

Watched great CodeMonkey videos on netcode, lobbies and relays. I did not download his source code but I copied and then adapted a lot of the networking code from the guy. Extremely detailed and useful!

I decided for a P2P system with neigh total trust in clients because A) I don't have much experience B) I have little willpower.

I send bare minimum over the network and simulate the game on both clients. All that I need to do is to be able to simulate potential random effects properly. (have a initial seed or something that is shared so we generate randomness the same way.)

Struggling a lot with Z position (I swear its going to be the death of me) Godot handles this better.

I have MBs worth of art assets that I am not going to push on git - they are replaced with placeholders  (when working on master).

I once the core gameplay will work I will make an editor extension that will help me add scripts to cards better. Since many cards will have special effects I will have to figure out how to make that work.
I will either derive from the base Card script and make prefab variants of the card with modified scripts
or I will make extra script in special namespace and attach its functions to events on the main card (thinking about it that sounds more logical and would be useful later)

Time taken:

I did the basics back when I thought the deadline was 26.1.
That included the board, loading cards, parsing json data and some early UI.
Iirc spent little less than 8 hours doing that (worked about 3 days but with heavy procrastinating)

The most work happened at the start and end of the previous week - start had motivation, end had stress and crunch.
I decided I want to start with netcode asap because I had no idea how netcode worked and did not want to make a version of the game that could not be easily modified for that purpose. In hindsight it would probably not be necessary and I could for the ease of testing make splitscreen or such first, but I was not armed with the same knowledge as I am now.

And so I made netcode first - saw the game run on local machine and would be easily adaptable to run on local network, but instead I jumped straight into Lobby and Relay. Technically I should have started with Relay - make it work and then add lobby for convenience of connecting to it, but instead I built a Lobby system first and then used it to activate relays (You can tell in which order I watched the CodeMonkey videos)

The last day, night, day and some I rushed to get a semblance of gameplay code working to show off more than an endturn button.

And well thats about it.

Get TMMstone

Leave a comment

Log in with itch.io to leave a comment.