Alice Community

Alice Community (http://www.alice.org/community/index.php)
-   Share Worlds (http://www.alice.org/community/forumdisplay.php?f=6)
-   -   Release: Alice Online (http://www.alice.org/community/showthread.php?t=4425)

zenteo 05-14-2010 06:57 PM

Release: Alice Online
 
2 Attachment(s)
I spent some of these days, working on a muliplayer version of Alice and I succeeded.

The client-version is 99% pure Alice code and 1% python. The python code is only for the connecting/disconnecting and setting/getting position and rotation. The message handling and everything else is in Alice code. In order to do this, I had to make the messages in text instead of byte codes. Since the message handling is in Alice code and that the messages is in text, will make it run a bit slowly. The more players there are on the map, the slower it runs. The server-side code may cause much of the lag because I have never done serious server-client coding before and therefore I don't know the secific technics or strategies for a healty server/client.

This multiplayer example supports up till 4 players(slow) and synchronizing of position, rotation and movement-state.

The movement-state will tell the client that a player is moving and therefore it will try to simulate the movement between each of the position-updates.

How to use:
Start the server and then start to instances of Alice.
Load the client-world in both of the instances and play them.
Set the windows up so that you can see both of the windows simultaneously.
Then try to walk around with W,A and D [I](I didn't include S because of too much extra coding. Then I would have to add a state_walking_backward and state_walking_forward state).[/I]

[B]And if the Alice-player-window is freezing up, then just kill the server and restart it/Alice.[/B]

Tell me what you think. :D

~Zenteo

Edit: Ahh sorry folks, it seems like that I have compiled the server for framework 4.0 instead of framework 2.0 ... I's fixed now, just redownload it.

[B]See it in Action on Youtube!!!:[/B] ^^
[URL="http://www.youtube.com/watch?v=QqelYXnTXd4"]http://www.youtube.com/watch?v=QqelYXnTXd4[/URL]

dubastot 05-14-2010 07:50 PM

Sorry Zenteo, but I really am not sure how to run you multiplayer program. I opened up two copies of Alice and opened up "Alice Online" on both of them. When I started them, it said the server couldn't be found.

dubastot 05-14-2010 07:57 PM

Ok, I figured it out, but now I can't figure out why the camera doesn't move when I command it to move.

Watsamax1 05-14-2010 08:49 PM

No ase. or that i got a mac. need rar if you could.

King Gamer(gorit) 05-14-2010 09:47 PM

Ok, Zenteo we always knew that the capability for running it on one computer was their. The problem is that we need to figure out how to acess files from computers all over. I have developed an ftp server is too slow and the only other reasonable option would leave your comupter vulnerable to atack. I am still looking in to other ways.

zenteo 05-15-2010 05:16 AM

[QUOTE=dubastot;21299]Ok, I figured it out, but now I can't figure out why the camera doesn't move when I command it to move.[/QUOTE]
First. Start the server:"Alice Online Server.exe" and then open up two copies of Alice. Load the "Alice Online" world in both of em and run the world.
Then you can use "W","A","D" for controlling it. If the client has freezed up, just shut the server down (Ye it's very glitchy).

[QUOTE=Watsamax1;21301]No ase. or that i got a mac. need rar if you could.[/QUOTE]
I don't recommend you using mac since the server is made on Windows. You could try using an emulator, or, if you want to, you could run the server on a Windows computer on the local-network, get it's ip and replace the "localhost" string in the "Setup World" method with it.

[QUOTE=King Gamer(gorit);21303]Ok, Zenteo we always knew that the capability for running it on one computer was their. The problem is that we need to figure out how to acess files from computers all over. I have developed an ftp server is too slow and the only other reasonable option would leave your comupter vulnerable to atack. I am still looking in to other ways.[/QUOTE]
It is using the socket techology which is regardless of which computer you are running the server on. It's the same technology as most of the clients/servers are using. Just run the server on a computer and open the same port as the server is running on, on the router. Then, go to "http://whatismyipaddress.com/" in order to get your IP and replace the "localhost" string in the "Setup World" method with your IP. If your IP-address is dynamic, I recommend you to use a DNS like "no-ip.com".
It is the same for all servers, you will have to open ports and all that stuff.

I would have shown you if I had a working router and a computer that I didn't have to turn off and that I could place in the basement.

Btw, reading/writing files on a ftp-server is not a solution at all. It's extremely slow and it would be very glitchy if two client are writing on the same file.


Edit: Ahh sorry folks, it seems like that I have compiled the server for framework 4.0 instead of framework 2.0 ... I's fixed now, just redownload it.

[B]I've uploaded a video on how to run it and to show it in action:[/B]
[URL="http://www.youtube.com/watch?v=QqelYXnTXd4"]http://www.youtube.com/watch?v=QqelYXnTXd4[/URL]

jediaction 05-15-2010 08:45 AM

[QUOTE=zenteo;21297]I spended some of these days, working on a muliplayer version of Alice and I succeeded.

The client-version is 99% pure Alice code and 1% python. The python code is only for the connecting/disconnecting and setting/getting position and rotation. The message handling and everything else is in Alice code. In order to do this, I had to make the messages in text instead of byte codes. Since the message handling is in Alice code and that the messages is in text, will make it run a bit slowly. The more players there are on the map, the slower it runs. The server-side code may cause much of the lag because I have never done serious server-client coding before and therefore I don't know the secific technics or strategies for a healty server/client.

This multiplayer example supports up till 4 players(slow) and synchronizing of position, rotation and movement-state.

The movement-state will tell the client that a player is moving and therefore it will try to simulate the movement between each of the position-updates.

How to use:
Start the server and then start to instances of Alice.
Load the client-world in both of the instances and play them.
Set the windows up so that you can see both of the windows simultaneously.
Then try to walk around with W,A and D [I](I didn't include S because of too much extra coding. Then I would have to add a state_walking_backward and state_walking_forward state).[/I]

[B]And if the Alice-player-window is freezing up, then just kill the server and restart it/Alice.[/B]

Tell me what you think. :D

~Zenteo

Edit: Ahh sorry folks, it seems like that I have compiled the server for framework 4.0 instead of framework 2.0 ... I's fixed now, just redownload it.

[B]See it in Action on Youtube!!!:[/B] ^^
[URL]http://www.youtube.com/watch?v=QqelYXnTXd4[/URL][/QUOTE]

This is just networking almost online, but thats where Zone and King Gamer are stuck

zenteo 05-15-2010 09:45 AM

The only thing we need is someone who can offer their PC as a server and we're done. Forget ftp and files. This is streaming.

dubastot 05-15-2010 12:31 PM

What if we were to tell each other our IP adresses, would we be able to connect with one another?

Dameria 05-15-2010 12:37 PM

[QUOTE=dubastot;21337]What if we were to tell each other our IP adresses, would we be able to connect with one another?[/QUOTE]

We need 1 computer that all of our computers can connect to as a server. From that computer it will send out information to all of the others that are connected to it. Once we get that server we will be able to connect to it and pass information to and from the computer, and multiplayer will be a new possibility.

Watsamax1 05-15-2010 03:16 PM

boot-camp work?? i may get windows for my mac. I got boot-camp. Id use it for some games.

King Gamer(gorit) 05-15-2010 04:56 PM

I have a new idea. Let's get rid of the lag before we talk about the server.

Dameria 05-15-2010 05:23 PM

[QUOTE=King Gamer(gorit);21357]I have a new idea. Let's get rid of the lag before we talk about the server.[/QUOTE]

Is that your idea? If it is, then I agree with you, if there is lag in a program like this where there is only 1 computer, it is only going to be worse when going through a server. Try to make the information move from one world to the other faster. It looks almost as if you are only sending the information ever second, but we should try to stream the information from one program to the next instantaneously.

King Gamer(gorit) 05-15-2010 06:15 PM

One big problem though in server selection too is speed. I beleve as i stated befor that we shouuld focus on games like checkers before a full game.

Dameria 05-16-2010 08:45 AM

Do you think that, maybe instead of a set server that would be running all the time, we could set up a host server? This way we could have it where the person that is starting the game would be the one who is acting as the server, and all of our information could just be sent to them and then distributed to all of the other computers playing the game?

We don't need someone to have their computer running 24/7 to act as a server, we can just use the person that starts the game as the server. This would, however, require us to trust a person the host with the security of our computer. Unless someone knows how to secure the lines between host and player, the host could possibly access our computers and take information (though I doubt anyone that would use this the game would do that).

So do you think this is a possibility? We could all open up a port, like port 3112, and allow information to go in and out of that port to the host.

dubastot 05-16-2010 04:54 PM

That's a great idea Dameria. Isn't that what most video games have anyways though?

Dameria 05-16-2010 05:20 PM

[QUOTE=dubastot;21394]That's a great idea Dameria. Isn't that what most video games have anyways though?[/QUOTE]

Yeah, I think mostly all video games do that, I got the idea because of Warcraft 3, but even games like MW2 use it, like when it picks the host in the game. Now we just need to figure out how to do that. Zenteo will probably figure it out.

King Gamer(gorit) 05-16-2010 05:28 PM

It is not truely that hard to use host migration. It could just consist of a method that selects a host by there ping to other players. But, I know that that we will not necisarily have to open a port. On most computers there is already a few open ports.

Dameria 05-16-2010 05:30 PM

And these ports will be secure? The host will not be able to access our computer files or upload anything to our computers once they have access through our port?

arty-fishL 06-03-2010 04:19 PM

source code
 
I was wanting to view the source code, but it says it was created in a newer version, are you able to make it available for visual c# 2008 express edition?

zenteo 06-05-2010 03:48 PM

[QUOTE=arty-fishL;21961]I was wanting to view the source code, but it says it was created in a newer version, are you able to make it available for visual c# 2008 express edition?[/QUOTE]

aa x)

You see, I'm lazy, reaaaly lazy, so I made it in Vb.net...
I used Visual Studio 2010 for making this... just google "Visual Basic Express 2010" and install it.

arty-fishL 06-24-2012 08:15 PM

Multiplayer Gaming
 
Its a shame this went to waste.

This is as secure as a Minecraft Server is and I'm sure nobody on these forums wants to hack each others computers either. But, regardless of the minute chance of computer infiltration, I have decided to work on a more advanced, more secure and more feature-heavy version of this (completely inspired by this one).

Each user must have an account at my website (once its fully set up), the server authenticates users using this site. Accounts at my site will be linked to accounts on the Alice Community. This means you will know who you are playing with and you can report them. They can also be admin/mod/banned. There is a top admin and user whitelisting is supported.

All users must be using the same world, if any changes have been made then they are not permitted to play until they download the correct version.

The server runs via a simple command line terminal. It has basic commands like ban and kick. There is integrated chat, users can use commands from it, but only ones that they are permitted to; some commands are limited to only the terminal or the top admin.

The server can be made public, it will be added to a list on my website (accessible in game), so you wont have to worry about IP addresses, but you can still join via an IP address if you want.

It is very customisable. You can disable some security features if you really want to.

I've spent 2 days on it and its half way finished. I've got 1 week to complete it and the client template before I go away for 3 weeks, so either expect a very beta one soon, or a better one in a month or so. I thought this would be good for my first Java project (as I am teaching myself Java).

x2495iiii 06-24-2012 11:35 PM

Sounds excellent. But what will we play?

GameKid 06-24-2012 11:47 PM

[QUOTE=arty-fishL;50263]Its a shame this went to waste.

This is as secure as a Minecraft Server is and I'm sure nobody on these forums wants to hack each others computers either. But, regardless of the minute chance of computer infiltration, I have decided to work on a more advanced, more secure and more feature-heavy version of this (completely inspired by this one).

Each user must have an account at my website (once its fully set up), the server authenticates users using this site. Accounts at my site will be linked to accounts on the Alice Community. This means you will know who you are playing with and you can report them. They can also be admin/mod/banned. There is a top admin and user whitelisting is supported.

All users must be using the same world, if any changes have been made then they are not permitted to play until they download the correct version.

The server runs via a simple command line terminal. It has basic commands like ban and kick. There is integrated chat, users can use commands from it, but only ones that they are permitted to; some commands are limited to only the terminal or the top admin.

The server can be made public, it will be added to a list on my website (accessible in game), so you wont have to worry about IP addresses, but you can still join via an IP address if you want.

It is very customisable. You can disable some security features if you really want to.

I've spent 2 days on it and its half way finished. I've got 1 week to complete it and the client template before I go away for 3 weeks, so either expect a very beta one soon, or a better one in a month or so. I thought this would be good for my first Java project (as I am teaching myself Java).[/QUOTE]


Whoa. One week?
One of the many things only arty can do.

arty-fishL 06-25-2012 03:33 AM

[QUOTE=x2495iiii;50267]Sounds excellent. But what will we play?[/QUOTE]I was thinking of just making a tool object thing, so anybody could make games for it. I would, of course, make something for it too.

[QUOTE=GameKid;50268]Whoa. One week?
One of the many things only arty can do.[/QUOTE]Don't hold me to that, I'm not promising, but I think I could pull it off, at least get all the features in that are required and then release a better version later on.

x2495iiii 06-25-2012 12:13 PM

If you do finish this, I'll definitely make something for it.

arty-fishL 06-25-2012 05:35 PM

[QUOTE=x2495iiii;50272]If you do finish this, I'll definitely make something for it.[/QUOTE]Yay, thanks, you're much better at making games than me.

I'm well on my way to finishing it now. Its written in Java, therefore it can be cross platform, so if anybody wants a Mac/Linux version then I can make it at request.

sfunk 06-25-2012 11:27 PM

Arty, you are one ridiculous person, and I definitely mean that in the most awesome and respectful way! Hope to see this in use when you finish.

Beans 06-26-2012 02:22 PM

Thank You
 
Thank you for this.
Now I can finally make MMOs!

jediaction 06-27-2012 07:14 AM

Sorry to burst your bubble, but you can't make an MMO in Alice. Alice isn't powerful enough to hold projects that big. I tried making an RPG, after I got really complicated, it crashed. Also, you don't seem to be responding according to the comments. It's not even finished yet.

InsertName 06-27-2012 12:55 PM

Do you have a general idea of what it will be like when multiple people are using the world? Because I looked at the video on the first page and it looked pretty cool. :)

GameKid 06-27-2012 02:43 PM

[QUOTE=jediaction;50282]Sorry to burst your bubble, but you can't make an MMO in Alice. Alice isn't powerful enough to hold projects that big. I tried making an RPG, after I got really complicated, it crashed. Also, you don't seem to be responding according to the comments. It's not even finished yet.[/QUOTE]

Some people don't bother to read the thread and just comment on the first post.
[QUOTE=arty-fishL;50271]
Don't hold me to that, I'm not promising, but I think I could pull it off, at least get all the features in that are required and then release a better version later on.[/QUOTE]

Sorry. I didn't mean to hold you to anything.

arty-fishL 06-27-2012 04:35 PM

Sorry guys, looks like I'm going to be leaving earlier than expected. I probably would have finished it this week, but now you will have to wait 4 weeks. Plenty of time for you all to think up great things to do with this then. Again, sorry :(.

Here is how it basically (I say basically, but the description will be long) works. You must have an account at my website (easy to set up, I will release link with server release). Firstly you start up the server application. You sign in to set your account as server Top Admin. You select a world to bind to the server; it checks the AODb for an exact match of the world (using a checksum), if no match is found you must enter a few extra details about the world. The server starts and people can join. You can then make the server publicly visible.

At the client end people play via worlds. You must sign in so the server can authenticate you. When you join your connection may be denied if the server is full (you can set max users) or if you are not whitelisted (when whitelisting is on) or if you are banned (either on just that server, or on the AODb) or if you are not using the same world. You can be assigned as a standard user, a mod or admin. When the user who started the server joins they are assigned Top Admin automatically.

The server does require basic knowledge of JavaScript. Each world has a server script, which can be uploaded to the AODb and therefore automatically loaded. The server script will be basic and will simply handle variables/messages received and decide what variables/messages to send, the internal workings are handled by the server, so you wont have to worry about them.

The server runs via a console (CMD window) and accepts commands, much like a Minecraft Bukkit server. I may consider making a GUI in the future. The server will have built in chat (text based, Skype can be used for voice). The chat interface will accept commands, but only commands permitted to each user type. I plan on allowing custom server commands and custom world commands in the future.

Again, sorry or the wait, but I wont have access to a computer when I'm away. I may have wifi access, but only on my mobile phone (which runs Android, so I can't really do much related work on it).

jediaction 06-28-2012 08:06 AM

Acknowledged. I'm sure someone will post something interesting while your gone. You'll be back before anyone can count up to infinity twice.

arty-fishL 06-29-2012 04:23 AM

ArtyOnline Server on Google Code
 
I thought I may as well post the unfinished version so far. [URL="http://code.google.com/p/artyonline/downloads/list"]Here it is on Google Code[/URL]. Warning - it doesn't actually do anything worth taking notice of yet, because nobody has an account, its just there in case you want to see it or the source code.

GameKid 06-29-2012 02:01 PM

ArtyOnline... That's really fun to say! Artyonline. Artyonline. Try it!

arty-fishL 06-30-2012 09:20 AM

[QUOTE=GameKid;50298]ArtyOnline... That's really fun to say! Artyonline. Artyonline. Try it![/QUOTE]

Yay, I have temporary mobile WiFi access at the airport. Thanks, I didn't realise I hadn't already mentioned the name. I thought it ran off the tongue pretty well, glad you agree. :)

jediaction 06-30-2012 11:39 AM

It actually does. Remember, if you need a scene to test the connection and stuff. I'm more than willing to do it. My time is still short on using Alice, but I can still do it every once and a while.

dakota95 07-10-2012 08:36 AM

Lol
 
I've been away from alice the last semester and then I log on to find this. I looked at the recent posts and I'm thinking 'no way, they finally made online alice?' I started reading the post without looking at the dates until I came up to arty's post. *sigh* I got excited.

jediaction 07-11-2012 09:13 AM

This is old and there is actually Alice online already. Just not this. Me, Arty and Zone made an online game a while back, but it wasn't a game. It was a connection test, but you could see each other. It was pretty cool.


All times are GMT -5. The time now is 12:23 AM.

Copyright ©2022, Carnegie Mellon University
Alice 2.x © 1999-2012, Alice 3.x © 2008-2012, Carnegie Mellon University. All rights reserved.