I’m not dead.
If you think lag makes you angry when you’re playing a game, try getting it when you’re creating one.
Players can join games, chat, ready up, and quit. Very few bugs - most happen when a user quits. If a user disconnects they’re better off restarting the game because player objects don’t get cleared properly.
After ready the up (synched nicely) the scene gets flagged and the game starts. Players can place their units, but do not see opponent unit placement. Armies are still loaded locally from pregen function.
Although it doesn’t seem like much, it’s a good amount of progress. Now that players are synched I can make a call on any player / player object over the RFC and all players will know what is being pointed at. This means when a player makes an action to move a unit, I can do an RFC call to all players (including the initial player that did the action) for the move script.
Anyways… from what I read, onGUI shits up the garbage collector something feirce and it’s suggested to not use it if at all possible. Since my game realistically only has a chat box that needs fullt-time usage of it, I think I might try to get rid of it. This means a lot of re-coding and trying to set up things with just scene components is shitty.
Once I sync the player array between all clients I can do ANYTHING.
Not sure how much time I want to spend making up to 3v3 possible (planned cap being there or 4v4.. but 4v4 is a lot of fucking models.. 60 per team… could make a 4v4 only 10 units each)
The ready up screen is there, will have all players click to ready up. Again, the question is to waste time on setting up teams at this point as well before moving on. I think I will so that it works for later. It’s just a lot of work for these things that don’t have hugely visible progress, Dayum shame.
After all this menu bullshit I get to stop working in the overlay class and go back to Main.cs and make the unit setup phase sync between all users. (having teams working at that point will be good because there will need to be some team based code checks in many places)
A side note, realized I’m probably going to need a “ping” function. People in dota can hardly tell each other where to go over a mic, so sharing that tiny ass chat box with a team would be suffering.
STILL NEED MENU SCALING. FUCK KIDS WITH SHIT MONITORS.
Multipler connection // chat works. I just need someone to test it with. ._.
-spawn areas (only calculated for 2 players for now)
-units face the general direction of next player in array
-preview unit now animated
-when all units are placed, start shows up, click sends to next phase (waitSetup, waiting for other players to place units)
Other player units will not be enabled until they have been set up so players cannot look over at what their opponents are doing and make countermeasures during setup phase.
It’s looking like networking is going to have to be at two separate levels… Assuming I can get this on steam someday, I’ll want the steam integration for all my matchmaking and allow things like steam names and avatars displayed on welcome phase.
Can’t do that yet, because it’s very likely I won’t reach there for quite a long time.
Guess I’ll research photon unity server shenanigans and see what I can come up with. Canadian upload doesn’t make it very viable to host from here. Peer to peer sounds like best bet but it’s much easier to get people . Maybe I’ll peer to peer (type in IP etc) until I can get the actual game built. Port forwarding shenanigans are disgusting, though.
-place units (e key)
-select the test unit
(can de-select the test unit now, as well as re-select it… so players can left click on units already on the field to see who’s who. I’m going to make it so selecting a unit on the field also changes the placement viewer thing so you can place the unit you selected again.)
todo: remove units (right click), make “placement zones”, add “units placed//max to place” counter, add “start” button
That should be tonight. Then networking?
Got up at 6 and put some work in.
-player armies are now displayed for clientPID and can be cycled through with the buttons. Changes selected character as well as stops from deselecting (when clicking button, would remove stats because deselect was called).
Sadly since I have only one model I cannot “see” the models changing when I scroll through the player’s unit list. Only way I could tell is by selecting them and seeing the class differences.
When I get back from work I’m going to set up the right click to place unit code. Then work on entering the next phases (setupwait, playeraction, enemyaction, watch)
Probably what will happen is I’ll set up the action bar then have to switch over to networking code.Not looking forward to that.
Hour and 12 minutes left. Not sure if I’ll finish what is planned for tonight. I’ve got the unit preview on the right there but it doesn’t scale too well with the changing window size. Currently that’s the “real” model. Going to make it a temp one that makes an instance of the real ones so they can be previewed and on the game board at the same time (so someone scrolling through their units doesn’t have the “what I can scroll through” change a lot. Maybe I’ll gray them out too. Will need to look into shaders sooner or later anyways.
Arrows will cycle through but I figure I’ll bind the mousewheel during this stage as well.
Speaking of stages, I’ve got it responding properly for the welcome phase which goes into the setup phase after x seconds. Need to think of how the welcome phase will work. For now I can just name the players… but realistically I want it to be dynamic based off the player number (so more players = showing teams and player colours).
An aside regarding the tumblr news feed: Holy god damn, why are all these 12yo grimdark poems everywhere. Calm down kiddies.
Glorious progress. Now that they’re fully responding to clicks and the ui is being populated (I had to re-write the code immediately so it wasn’t so expensive) I’ve got 4 and a half hours to make the “scroll through units and place on game board” phase.
Henshin a go-go baby
So apparently you need to turn on some ‘gizmos’ button to make the raycast debug lines show up. As you can see I made quite a few of them trying to get it to work before realizing this. GLORIOUS.