JC's Unity Multiplayer TRaceON V0.8

This one comes with power-ups. Loads of them :wink:

  • Drop Wall (R)

  • “Bullet-Time” (T) - don’t do this too often in multiplayer-mode, though, or people will be annoyed :wink:

  • Smoke (F) - the idea behind this is to “cover” your wall with smoke, so people run into it without seeing it… there’s an antidote, though: use perspective 1 (or 2, maybe), which is “cockpit style”, so you can probably see the wall under the smoke (while with the overview camera you have which is on 3, the smoke does have the “cover up effect”)

  • Shoot Wall (X) - that’s my favorite :wink: you can shoot a wall in front of you. You need to shoot it early, because it takes a moment for the projectile to gain speed, and when it hits the wall, it’s not immediately gone but “drops down slowly”… so now’s a good time to practice this :wink:

DO NOT try to shoot other players. Well, or try it, hehe… If you do: Be prepared to react very quickly (hint: “reflection”)

  • Jump (space bar)… another one of my favorites… what I like most is: switch on smoke (F), then shoot (X) and immediately afterwards jump (space bar)… best with headphones and the volume “pumped up” :wink:

… btw, the Arena walls are not THAT high, so with a little practice, you can escape “into the void” :wink:

  • speed up (W or UP)… you can do this repeatedly to get really fast (which makes some things easier :wink: )… be aware though: each time, you hit W, you “lose” one power-up (doesn’t matter in this release, but will make things much harder in the “real releases”)

  • slow down (S or DOWN)

  • and, of course (M) switches on the Map

Keep in mind, you can also look left/right with q,e and a,d, and you can switch perspectives with 1,2 and 3 (not on the numeric keyboard!)

This game is a game for keyboard wizards :wink:

Currently, there game is “cheat mode”, so you can use all power-ups at any time (I’m speaking to developers, am I not? :wink: ). For instance, you could just shoot like a maniac (and see if your computer handles the many many light sources that you create that way :wink: ). In later releases (starting with V0.9), this will be disabled. It’s just for testing, I don’t want to have to search for the power-ups all the time.

I might introduce all power-ups in the tutorial-level, though, because there’s some tricks to using them, and collecting one power-up only gives you “one shot”, so it’ll be kind of hard to practice these “in game” unless I fill up the Arenas with power-ups (like it’s currently the case). If you want to get a competetive advantage over others: Play V0.8 as much as you can, it’ll never be that cheap again :wink:

There’s a bunch of other improvements, too (some of which were suggested by people from the forum during the last “game session” we had - thanks for the input!!!), like now you can switch perspectives (including an overview-perspective) when your cycle has crashed but the others are still playing (in multiplayer mode). Also, the chat window can be dragged and resized (this doesn’t work on the Mac Web player - bug filed, workaround: only supporting dragging the window there, no resizing).

And - most important (I think): In multiplayer mode, all players of all teams have to hit “PLAY” before the game starts. This will cool down things in session with many players :wink: Also: When you’re cycle has crashed, you can use the chat freely even when you’re still “in the game” (with the different perspectives).

The thing that I’m currently not tooooo happy with is some not so nice lag-effects. I finally switched to some loose synchronisation (instead of only sending positions on turns). Also, the turns are now done server-side and sent to the clients (which obviously takes a moment when you’re the one hitting the key). This does solve the really bad lag-errors, but the game looks much more “jittery” that way, so this is something I guess I’ll have to put some work into… It’s kind of hard to test these things alone, though… so…

TOMORROW (Thursday) we could have a little testing-tournament. Anyone who wishes can join in - theoretically, up to 20 players are supported (with the said limitations, and I haven’t optimized the server, yet). I guess I’ll sign on around 9pm German/Berlin/Rome-time. That would be noon in California and I guess 3pm at the US east coast…

I might set up another “stress-test-tournament” during the weekend…

I recommend using the standalone version (on my machine, the Web player doesn’t use the full resolution in fullscreen mode, seems to ignore the settings default screen width/height - but that might just be on my machine). Besides, as mentioned before: You can’t resize the chat-box on the Mac Web player, but you CAN do that in the standalone. Btw, there’s also another “known bug” with the chat: As soon as the scrollbar appears, you have to “re-focus” the textbox each time you’ve sent a message… sorry about that…

Another thing I’ve noticed: It seems that the sound of the power-ups is extremely loud on Windows XP, while it’s okay on my Mac. Could be the different sound-systems, though. Feedback on this appreciated :wink:

So, check it out on

http://www.jashan-chittesh.de/JCsUMTRON_V08/tabid/110/Default.aspx

