top of page

Progress for this week went well. I got in a bunch of the things I wanted to work on for the new online system, and I think the code is better than ever. You can now draw cards, undo stuff, and confirm when everyone has finished and the game can move onto the next action in the game rules. One optimization is I split up the code more into different scripts, and now the scripts are at more reasonable lengths (it used to be, 2 scripts would go over 1000 lines, now the lengthiest ones are about 500 lines).


I think the only major weakness is that if you disconnect in the middle of your turn and reconnect, you have to click through all your previous decisions again. I think I know a fix for this (it's to keep a track of your decisions with a number, and if you reconnect the game replays the turn for you by applying your past decisions), but I'm putting it off for now as it's not too mandatory.


One new feature is I added a little chat area. It's kind of like a 2nd log, except that the only things that get posted are: notifications for when players join/disconnect/reconnect, and anything that players type into chat. I don't know why I never did this before as it's really easy. I guess I just assumed anyone playing my online games would be in a voice call with anyone they're playing. But putting notifications for if something goes wrong has been useful for me when testing the new system, and it should still be useful to have it in the game.


I still haven't figured out what a simple game could be. Which means maybe I just immediately dive in and make a larger game that uses all of this new code. My choices are either the Pacific-like game, or the 2-player fighting game. Again the first one seems like an easier project.

Some things I've been trying out for the new online game, that I still haven't figured out the actual gameplay of. One way to get the game to remember what things you had when you reconnect is to save it to the room. Rooms and players have custom properties that can be stored for a certain period of time. That means everything data that a player or a card has can be put there.


This works fine for something that's just a number, like how much money a player has. This gets harder for something like what exact cards a player has, because room properties can't store game objects. My first solution was to keep everything in arrays of integers, where the integers are the card's photon ID. The problem is that arrays are annoying to use, especially if has to constantly change (which will happen in a card game). My current workaround is to get the array, convert it into a list, modify the list, turn that list back into an array, and save that.


Then there's the question of sending information to other players. When you apply a room property, it automatically applies to all other players. Which in some situations I do not want, like in game with simultaneous turns (what they do on their turn should be hidden until everyone is done). Currently my solution is, the game keeps track of what properties you have changed during your turn, and only officially saves them to the room properties when your turn is done.


Most of this so far has just been brainstorming, most of it hasn't been implemented yet and combined with all my other systems (like undos). I think most of the hardest part of the brainstorming is done though.


I can also talk about how over the past 2 days I had to deal with a very odd bug. When creating an object, it would sometimes just disappear immediately for no reason. And it would only happen in the offline mode, if it's online the objects are created without issue. Eventually I found a workaround, which is to delay the creation of the object by a fraction of a second. I don't know why this solved it, considering I had never encountered this issue before in any project, but I guess this is what I have to do.

The game is now done and released. Even though this game was pretty much only 1 month of continuous work, it's been 4 months since I've actually released a new game publically. This ended up being because of a secret project (which finally is about done), work, and the fact that one of the games I tried to work (the platformer) hit a dead end. I don't know if I'll ever go back to that game, it may be a while. I'd like to try and get 2 more games done before the end of the year, even if one of them is a smaller one.


The fighting game I mentioned last week still sounds like a possible project, but it's definitely a more different kind of game than what I'm used to making. Which means I may put it off for later. I do have another idea, which is sort of inspired by Pacific, the game I made last week. You put things into areas, and they can make money for you and be moved into different areas. But I want it to be different than Pacific, and my idea is instead of having a bunch of copies of the same type of tokens, you instead put cards with instructions into the areas, and you move the cards around. The cards can also have boxes on them like in Moon Colony Bloodbath, and cards with boxes are more powerful and can be sacrificed.


Then there's changing up how you play the cards. I decided I didn't want to do another game where you draw cards and then pay a cost to play them, and I realized I could use Flower Draft again. Each turn you draw 2 cards, give 2 to another player (with 1 face down). When you're given cards from another player, you pick one for you to play, and they play the one you didn't pick. Unlike Flower Draft I don't think I want anything that cares if a played card was revealed or concealed, I just want cards that do things when they're played.


I have more ideas for this but I still have to figure out how to handle disconnecting with the rest of my other systems. That could take all of next week, and then I want to make a smaller game that is a first test to make sure everything is working out. I still don't know what that smaller game will be.

Thomas Tang (DZ)

tt2195@nyu.edu

+1 (646) 236-5503

Redmond, WA

©2025 by Thomas Tang

bottom of page