Sessions: Guild Schedule

Flick.Mano A Mano: Sundays at 12pm (EDT)
IainPeregrine.PlunderGnome: Wednesdays at 6pm (EDT)

Join the Sessions guild to make schedule recommendations, submit games, or set up sessions on our forums.

What is Artemis?

If you were following the activity of the Sessions guild last month, you may be wondering where all that activity went. The answer to that question is in two parts: The first is a long sob story which ends in me asking you for money, and the second is a library named Artemis.

(Read on if you're technically minded, skip to the good stuff if you want to know how this effects the Sessions guild).

Artemis is a chat system for inclusion in any BYOND world. The central component of that library is a "relay" object which routes messages between users. These messages supply information about who the sender was, who the target is (the user receiving the message), when the message was sent, the body of the message, and (optionally) what channel the message belongs to. Users can join multiple channels, which are analogous to "rooms" or "groups" in other programs. Artemis does not display the chat message, though. Once the user receives the message, it's up to your program to decide how it should be displayed.

Why use Artemis with all its complicated routing, then, if it doesn't even display the text? Isn't that what the << operator is for? If you just want to dump everything right into "world", I guess that's fine. As soon as you want to start displaying different conversations, combat messages, and private messages in different places, then you'll need some sort of meta information to accompany your messages, and that's essentially what Artemis provides. You can make a tab element, for instance, and keep a different tab for the conversations in each room, and tabs for private messages, too. That'll look a lot better in your game than everything being mixed up in one output. Still, if that's all that Artemis did then I wouldn't expect anyone to use it.

Where Artemis shines is in the fact that it doesn't care whether a message came from the local world, or another server. Artemis isn't just a library for handling messages, it's a protocol for sending those messages over the internet. This protocol provides several features, in addition to the channels and other features mentioned above. The most important feature is that every user has a unique name on the network, and you can be certain that when a message from "Ralph" arrives, that it is the same "Ralph" who contacted you last time. There are, of course, some caveats to this certainty:

  • Each user is registered with a server. Once the server goes down / reboots, or your server goes down / reboots, that registration process must be completed again. The library takes care of this for you, but afterward there is no guarantee that "Ralph" is the same user.
  • Artemis uses its own system of user names. There is no guarantee that "Tom" on another server is really "Tom" of Dantom. (Nor should there be, in my opinion. Games should use their own naming system, and not rely on BYOND's key system.)
  • You can be certain that a user is the same user on the network, not the same person. Just like how any developer can give himself a verb that does "world << "LummoxJR says: [my_text]", a server can also send messages from any user it has registered. This is true of any time you're dealing with programming, though. Again, I see this as an important feature: Your network users don't have to be humans, I've already built several bots to automate certain tasks.
  • User names arn't "pretty". If a message is comming from two servers over, the unique username will be something like this "iain.ceres.pallas", where ceres and pallas are remote servers. This allows each user to have a unique name, as a message comming from "iain" on another server might look like "iain.juno.vesta", while users on the local server will have simple names like "iain". The protocol also provides each user the option to supply a nickname, so you can set this to a key if you wish, and you'll never have to see those network IDs.

In summation, this amounts to the certainty a developer has that no one server is spoofing messages from another server's users. For the end user, Artemis can provide no more and no less certainty than BYOND's key system: If you can trust the developer of the local server you've joined, then you can trust that the local user "LummoxJR" really is who he says he is.

So, how does this help the Sessions guild? Along with the library (which is undergoing testing before being released), I've also made a chat program. You can find it here:

http://byond.com/games/Ceres1/Artemis

This chat program supports all the features of Artemis, including remote servers. So imagine that you're sitting in the channel "Sessions" chatting about how bored you are and how you'd love to play a game with someone. Then you see the message "Ralph has connected". Moments later you see "Hey, is anyone here?". So you write back:

[12:41] *** Ralph has connected.
[12:41] Ralph: Hey, is anyone here?
[12:43] John: Yeah, what's going on?
[12:43] Ralph: How do you play this game?
(You do a "who" command on Ralph's name, and see:)
The nickname "Ralph" is registered to "ralph.gnomes"
[12:44] John: Hold on, I'll join Plunder Gnome and show you how it's played.
[12:44] Ralph: Aren't you already in Plunder Gnome? lol
[12:44] John: Nah, I'm in Artemis, it's a multi-server chat program.
[12:45] *** john.gnomes has connected.
[12:45] john.gnomes: Okay, so let's get started!

Unfortunately, Plunder Gnome is not hooked up to the system just yet, but I am working with a couple other developers to get the system into their games. For instance, Oasiscircle was just asking me yesterday about putting it into Turtle Towers, so we should have a test version of that running pretty soon.

Until then, you can try out the Artemis system by joining Ceres Communications Base. You may even see me linking of the test servers together.

More to come later.

Posted by IainPeregrine on Monday, November 23, 2009 06:04AM - 4 comments / Members say: yea +0, nay -0
(Edited on Monday, November 23, 2009 06:11AM)

Midweek Sessions

Today's session went well. We played Flick.ManoAMano for about three hours, and then several of us played a couple round of BenG.Breakthrough for a little under an hour. Several members continued playing as part of ZMD's event, which our member Calus CoRPS won. We'll be continuing with another session of Mano A Mano next week at the same time.

I'd like to start filling out our schedule with a midweek session. I'm thinking Wednesday evenings (6:00pm EDT, UT-4), but I havn't picked a game yet. Reply here or on the forum if you have a game you'd like to play (or to suggest a different time).

Edit: We've temporarily chosen Plunder Gnome for this Wednesday's session, but I'd still like to hear other ideas. Having two games going can help if the first game starts getting boring.

Posted by IainPeregrine on Sunday, October 18, 2009 07:16PM - 4 comments / Members say: yea +2, nay -1
(Edited on Sunday, October 18, 2009 08:03PM)

Session Sunday

This Sunday, probably around 12pm eastern time (UT-5), the guild will be playing a session. I'm thinking we'll play Flick.ManoAMano, as that's what we've been playing recently. Show up any time around or after 12 and you'll find me (and hopefully others) playing. If you'd like to suggest a different time or game, just reply here. We can even string together a couple different games/times.

PS: If you'd like to donate some time updating the CSS, just comment here or post on the forum.

(Comments restricted to guild members, but guild membership is open to all).

Posted by IainPeregrine on Friday, October 16, 2009 12:53PM - 15 comments / Members say: yea +2, nay -0
(Edited on Friday, October 16, 2009 01:06PM)

Sessions Guild

After talking with some other members while playing various games today, I've decided to bring back the Sessions guild. What is the Sessions guild, you ask?

The purpose of Sessions is to find other people to play games with. There are a lot of us who like to play BYOND games like Flick.ManoAMano or Oasiscircle.TurtleTowers, but when we log in there's no one there. By maintaining a list of good games we want to play, other people who want to play those games, and times when we'll meet up and play them, the Sessions guild will help find you people to play with.

Over the next week or so I'll be reconfiguring the site to reflect its new purpose and changing over the favorites list to reflect the guild members' preferences (instead of being my favorites). For now I've reinstated the Sessions Forum, so you can post there if you have a specific game you'd like to play and optionally a time you'd generally be able to play. You'll need to join the guild before you can do that, though. A word of caution for anyone currently in my guild: If you don't want to be paged with invites to play Acebloke.Exploder (or some other game I'm hosting at the time) then now would be a good time to leave the guild.

Now that I have a server I can host from, I'll host something this Sunday, and I'll probably make that a regular part of the guild.

Posted by IainPeregrine on Tuesday, October 13, 2009 07:48PM - 5 comments / Members say: yea +2, nay -0
(Edited on Wednesday, October 14, 2009 07:06AM)

Realization (Game Design)

Note: This is a post of no particular value to anyone. In other words, it's truly a "blog" post. As such, I've decided not to show it on the front page. Read if you've got 5min you need to kill.

Sometimes I loose track of my own personal history. I don't know if that's something common to most people, or particular to me. I was reminded of something just now while reading a post by Foomer, in a discussion on the developer forum. A large part of that thread focuses on the need for developers to find others willing to work for them, because programmers can't make graphics and artists can't program. The problem lies in the fact that each developer (programmer or artist) is working on their own game, and wants to get someone to work for them, not the other way around. This is a giant issue on BYOND. The good news? Don't look at me, this isn't a post about how to save BYOND, this is me talking about myself, so let's get back on track. Foomer wrote:

You may be bitter about it, but its not true. So not everyone has a talent for programming. Just because someone isn't good at something doesn't mean they can't do it. Look at Theodis. He's an awesome programmer, very talented in that aspect. Can't draw worth beans. He makes stick figures. Does this stop him from making games? No, he makes his games stick figures and all. The reverse is also true. Someone may not be good at programming, but that doesn't stop them from being able to do it. You can get away with a poorly-coded game with awesome design or graphics just as well as you can a very well-coded game with really sad graphics. (Design isn't really optional. A poorly designed game will suck no matter what.)

This got me thinking. People generally consider me to be a good programmer. I'm not. I'm a diligent programmer and I've worked for a very long time to learn the craft, but I don't have any special flair for it like some people do.

People generally consider me to be a good artist, too. In fact, a little while ago when I was hiring myself out as a programmer, several people approached me to do graphic work instead. I've never considered myself a graphic artist, though. My three siblings in art school are the artists, I just make "programmers art" to make my games more lively. Granted, I've spent years honing the craft and picking up techniques, but I have no innate flair for it. I simulate flair by throwing time at something.

So, yeah, by being diligent and spending a lot of time I can create good graphics and good code, but I'm not primarily a graphic artist or a programmer. I'm a game designer, it's an art as complex and noble as any other. I have been one ever since I can remember, and that's also why I'm on BYOND. I just forget that sometimes, like this week as I've been spending every free moment doing graphics for Regressia.

Posted by IainPeregrine on Tuesday, October 06, 2009 03:29PM - 5 comments / Members say: yea +3, nay -0