HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Hey all! As I'm sure many of you know by now, for the past month and a half I've been working on creating a small but powerful MUD engine that's specifically targeted at making non-D&D style MUDs. MITE stands for "MUD In The Eyes" (or "MITE Interactive Text Engine" -- pick your favorite). "Mud in the eyes" is a reference to Jesus opening the eyes of the blind. Currently we're at about 2000 lines of code (including comments and lots of line breaks), so we're keeping everything very compact. All of the game play is handled with scripts, which are stored in the database, and dynamically compiled when needed and cached for later execution. It is written in C#, and scripts can be written in either C# or Boo. It is small, fast, and offers many opportunities for having an extremely customized MUD. Over the weekend, among other things, I added an IDE so that scripts could be edited and compiled much more easily. Here is a screenshot of the IDE that shows the server running on the very bottom, then the IDE with the "get" script displayed, and then on top is a Telnet session that shows the "get" script in action. Adam Miller, if you're reading this, I've still got all the love for TigerMUD, I just needed a code base that I could more easily customize, and things like the spell system seemed fairly hard-coded in there. That's why I decided to create MITE. So just wanted to give everyone an update, that the engine is progressing nicely, and is already at a state where I think playable MUDs could be created. In Christ, ------------------ (fixed the screenshot link) [This message has been edited by HanClinto (edited July 25, 2005).] |
|||
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
Hey nice to hear that you said non-D&D because we already have many of that type. I couldn't view the screenshots at this time because there was some group error... But anyway. Interesting scripting language choise that boo, how's it like? Similar to C#? Ironically that reminds what one character (minsc) in game called baldurs gate says, since you named this Mud in the eyes. "Go for the eyes Boo" Would be great to see something educational made using MITE. God bless. ------------------
[This message has been edited by Jari (edited July 25, 2005).] |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote:
There are already several great MUD engines out there for people looking to make standard D&D style MUDs (TigerMUD is one of them that has already been mentioned several times). For some Christians who want to make other types of MUDs (for instance, perhaps a Narnia MUD that doesn't have a built-in spell system for the players to use), options are much more limited. So MITE aims to be a small, powerful engine that lets people get up and running creating scripts and seeing what they do rapidly. It's interesting that you said you'd like to see what an educational tool would look like in MITE -- I've been thinking with the scripting capabilities of the engine, it might be kindof cool to have MITE be able to teach people programming with C# and Boo and possibly other languages (such as VB.Net -- really any .NET enabled language). Boo is actually radically different from C# -- it tries to be closer to Python than C#. Here is a page illustrating the differences between Boo and C# Cheers! In Christ, ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
Hey I have a question, MUDs are online right? I like the engine, good job.. ------------------ |
|||
HeardTheWord![]() Member Posts: 224 From: Des Moines, IA Registered: 08-16-2004 |
Yes, a MUD is an online text adventure. What I think is really nice about HanClinto's project is that you can take the demo and build a game. This is still in its baby stages but what HanClinto has accomplished is incredible. I've helped a bit with the networking side of things, and am currently working on dynamic text layouts. Also, there should be color in the next demo among other cool additions. I know HanClinto is trying to keep everything simple so even a novice could pick this up and do something amazing with it. Although it's not quite there yet, MITE is quite powerful in the right hands. [This message has been edited by HeardTheWord (edited July 25, 2005).] |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
Wow, thats cool *downlaods* ------------------ |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
Boo? Boo-who?! Just another language that will go nowhere. |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Hey Seven7! Thanks for your reply. Knock knock. Who's there? Boo.
quote: Oh please don't cry! Sorry, bad knock-knock joke from my childhood.
quote: It's a pretty popular scripting language for .NET and Mono. Basically I chose Boo because I know more people using Boo than IronPython (or PythonNet), and it was an easy thing to implement. I had requests from people using my engine for me to add something easier to use than C#, so I looked at Boo, asked my users what they thought, they replied enthusiastically, and so I acted on it. I added Boo was because it was requested -- if you are a Lua.NET user and would like me to add support for that, hey, sure, no problem. I aim to please. And Boo may be new, but it's not exactly an unknown language. Boo has an addin for Sharpdevelop, has Debian packages, and is listed as third in the list of Mono-compatible languages.
quote: The great thing about the way I've designed the scripting system for MITE is that it can generically use any scripting interface that provides an interface for .NET. So you want IronPython? Sure! It might take me all of an hour to add it and do some basic testing with my game engine. Basically, all you have to do is implement a small class that takes in code and returns a valid .NET assembly, and you can easily add new languages to MITE.
Respectfully, ------------------ |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
Okay far enough, but I think you've missed my point, although not a clear one. Game developers like to stay with a language that is stable and has been around the block a few times. "Boo" is just another one of those obscure language which you'll problably wont see in the gaming community. I've been in the gaming industry for almost 13 years now, and not one of the companies that I'm familiar with have used it for scripting. (It's actually kinda of a pointless languages anyway.) Adding layers of script complexity to an engine just to make it more easyer for people to use is a brain swell. I wish I could do that, but I'd never get that vacation time!
quote: Lua.NET?! No such thing. You can use Lua *IN* a .NET environment but to say there is a language called "Lua.NET" is nonsense. Lua is not a Microsoft product, .NET is. I'm assuming its a type-o. Now you've peeked my curiosity, I'd kinda like to see this "script engine" J. |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote: Okay, granted, it's not a language that's in popular use in the game industry, but in the open source Mono/.Net community, it's got a decent following. That's where more of my background is, so that's naturally what I drew upon when creating this game engine. Thanks for your words of experience -- it's something I don't have, and something which I really need. Do you have a suggestion for what language I should add support for in my game engine in order to help it gain acceptance? Most other MUD engines I've seen either use straight C or have a proprietary scripting language (done with yacc or something).
quote: Not really a typo, no. Generally, when there are things called "SomeLanguage.NET", it doesn't mean it's a separate language, but rather that it's a 3rd-party binding to the CLI (common language interface). So that's what I'm talking about when I refer to Lua.NET. (note: when I wrote my previous post, I didn't know there was a binding called Lua.NET -- I just guessed, and I happened to be right. For an extensive list of languages that have bindings to the CLI, here is a decent list)
quote: Thanks for your interest! It's really not that impressive -- my whole "scripting engine" is seriously under 100 lines of code for each language (and not complex code either). I just use the existing code compilers that come from Microsoft or other groups (such as Boo). Currently all of this scripting integration is only for my own MUD game engine. I simply use a nice feature of .NET called the Code Dom to compile code (scripts that are stored in the database) at runtime into DLL's that I store in memory, then I reference those DLL's and call the methods in there for my scripts. This makes it really nice, because all of my engine code (such as managing the database and network connections) is in the base code of the engine, and all of the code that manages gameplay (such as verb actions or other such things) are all handled by scripts. When scripts change, they are recompiled and take immediate effect in the game (makes it really easy to tweak gameplay on the fly). It's pretty fast (the current slow point from my profiling is the database, not the script compilation/invokation), and it's really easy to maintain (the code to compile C# code or Boo code is under 20 lines of code). Here is an example of how to add embedded Boo scripting to your .NET/Mono program. If you're interested in taking a look at the code of the game engine, I'd be happy to e-mail you a copy. It's not open-sourced, but I'm not going to sell it or make money off of it, and would be happy to share some of the programming things I've learned. If you're interested, drop me a line at hanclinto at gmail. Thanks for talking Seven7! I'm very open to critique, and I appreciate you giving me feedback. Respectfully, ------------------ |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
Hey, I can't suggest any language for your engine other than the ones I pointed As far as the "Lua.NET" thing, fair enough. I just wanted to be sure Hummm... can I say anything nice about Yacc and Lex?
|
|||
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
quote: I noticed this when I tested the demo you had posted in show case. But why is it so slow? I don't know much about MS access databases but I think you have three reading options/solutions for the database which can make a difference in speed. If you are unaware of this I can get you more info. ------------------
|
|||
kiwee![]() Member Posts: 578 From: oxfordshire, england Registered: 04-17-2004 |
looking nice ![]() ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote:
Thanks for the feedback. As far as that demo goes, if you download the latest version from the showcase, it should be much increased in speed. However, we'll be releasing a new tech demo soon, so you can just wait for that. We'll have a bunch of stuff added, including the new scripting IDE (where you can compile and debug scripts). Currently we're using ODBC for the database access, which I'm pretty sure is why it's so slow. I would go to ADO.Net, but I want it to be compatible with Mono (and Microsoft has a blocking patent on ADO.Net). I'll be switching to SQL Lite before release, so that should let us have faster schtuff too. Thanks! --clint ------------------ |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
HanClinto,
quote: Good idea!! J. |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
When I run MITE, it just says running..and won't let me type. I can't open the IDE or anything ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
To run the IDE, you need to run it with the command line option -i. So for instance, go to Start->Run->Browse, then find the MITE.exe. Then after you click "open", at the very end of that line, it should something like:
Change it to be
by just adding a " -i" to the end. Then in order to play around in the world, you need to telnet into it. Go to Start->Run again, and type in
And you will log into your local MITE server (provided you're not being blocked by a firewall). --clint ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
I get this error
Why? ------------------ [This message has been edited by en972 (edited August 04, 2005).] |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
At what point to you get that error? Does it tell you what the exception is? (such as SystemNullReferenceException)? --clint ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
Nope, how do I fix this? ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
At what point do you get the error? I guess I'm not clear on exactly what's transpiring when the error takes place. It works for me, and for everyone else on the development team. ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
After I press run with the -i the command prompt pops up along with a window that gives me that error ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Is that the error message in its entirety? But if you run it without the ide, you don't get that error? ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
Uh...I didnt try to run without the IDE. ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
What do you get if you *do* try to run it without the IDE? (just run it normally) -- I'm trying to figure out where the error is, and I need more information. ![]() --clint ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
If I run it normally I get just the regular command promp that says MITE, and say Runing... If I try to run the telnet or IDE I get an error. ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
So you run the server, it says "Running on port 31777" or something like that, then you try to telnet into it, then it gives you what error? Is it different than the error you get when you try to start the IDE? ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
No, same error ------------------ |
|||
MastaLlama![]() Member Posts: 671 From: Houston, TX USA Registered: 08-10-2005 |
where can i download MITE? thanks, ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Currently there are tech demos available in the "files" area of the Yahoo Group for MITE. However, I just stayed up 'till 2:30 AM last night getting a new tech demo ready, I can e-mail you a preview of it if you like. Here are some screenshots from the new IDE that just got fully working last night: E-mail me at hanclinto at gmail (dot com) if you're interested in checking out the new version. Cheers! --clint ------------------ |
|||
MastaLlama![]() Member Posts: 671 From: Houston, TX USA Registered: 08-10-2005 |
*drool* dang, i'm super duper impressed by these screenshots! i just emailed you! thanks, ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Okay, new demo is released in the showcase area. I look forward to people trying it out! Documentation is still thin at the moment, I'm working on it! We'll have several tutorial servers that illustrate the engine to people as we go along. --clint ------------------ |
|||
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
Hi Clint. I'm just testing the game and it looks great! It was nice surprise to see that you have made an IDE too. Though I don't quite get the logic behind the tree view when there is "Add room" and under that is another "add room". And I don't know is this a bug or not but I typed whoami and it displayed the info but when then I decided to type whoami again it didn't display the info any more. Also if you type some command that doesn't exist you don't get any error message. But you probably knew all that. Well I better try to learn more about the IDE before I say anything else. God bless. ------------------ And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17 |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Hey Jari! Thanks for the feedback! You weren't the only one confused by the verbs/scripts screen, so after reading your post, I took a screenshot, and added a few captions to explain it a little bit. If you want, check it out here! It's in PNG format, so it's a little big, but if I went to JPG it was too grainy. The short of it is that "scripts" are things that the server can execute, and "verbs" are the first words that users type in a command. So when a user types "get hairbrush", "get" is the verb. Not all scripts are intended to be run as user commands, some are just utility-scripts (like subroutines), that perform actions, such as "FIND_OBJECT_IN_ROOM" is used to locate target objects, and return them to a calling script. So verbs point to scripts, and I wanted to make an easy way to see what scripts were in the database, along with what verbs point to them (that's the "View By Scripts" section. I also wanted to be able to see what commands are available to the users, and what scripts they point to (that's the "View By Verbs" section). So in the Verbs/scripts tab, the button on the left ("Delete Script") applies to scripts, while the 3 buttons on the right apply to verbs (sorry, I know this was confusing, I'll add tooltips and better organization and stuff for the next version). Similarly, in the objects/attributes tab, the buttons on the left apply to objects, the buttons on the right apply to attributes. I hope that helps! Respectfully, ------------------ |
|||
en972![]() Member Posts: 562 From: NOT TELLING! Registered: 08-27-2004 |
Hey, That explained alot for me as well. Though I have a question. Is there going to be documentation on learning boo? I know the boo website has tutorials but I'm just curious if you will add them into your documentation. ------------------ |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Not sure if I'll do tutorials on Boo for the Alpha -- if I have time, I'll try to make a small sample database that uses Boo exclusively. Most of the scripting I do is in C# just because I'm more comfortable there, but I'd like to be supportive of Boo and other languages as well. Work on MITE is progressing nicely, PTL! Here's a new screenshot showing off a new sample database that I started from scratch last night. This sample will be included in the alpha release that is coming this Friday. Stay tuned! Many bug fixes and a couple of IDE improvements have already been included since the pre-alpha release -- if you have feedback and suggestions, now's the time to get them in! --clint ------------------ |
|||
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
Hey, that helps a lot, thanks! One note though about the script creation; when I pressed the new script button and the view was changed to script editor tab, I went changing the script id using the arrow keys and when I compiled the script it wasn't saved, at least not under that script id, which was currently displayed. I hope that made sense. ------------------ And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17 |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
I took a brief look at the scripting your using for "MITE", how are you parsing your scripts? I'm assuming you've made your own script language and you wrote your own parser? Also, how is SQL lite working out for you? Did you change? Jim. |
|||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Hey guys! Thanks for the replies!
quote: Yes, I think that makes sense. ScriptID is an autonumber field, so you can't "assign" it per-say -- when creating a new script, leave the scriptID to be 0, then save and compile it, and it will assign it a new autonumber. Wow, thanks for pointing out to me just how counter-intuitive that is. Thanks!
quote: One of the reasons I chose C# was so that I could use as much stuff built-into the language as possible. I'm using something called the CodeDOM to compile the code -- the scripting language is actually C# or Boo (another .NET language), and I compile it just the way Visual Studio compiles C# code -- by accessing the appropriate class and compiling. It's very slick and clean, though it can be memory intensive at times. However, it compiles it to memory just like any other executable -- it's pretty nice. So no, I didn't write my own parser -- one just uses C# or Boo directly.
quote: Haven't changed over to SQL Lite yet -- though I'm looking forward to being away from Microsoft Access -- I'm still getting functionality put into the engine design before I switch over to SQL Lite. I think SQL Lite is a beta feature (and alpha is this Friday). Thanks for the replies! ------------------ |
|||
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
I'm not much of a C-Sharp (C-Dull) guy. I've played with it, but never had much of a use for it. Its been years since I've done any MUD games. My first game was a MUD engine back in the days were Dungeons and Dragons was starting to be developed on computers. I(we) used Perl as a script to handle game play. Its amazing how far developers have gott'en! I think I'll have to study the script better and 'get a feel' for what your doing.
quote: I'll bring over the Holy water. |
|||
riflefire Member Posts: 57 From: Registered: 08-25-2003 |
Hey Everyone, The current version of the MITE engine Demo Game is now running as close to 24/7 as i can manage. (Note: the system may be down from time to time due to upgrades and due to weather or attempts to fix crashes! Usually the Demo will be back up within 10 mins of a crash, so try back in approximately 10 minutes. (This is if my crash detector works right!)) If your using basic Telnet via a DOS prompt window or XP's command prompt window, type: TELNET riflefire.net 31777 IF your using something like ZMUD, then the settings are HOST: RIFLEFIRE.NET and PORT: 31777 Please remember that this is a work in progress demo game. So lots of features are not yet in the demo game. An remember: VERSION 1.0-Alpha is due out this FRIDAY! Soon as i get it from Clint, it will be up. Also, remember to type QUIT to leave the demo game or your character will stay in the game visible for all to see and interact with, even if your not there! RF |
|||
riflefire Member Posts: 57 From: Registered: 08-25-2003 |
Btw, I am updating the files in the DEMO mud every time Clint has any new stuff for it. So thats why you have to keep signing up. Its a new database being installed each new version instead of me going in and installing the new material. Its just easier to overwrite with the updated copy. Keep coming back and taking a look as it grows. Thanks, RifleFire [This message has been edited by riflefire (edited August 24, 2005).] |