MMOcean - the networked fish screensaver
by Daniel D · in Torque Game Builder · 11/10/2006 (1:52 pm) · 17 replies
I submit my project to the community. It is my dream project, but I can see that I need help. So I'd like to make it a community project.
MMOcean. The idea started about 2003, while I was watching the fish screensavers at Best Buy.
Wouldn't it be nice to have the fish swimming from one monitor to another?
I had the TGE for a while, but it was too hard to implement.
then when the T2D came out, with a pre-made fish screensaver, I had to buy it.
I added a little behavior and some semi-turn based networking, and I came up with this quick demo version.
See my .plan
www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=11589
So if you have 2 computers, go ahead and download the capability demo and try it out.
Hey where should I host these files, and how do I add a screenshot. Where would I host the jpg.
MMOcean. The idea started about 2003, while I was watching the fish screensavers at Best Buy.
Wouldn't it be nice to have the fish swimming from one monitor to another?
I had the TGE for a while, but it was too hard to implement.
then when the T2D came out, with a pre-made fish screensaver, I had to buy it.
I added a little behavior and some semi-turn based networking, and I came up with this quick demo version.
See my .plan
www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=11589
So if you have 2 computers, go ahead and download the capability demo and try it out.
Hey where should I host these files, and how do I add a screenshot. Where would I host the jpg.
#2
I fixed object sizes, and world limits, and I now handle the case where a client disconnects.
Next up is a chat feature.
Get the latest version of the file from the link in the first posting above.
photo is hosted on flickr:
www.flickr.com/photos/36927012@N00/296244838/
11/13/2006 (12:46 am)
It was a good weekend for fish.I fixed object sizes, and world limits, and I now handle the case where a client disconnects.
Next up is a chat feature.
Get the latest version of the file from the link in the first posting above.
photo is hosted on flickr:www.flickr.com/photos/36927012@N00/296244838/
#3
11/13/2006 (12:58 am)
Make the underwater environment dynamic, meaning- one desktop is certain % of the whole "world", right? So allow users to decorate it with various elements, add objects, spray texts on rocks, whatever. Then, once a week (or day), all the desktops shift, so user gets someone elses desktop and someone else gets his/her. Perhaps you could even allow people to add functional things like URL links in their backgrounds etc, so its kinda (*kinda*) blogging in a way.
#4
Unfortunately, the whole concept of being completely client side prevents many of these great features. So I will definately need a server for now.
The next features to implement are chat, and :) fishing :)
By the way, I have a server running now. I'll keep it on for a couple days. Let me know if anyone can connect to it.
11/13/2006 (1:14 am)
I had considered customizable backgrounds, like adding treasure chests, scuba divers, etc. But I like your notion of shifting the backgrounds, or even slowly scrolling other backgrounds into view. It is really important afterall for others to see your work. I was hoping to implement a FishEye, which allows you to see whatever tank your fish has travelled into.Unfortunately, the whole concept of being completely client side prevents many of these great features. So I will definately need a server for now.
The next features to implement are chat, and :) fishing :)
By the way, I have a server running now. I'll keep it on for a couple days. Let me know if anyone can connect to it.
#5
www.garagegames.com/mg/forums/result.thread.php?qt=45769
to create a quick chat interface. And I added a hook that moves like the player fish in the fish demo. And I added collisions as instructed by the collision demo.
Its actually playable now. I just need to figure out how to host the server reliably from behind my router at home; eventually gotta get peer to peer working instead. That might involve a client and server on every machine; crazy stuff.
11/15/2006 (3:44 pm)
I used Matthew Langley's examplewww.garagegames.com/mg/forums/result.thread.php?qt=45769
to create a quick chat interface. And I added a hook that moves like the player fish in the fish demo. And I added collisions as instructed by the collision demo.
Its actually playable now. I just need to figure out how to host the server reliably from behind my router at home; eventually gotta get peer to peer working instead. That might involve a client and server on every machine; crazy stuff.
#6
11/17/2006 (8:51 am)
I don't know about having the screens shift but it should be pretty easy to have a fish swim off your screen have it spawned in another person's screen and deleted on yours. Customizing the background would be nice too. Also maybe for each screen that's made have a few more fish created that puts the person's town state/country on it so people can click on a fish to see if it swam from the other side of the world
#7
Dali world, when it used to exist, had passports that the fish carried, so you could mouse over to see where they were from. I liked that. Thanks for the suggestion, I was definately planning to have some way to know who generated each fish.
Download and try it out! There is now a hook to control using w,a,s,d and a score keeping mechanism.
11/17/2006 (10:30 am)
Thats exactly what it does. The object is safeDeleted and a new T2DSceneObject is created and added to the scenegraph of another client. As soon as the second client connects, the fish will swim away. If the client drops, the client list is updated, and no further fish swim to that client. Unfortunately I still have to keep the list of clients on the server, which is not the peer network I had hoped for.Dali world, when it used to exist, had passports that the fish carried, so you could mouse over to see where they were from. I liked that. Thanks for the suggestion, I was definately planning to have some way to know who generated each fish.
Download and try it out! There is now a hook to control using w,a,s,d and a score keeping mechanism.
#8
11/17/2006 (11:16 am)
This is oustanding, I have one question. Will this be release as resource so people like me who is not the best at coding can learn.
#9
files.filefront.com/MMOcean107zip/;6260364;;/fileinfo.html
A 2 player game. Use W,A,S,D to get the worm's head to the fish's mouth.
Notice the Multiplayer Chat and score-keeping.
And the cute worm, which is mounted on the hook, which is mounted on the rope, each having a mount offset.
I used Gimp software to make the png files with transparancy.