… btw: This is the 3rd “V0.8” already :wink: The very first one didn’t even have images for the power-ups, so I decided to work a little more on that version :wink: … oh, for some reason it seems these images are being scaled down on the Windows build (but not on the Mac OS build).

Have fun,
Jashan

Argh! Your game hates me! It wouldn’t respond to key clicks so I kept on getting killed… [nicely done though, I can see how this might become addicting]

Hi BigK :wink:

I’m afraid that’s the “lag-issue”… Germany Hawaii is probably the hardest case for this, isn’t it? That’s a really tricky problem: I’d like to make it look as if the cycle immediately reacts to your key-actions (that’s the way it was implemented before - you DID your turn immediately and then notified the others, including the server). But: The server is authoritative when it comes to deciding when you crash into a wall.

In the end, I might have to refactor that whole thing quite a bit to do Network.Instantiate on the clients (i.e. each client is fully responsible for their cycle). Hm… tricky business, that is :wink:

Could you give an estimate on how long it took your cycle to react? It’s a fully round-trip right now, so the “turn” goes from Hawaii to Germany and back to Hawaii before you see it happen. The good news, though: When the information is in Germany, your cycle is safe, because that’s where the collision detection happens :wink:

Sunny regards,
Jashan

BigKahuna isn’t in Hawaii any more. Been here on the mainland since the middle of last year. I’m on the East Coast of the US (just about 200 meters from the coast to be exact!).

It seems that the lags were the worst when you were gaining on me and coming in for the kill (you mean you didn’t design it to do that? :wink: ).

BTW, I used to be a big fan of the old Tron game that was a standard with most Linux builds. Played it for hours. Your game is a very faithful reproduction, with some very cool improvements.

That was madly fun. :slight_smile: I only encountered the lag issue once, though I lost all but one game, to various other things like badly timed jumps and getting freaked out by Bullet Time (I wasn’t aware that that was one of the powerups. At the very end, I lost my wireless connection for some reason or another, and the controls hung and I shot through a stage wall, driving in “the void” for a few seconds before it reset.

Oh… That means it’s only half the way I thought it was. This disqualifies you as beta-tester… sorry…

Just kidding :wink: Hope you like the east coast, too…

:wink: Oh well, you caught me. I knew you were gonna log in as bigK so I have implemented a “special handling” just for you: Didn’t you notice that you were not controlling your lightcycle? Well, I was. The cycle that was said to be controlled by me was instead controlled by a little AI. So, you just had no chance at all. Hehe… :wink:

The good news, however, is that I maybe have found a solution that will solve the lag problem once and for all. TRON is “kind of predictable”, there’s only a few exceptions (turns, some of the powerups) that will need some very special attention, but I have an idea on my mind and will try to implement that as the next step. Aside of that, for the next release, I’ll only create on additional level into which I’ll put all the ideas I have for levels (stuff like tunnels, teleporters, “weird zones” and other funny stuff like that). That might later become one of the advanced levels, but for now it’ll be kind of a prototype of what’s possible.

That’ll be V0.85 :wink:

Thanks! Originally, I really just wanted to take the simple concept, do it in 3D and do it multiplayer to get started… But I guess I’ll have to get used to the fact that when you actually start developing a game, the ideas don’t get less, but quite the contrary is the case…

Btw, it would be cool if anyone joining in tonight could use their forum-names as names in the game. I’m planning to give a little reward to the people who alpha/beta-test this, and it’ll be easier if I can map the names from my logfiles to the people on the forums :wink:

Unfortunately, I don’t have a bug-database up and running, yet… well, that’s to come, too… I just wish I had more time :wink:

Sunny regards,
Jashan

Moldorma’s there, ChromeFly’s there… where’s the rest? :wink:

Come to the raster, fellas :wink:

5 players online :wink:

6 players :wink:

That was awesome, especially towards the end. I can’t say how awesome you are enough!

I must say, that was really fun and cool to try an “instant action” type Unity game right in the web browser.

Can’t wait until you polish it up. :slight_smile:

Cheers,
-Jon

Game Over :wink:

Whoa, thanks to everyone who joined in… We had up to eight players this time, and I would say we had a lot of fun :wink:

I’ve noticed one very important thing: Game Servers need to be dedicated servers. I have a pretty nice machine hosted at 11, and I think it’s pretty okay as long as no one accesses the Website (a DotNetNuke portal) which is hosted on the same server. The SQL Server then consumes all the processor time and the game lags like crazy (I call this “the second life effect” :wink: ). It’s basically as if the server “stopped” for a moment… or a few moments…

Well… I have to see if I can reduce the priority of the SQL server… that should fix it. But that only works if you host Websites that hardly anyone ever visits :wink: (or if you host static Websites that require no database stuff, but if I did that, you probably wouldn’t have your own hosted server).

Btw: One thing that I find kind of tricky is that Unity always says it takes up 99% of the processor time (I know, that can’t be changed and wouldn’t make sense to even try changing that :wink: ). That way, it’s kind of hard to find out how “heavy the load” really is on a server, because the process monitor always shows 100%. Monitoring Websites with all the performance counters etc. is much easier than monitoring Unity game servers, it seems :wink:

I might use my profiler (“JCsProfiler”) for this in the long run, but it’s kind of tricky… I guess what I could do is simply count how often any given “Update” is called in a given timeframe (like one second), and when that goes below a certain value, strike “ALERT” :wink: Basically just count FPS, even when I’m running “headlessly”…

Since I have no GUI on the server, I’ll have to write that information to the log and monitor the textfile, which is not ideal, but okay… I guess later, I’ll use a database (on another server :wink: ) to store the “current load information” and make that accessible through the Website with a little “mini Unity game” :wink:

Oh… and of course, it shouldn’t be hard to set up something that checks the networking traffic (but I don’t think networking traffic will be an issue until I have huge amounts of players :wink: ).

Another thing I’ve noticed which is very tricky: When people have slow machines, that might become some major trouble because it might mess up any sort of lag-reduction… It shouldn’t be a problem for the others, but it probably becomes very unfair for those with the slow machines… But maybe I’ll just make it possible to switch off the effects for them (I think it’s worst with the particle stuff). Something like “when framerate goes below X, destroy all particle systems immediately” :wink:

Well, I definitely need to refactor the whole networking thing and optimize the server big time (it’s not optimized at all, at the moment - haha, at the moment even all the particle stuff is done even though it’s never rendered :wink: ).

If you want to play, just let me know… I think it’s most fun with 4+ players, and I think this version is “good enough” to be “somewhat” addictive :wink: I think Saturday night will be the next “official session”, but I’ll probably be online tomorrow, too. But obviously, I also need to keep going with development :wink:

Thanks again, and thanks so much to UT for creating such a cool game engine! You guys really make it so much easier for me (and all the others) to make our dreams come true… and this is just the beginning, hehe :wink:

Digital regards from the grid :wink:
Jashan

Couple people on! :slight_smile:

Cool :slight_smile: That was fun!!!

Heh, this is incredibly addictive :). You’ve got to do something about those arena walls though, I jumped out and back in easily! I was so impressed that I took a video.

