Getting Textual?
by Derek Kittrell · in Torque Game Builder · 04/21/2005 (4:05 pm) · 13 replies
I was brainstorming earlier trying to think of an original idea and I think I have something that is at least interesting. In the spirit of "old school" gaming, I was thinking that it's about time text gaming made a comeback. Some of you may be familiar with MUDs (typically stands for Multi User Dungeon), some may be familiar with single player text adventures, like Zork, but unless you missed the early PC gaming scene entirely, you have probably experienced some form of text game.
A lot of people think that text gaming is dead, and while it is often difficult to convince someone to play a text game for the first time now that graphics are such an important aspect of games, there is a very active text gaming community. People say 2D gaming is dead, but here we are. There will always be interest in all types of gamesnostalgia alone gets countless people to play old video games (though it helps if they're fun!)
If you want to make an online text game, there are many existing code bases that can be built upon, but there are several problems with this. For one, many of the games that build upon an existing game wind up feeling like the exact same thing as the original. Also, MUD servers are typically Linux only. There are, of course, exceptions to this, but the majority of popular code bases to support Windows (or other platforms) only do so through a quick hack to get things "working."
My goal is to create a resource that would allow Torque users to easily create their own textual world. The benefit of using Torque would be having cross-platform support, and also the power of TorqueScript driving the game.
The main features I would like to include for designers would be a graphical mapper, which would allow users to easily implement rooms and entire areas with a few clicks of the mouse, and a linked object manager, which would allow the editing of all types objects, from the player object, to rooms, and even the weapons, armor, and various items that may a part of your story.
As for the coding side, my goal there is to create a very simple framework that will allow a coder to expand upon the base in any way they choose. The idea is not to force a designer into a specific style of game, but to provide the tools necessary to shape their own vision.
This would essentially mean providing the functions that are common in all text games. Printing to the player, printing to all connected users, printing to a specific group of users, action definitions, object scope, input handling ... things of that nature. I feel that taking care of some of the more mundane aspects of coding while still offering the flexibility to do whatever you please is really important.
The server would have to communicate with a telnet client (I know Torque is already capable of doing this, I just don't know what all would need to be modified for what I have in mind) and in addition, would act as a web host, to allow players to view information from the game itself on the game's website.
I am not incredibly experienced with Torque quite yet, so I don't know if there are limitations or difficulties that I am overlooking, but nothing screamed out at me when I started thinking about how to achieve this. I'd be very interested to hear what people think about this, whether it be questions, comments, tips, or anything at all.
I think I may have gone on longer than I anticipated, but I am rather passionate about text games, I suppose. I guess I mostly want to see how people would feel about such a tool, and also anyone can think of any reasons why this wouldn't work (or work well).
For those of you who were not intimidated, thanks for taking the time to read this post,
Derek
A lot of people think that text gaming is dead, and while it is often difficult to convince someone to play a text game for the first time now that graphics are such an important aspect of games, there is a very active text gaming community. People say 2D gaming is dead, but here we are. There will always be interest in all types of gamesnostalgia alone gets countless people to play old video games (though it helps if they're fun!)
If you want to make an online text game, there are many existing code bases that can be built upon, but there are several problems with this. For one, many of the games that build upon an existing game wind up feeling like the exact same thing as the original. Also, MUD servers are typically Linux only. There are, of course, exceptions to this, but the majority of popular code bases to support Windows (or other platforms) only do so through a quick hack to get things "working."
My goal is to create a resource that would allow Torque users to easily create their own textual world. The benefit of using Torque would be having cross-platform support, and also the power of TorqueScript driving the game.
The main features I would like to include for designers would be a graphical mapper, which would allow users to easily implement rooms and entire areas with a few clicks of the mouse, and a linked object manager, which would allow the editing of all types objects, from the player object, to rooms, and even the weapons, armor, and various items that may a part of your story.
As for the coding side, my goal there is to create a very simple framework that will allow a coder to expand upon the base in any way they choose. The idea is not to force a designer into a specific style of game, but to provide the tools necessary to shape their own vision.
This would essentially mean providing the functions that are common in all text games. Printing to the player, printing to all connected users, printing to a specific group of users, action definitions, object scope, input handling ... things of that nature. I feel that taking care of some of the more mundane aspects of coding while still offering the flexibility to do whatever you please is really important.
The server would have to communicate with a telnet client (I know Torque is already capable of doing this, I just don't know what all would need to be modified for what I have in mind) and in addition, would act as a web host, to allow players to view information from the game itself on the game's website.
I am not incredibly experienced with Torque quite yet, so I don't know if there are limitations or difficulties that I am overlooking, but nothing screamed out at me when I started thinking about how to achieve this. I'd be very interested to hear what people think about this, whether it be questions, comments, tips, or anything at all.
I think I may have gone on longer than I anticipated, but I am rather passionate about text games, I suppose. I guess I mostly want to see how people would feel about such a tool, and also anyone can think of any reasons why this wouldn't work (or work well).
For those of you who were not intimidated, thanks for taking the time to read this post,
Derek
About the author
#2
Something I goofed off doing last year ;)
What you're wanting to do could be done with TGE just as easily as T2D as you're really not going anything other then the basic GUI for display.
As for the backend, you have a couple choices.
1. Native Torque Client / Server
2. Telnet using TCPObject
3. HTTP using TCPObject / HTTPObject
For all three items you have the option to use either Torque or a Custom server as your backend host.
For #2 you should be aware that TCPObject is a strictly text based interface, it does not support enhanced character sets such as ANSI or anything else with color, or Cursor Control. So connecting to a standard MUD may not be possible.
John V.'s Chat Client / Server written in TorqueScript is also a good place to look for ideas on starting.
04/21/2005 (5:48 pm)
www.garagegames.com/blogs/32/5519Something I goofed off doing last year ;)
What you're wanting to do could be done with TGE just as easily as T2D as you're really not going anything other then the basic GUI for display.
As for the backend, you have a couple choices.
1. Native Torque Client / Server
2. Telnet using TCPObject
3. HTTP using TCPObject / HTTPObject
For all three items you have the option to use either Torque or a Custom server as your backend host.
For #2 you should be aware that TCPObject is a strictly text based interface, it does not support enhanced character sets such as ANSI or anything else with color, or Cursor Control. So connecting to a standard MUD may not be possible.
John V.'s Chat Client / Server written in TorqueScript is also a good place to look for ideas on starting.
#3
04/21/2005 (6:21 pm)
The more old school meets high tech the better.
#4
TCP/IP is a communication protocol, and is fully implemented. ANSI, HTTP, XML, etc. are data protocols, and are implemented "on top of" (or more accurately, within) communications protocols.
For what it's worth, you can think of a data protocol implementation as parallel to a "text shader" if that helps any--data protocol implementations happen on the way between your socket and your application's use of the data, and aren't all that difficult if you understand the protocol.
ANSI implementation for example (specifically, color codes and cursor positioning) aren't hard to map at all--you simply need to have a mechanism for changing an ANSI color code to a Torque font tag, and implement callbacks to handle whichever cursor positioning you may want to use.
The reason I say this is that I have about 4 years of dedicated experience working with MUDS, and have actually implemented an HTML tag wrapper for an old code base that was designed to use the "Pueblo Mud Client", which was an html instead of ANSI telnet client. It was pretty neat--you could redirect text output to various windows in the client, implement hotlinks and a lot of other functionality, etc. T2D (and even T3D, although why you'd want that I'm not honestly sure) would make an excellent MUD/MOO/MUSH client development application, but it would require a strong refactoring of the data protocols used--you'd basically need to design your own, or implement a full HTML/XML protocol to get the most out of it.
04/22/2005 (3:43 am)
Just to clarify a relatively minor point for those that may not fully understand TCP/IP vs ANSI vs HTTP vs whatever:TCP/IP is a communication protocol, and is fully implemented. ANSI, HTTP, XML, etc. are data protocols, and are implemented "on top of" (or more accurately, within) communications protocols.
For what it's worth, you can think of a data protocol implementation as parallel to a "text shader" if that helps any--data protocol implementations happen on the way between your socket and your application's use of the data, and aren't all that difficult if you understand the protocol.
ANSI implementation for example (specifically, color codes and cursor positioning) aren't hard to map at all--you simply need to have a mechanism for changing an ANSI color code to a Torque font tag, and implement callbacks to handle whichever cursor positioning you may want to use.
The reason I say this is that I have about 4 years of dedicated experience working with MUDS, and have actually implemented an HTML tag wrapper for an old code base that was designed to use the "Pueblo Mud Client", which was an html instead of ANSI telnet client. It was pretty neat--you could redirect text output to various windows in the client, implement hotlinks and a lot of other functionality, etc. T2D (and even T3D, although why you'd want that I'm not honestly sure) would make an excellent MUD/MOO/MUSH client development application, but it would require a strong refactoring of the data protocols used--you'd basically need to design your own, or implement a full HTML/XML protocol to get the most out of it.
#5
04/22/2005 (5:03 am)
Zork was the first computer game I ever played. Its what turned me on to computer programming. Then I played HACK in High School when everyone else was playing Atari and Nintendo games. I never played an online MUD, but I'll still be following this topic with great interest.//This space intentionally left blank
#6
Nonetheless, TGE and/or T2D makes a good platform for this, in particular because you can enhance the experience on the client side from just a raw mud client / telnet experience by adding graphics, nice HUDs, etc.
04/22/2005 (4:06 pm)
FWIW, as a long time (15+ years) MUD Imp, I've prototyped a few MUD servers with TGE .... works quite well. I was considering porting an existing MUD to one of them, but frankly lost interest.Nonetheless, TGE and/or T2D makes a good platform for this, in particular because you can enhance the experience on the client side from just a raw mud client / telnet experience by adding graphics, nice HUDs, etc.
#7
04/22/2005 (5:58 pm)
Stephen I know I generalised things a bit... on the tcpObject not supporting enhanced character sets, I know I had problems getting a response from a MUD server using tcpObject as the communications method. I'll see about testing it again.
#8
On that topic, I've also seen a very large portion of even commercial applications that supposedly implement "TCP/IP", but do it in strange ways...and tend to ignore some small but critical aspects of the RFC.
04/23/2005 (3:49 pm)
@Harold: Happen to remember which MUD code base you were using? I've seen some wonky stuff added in to some of the codebases over the years that "work", but tended to break the true TCP/IP RPC implementation. On that topic, I've also seen a very large portion of even commercial applications that supposedly implement "TCP/IP", but do it in strange ways...and tend to ignore some small but critical aspects of the RFC.
#9
04/23/2005 (6:08 pm)
I used the stock TGE tcpobject stuff to connect to TinyMU* and Diku derivitives, fwiw
#10
Just did a test with connecting to smaug (realms.game.org:4000) I get the splash screen but the line telling you to enter your name or type new to start a new character doesn't come through until I send a command...
04/23/2005 (6:22 pm)
It was a couple years ago... I can't remember what exactly I tried connecting to, but it wouldn't communicate correctly at the time ;)Just did a test with connecting to smaug (realms.game.org:4000) I get the splash screen but the line telling you to enter your name or type new to start a new character doesn't come through until I send a command...
#11
The down side to it, is that although its free for personal or non-commercial use, the commercial license is a whole other ball game (6 figures the last I checked).
The beuty of the original text based muds is that they truely were cross platform. So long as your platform had a telnet client you were good to go. I've played (and still do) many a mud on my windows pc, linux, palmOS etc. If you used torque however you'd be limiting yourself to 3 platforms (admitably 3 of the major platforms :P) but you still miss out on handhelds and mobiles that have telnet clients.
That said, if you found a way of supporting both true telnet based connections on one port, and then an enhanced mode which could use T2D for a few extra graphical tweaks, it would be worth doing :) Hell its probably worth doing just to see how it turns out :P
04/24/2005 (3:07 am)
I know this is not torque related, but it is mud related :P Theres a mud driver known as DGD which is very advanced, its used by Skotos for their online games. It doesn't ship with any stock worlds, everything needs building from scratch (although a few mudlibs are been developed such as phantasmal and a few others). BTW I definatly recommend anyone working on a mud to go read the articles the skotos dev team post about their designs/ideas/pitfalls/solutions etc.The down side to it, is that although its free for personal or non-commercial use, the commercial license is a whole other ball game (6 figures the last I checked).
The beuty of the original text based muds is that they truely were cross platform. So long as your platform had a telnet client you were good to go. I've played (and still do) many a mud on my windows pc, linux, palmOS etc. If you used torque however you'd be limiting yourself to 3 platforms (admitably 3 of the major platforms :P) but you still miss out on handhelds and mobiles that have telnet clients.
That said, if you found a way of supporting both true telnet based connections on one port, and then an enhanced mode which could use T2D for a few extra graphical tweaks, it would be worth doing :) Hell its probably worth doing just to see how it turns out :P
#12
I'll try to post about my progress and will more than likely ask for advice.. heh heh..
If anyone is interested in discussing this project, feel free to drop me an email. It should be public now.
04/27/2005 (2:03 pm)
I wanted to thank everyone for posting on this topic. I have been busy moving so I have not had time to respond, but I have been thinking a lot about this idea. I am currently working on planning out all of the necessary features and will probably be doing that for a while before I start my initial testing. I'm still not entirely sure how I want everything to work, but I am pretty sure I want to use Torque for the game server as well as the development tool and the players will connect via their favorite telnet client. I do think ANSI support is necessary, so I will have to do some research into that. Also, I want to allow connections through Torque which would allow developers to use all the tools I have in mind remotely. I haven't really figured out how I want to do everything, but those are a few things that I think are important to my idea. Another thought I had was to disassemble the tile editor and use a dumbed down version of that as the mapper--I think it would work rather nicely with the right controls in place.I'll try to post about my progress and will more than likely ask for advice.. heh heh..
If anyone is interested in discussing this project, feel free to drop me an email. It should be public now.
#13
Actually, now that I think about it, TNL could be a very good solution for networked interactive fiction. Something like a playable alt.dragons.inn with MUD/MUSH roots. Perhaps and EAMON clone...
04/27/2005 (2:09 pm)
I was playing with TorqueScript to create Beyond Torque, a Beyond Zork clone. Those were good times. I should pull that back out at some time. It was the automapping code that was screwing me up. T2D would make that a cinch now!Actually, now that I think about it, TNL could be a very good solution for networked interactive fiction. Something like a playable alt.dragons.inn with MUD/MUSH roots. Perhaps and EAMON clone...
Torque 3D Owner Stephen Zepp