Now the Challenge will be to animate that fishing line somehow.
So Far I am thinking to just have it lean left and right dragging the hook along, which means I need to learn to pivot the rope about the hook. Is that possible?
What other kind of physics are availble that I should consider?
11/28/2006 (12:18 am)
Version 1.07 is available on my filefrontfiles.filefront.com/MMOcean107zip/;6260364;;/fileinfo.html
A 2 player game. Use W,A,S,D to get the worm's head to the fish's mouth.
Notice the Multiplayer Chat and score-keeping.
And the cute worm, which is mounted on the hook, which is mounted on the rope, each having a mount offset.
I used Gimp software to make the png files with transparancy.

Now the Challenge will be to animate that fishing line somehow.
So Far I am thinking to just have it lean left and right dragging the hook along, which means I need to learn to pivot the rope about the hook. Is that possible?
What other kind of physics are availble that I should consider?
#10
11/28/2006 (12:34 am)
In regards to making the a resource... I really would have to understand what I am doing a lot better before I do that, but I'll keep it in mind.
#11
A slightly less simple way would be to have linked rope segments that are connected in a chain and are influenced weighted by the distance from the force applied at the point where the user clicked and dragged on the rope.
12/13/2006 (6:56 am)
A very simple way to animate the fishing line would be to just have N sprites or an animation depicting the bent\bending portion of the rope attached to the hook sprite, then simply pick which sprite/where in the animation to move to based on the X delta applied by a user.A slightly less simple way would be to have linked rope segments that are connected in a chain and are influenced weighted by the distance from the force applied at the point where the user clicked and dragged on the rope.
#12
As for your networking side what about creating a unique signature for each fish spawned (on clients) and just passing those packets along from peer to peer? That way you don't need a server to manage that and the packets really become autonomous in the wild ;p
All clients do then is keep packets around or pass them on, no session stuff needed etc.
PSPS:
As for tracking them the packets can contain their origin, as well as any other info they need and clients can periodacally (or when they receive the packet) either send a message to the original client or to a seperate tracking server with the client's guid and the packet's guid.
12/13/2006 (7:03 am)
PS: I had always loved the idea of creatures moving about in cyber space visiting people randomly and being able to track them and see where they've been. (And I'm not talking normal virii, obviously they would have a transfer shell/sandbox like this does ;p)As for your networking side what about creating a unique signature for each fish spawned (on clients) and just passing those packets along from peer to peer? That way you don't need a server to manage that and the packets really become autonomous in the wild ;p
All clients do then is keep packets around or pass them on, no session stuff needed etc.
PSPS:
As for tracking them the packets can contain their origin, as well as any other info they need and clients can periodacally (or when they receive the packet) either send a message to the original client or to a seperate tracking server with the client's guid and the packet's guid.
#13
Good idea to have them call home periodically. Then if a remote client drops while my fish is in it, it would stop calling home for a while, and my fish could re-spawn back home. Then of course I have to watch out for multiple copies of my fish and send a kill message to the youngest duplicate.
I'm really trying to avoid a central tracking server. Although it would help to track the number of clients at least.
Now there is an awesome flash thing out there, which would make it so much more likely for someone to use it. http://www.papervision3d.org/
06/13/2007 (12:25 pm)
Once I got it working to a point I was satisfied, and started a different project but now maybe I'll take another look.Good idea to have them call home periodically. Then if a remote client drops while my fish is in it, it would stop calling home for a while, and my fish could re-spawn back home. Then of course I have to watch out for multiple copies of my fish and send a kill message to the youngest duplicate.
I'm really trying to avoid a central tracking server. Although it would help to track the number of clients at least.
Now there is an awesome flash thing out there, which would make it so much more likely for someone to use it. http://www.papervision3d.org/
#14
One thing I've noticed also is that when the fish go too low they show up underneath (and behind) the rocks. You should change the bottom world limits so they don't go much lower than the coral in the middle of the ground.
Kudos also for your networking code! My have my two computers next to each other and they couldn't find each other on the LAN query but the Master Server works!
07/04/2007 (2:45 am)
I just found this. It's brilliant!One thing I've noticed also is that when the fish go too low they show up underneath (and behind) the rocks. You should change the bottom world limits so they don't go much lower than the coral in the middle of the ground.
Kudos also for your networking code! My have my two computers next to each other and they couldn't find each other on the LAN query but the Master Server works!
#15
Since you know the player's name when they join the world, why not use their name when you update the score in the chat window?
The music is annoying and totally unrelated. I suggest you either get rid of it completely or put in some nice, soothing watery music.
07/04/2007 (2:50 am)
Also, a couple other things:Since you know the player's name when they join the world, why not use their name when you update the score in the chat window?
The music is annoying and totally unrelated. I suggest you either get rid of it completely or put in some nice, soothing watery music.
#16
07/05/2007 (3:17 pm)
Haha! I'm glad you found it. It's been a while since I messed with it at all. I would consider just giving away the code for it if there is enough interest. And youre right, that music is a meaningless placeholder. Once I achieved my goal of networked fishes swimming, I kind of lost interest. Maybe I'll get back into it sometime.
#17
07/05/2007 (10:48 pm)
I'd be happy to see the code! You could replace the fish with all kinds of things and just use the networking for some fun interactions.
Employee Scott Burns
GarageGames