Also note that I managed to cycle through two walls of other cycles without turboing, and without crashing. Bug much?

This game is great fun. GLTron made multiplayer over the network. Great job!

For Macromedia’s Shockwave Multiuser Server, we had to make a plugin that called sleep(1); to get a real accurate assessment of CPU utilization.

In the final game, there will be two types of arena walls: Some which you can jump over, and some, over which you cannot jump. Since jumps are very rare power-ups in the final game, it will be somewhat of a tactical issue whether one has to jump of that wall or not - especially because in any case, it will be a rather dangerous thing to do (it is kind of easy when you accelerate like crazy before - but that’s only possible because right now, you’re in “cheat mode”, after all, this is still alpha :wink: ).

I hope that won’t give the game too much publicity in its early stage :wink: Btw, my name is Neo, er, the game’s name TRaceON :wink:

That was probably due to a server-slowdown. This will inevitable happen as long as I don’t have a server exclusively for TRaceON. I’m planning to get one when the beta stage is almost complete, so that’ll still take a little while…

Kind regards,
Jashan

Thanks! I’m glad people like it… It’s much more fun to play with others than alone :wink:

I realized that it’s actually not THAT hard to get a good estimate of the server load. I simply track the FPS on the server now, and send it to all clients via RPC every few seconds. On the clients, I display the server FPS along with some local stuff. I also keep track of min and max FPS, and a few other variables, like ping time and the time needed for the server RPCs to the clients (which theoretically should be pingtime / 2, right?)

So I guess with the next release, it’ll be quite easy to spot problems related to the server. Very simple: When the server FPS goes down and the game behaves weirdly, you know: Server is in trouble.

If the game behaves weirdly, and the ping time goes up - it’s obviously lag. And when the game behaves weirdly and server FPS is up, and ping time is little… well, um… then… you might be drunk or something :wink:

Sunny regards,
Jashan

I’ll be online with a few people in about one hour, for about half an hour (5pm to 5:30pm Berlin/European time).

JC

Very cool and fun… Especially the jump powerup…

Jumping is awesome!