• Welcome to SC4 Devotion Forum Archives.

Chat system

Started by croxis, September 14, 2009, 04:49:04 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

croxis

Current server status:  Logs in players, checks if player entered the wrong region or personall password, and lets the client know if it logged in or not.

My next project is the chat system.  There are some options we can do.

1) Simple chat, very easy to do. As in 5 lines of code to be able to chat to everyone or specific players.
2) IRC server.  I can design the chat system to be an irc server.  There would be a region wide channel, as well as channels for each city being played.  This allows for people to chat in game, or connect with an irc client and chat with people playing without logging into the game.
3) Commands (like the terminal in quake and whatnot).  Some kind of player authorization system would be needed, but players can pass commands through the chat interface, the server parses the commands, and executes them.  This will probably be implemented at some level.
4) Limited python interpreter.  Again a permission system is needed, but authorized players can interact directly, but in a limited and secure way, with the python environment. 

These options do not exclude one another.  I can do 2, 3, and 4 if we want, or another idea if someone comes up with one.

Nique

3 looks good to me  :). IRC: Players should be very limited on using commands for the sake of security ?
Proudly developer of

catty

One thing I found really annoying with the chat window in CitiesXL, was the total inability to minimise or close it down, that said I did use it and my preference is something simple and secure and that its the player's choice to use it or even see it  :)
I meant," said Ipslore bitterly, "what is there in this world that truly makes living worthwhile?" DEATH thought about it. "CATS," he said eventually, "CATS ARE NICE.

croxis

I agree with that.  How the chat window is presented is totally up to the client.  Someone could make a client with no chat window, someone else could program a client that was JUST a chat window.

The more I think about it the more issues I find offset the benefits to each option.  Like with option 4.  In a single player game the player can just give themselves a billion dollars so they can work on a city journal without resorting to 3rd party hacks or cheat codes. At the same time, if I am not careful with the implementation, a bad person can login and delete half the hard drive.

Option 3 gives the advantage of a server admin being able to connect to the game and ban people, or save the game, or provide the "cheat codes" so someone can do their city journal.  On the other hand this will lead to multiple ways for the client to talk to the server.  If the client programmer gets lazy it can result in issues down the road.

Option 2 is nifty as it helps manage massive number of people playing in a region at once, and can build community of city builders.  A big region building team can make different chat rooms for the transportation department, zoning, utilities, etc.  This feature wont be used by many players though.  (To Nique's comments.  It would not be a complete implementation of irc, but enough so other chat clients can connect and use it.  The game will know the difference between someone who is playing the game, and who is connected by a chat program just to chat.)

Option1 is just a simple chat like that in Civ4 or Quake or Unreal.  It does its job, but doesn't have any of the nifty features as above.

I'll think about it some more.

Genocidicbunny

Why not do two separate systems ( I like OOP tyvm!)

Have a regular chat for the actual chatting, ala civ 4. But provide a console with commands based on what your ranking is, say if you're the server admin, you get access to the highest level commands. If you're the game owner ( as in, you're running the region, but not administrating the server ) then you get commands related to the region, but not to the running of the server. And if you're a regular user, you get your most basic commands: name, password, change name, change password, server info, region info, that kind of stuff. Itll help keep the two systems separate, and at the same time, provide some security.

Oh, and admin level commands should never be able to do stuff outside of the game. I should not be able to access data outside the game folder(s) nor should I be able to run anything else. Im all for nifty features, but I dont much care for providing another exploit to the ones already out there.