SpindleyQ's picture

MarMOTS Vision #6 Achieved!

In May of 2009, over 11 years ago, I laid out a vision for a collaborative game-making tool that I wanted to make. I had fond memories of being a kid and sitting in front of a computer with my friends, throwing ideas around and banging out goofy QBasic games, and I was frustrated that there didn't seem to be anything out there that would let have that kind of experience over the internet. The only improvisational game development tools I could get my hands on were decidedly single-user; every attempt I made to collaborate on a single project failed badly. The closest thing I could get was the Pirate Kart experience - everyone doing their own thing and sharing it with everyone else as they finished, and bundling all the results in a single package.

MarMOTS was my answer: a collaborative game creation tool built out of nostalgic textmode graphics, inspired by ZZT but usable by multiple people at once, where every change was live the instant you made it. I wanted to be able to change games while other people were playing them. I wanted making and playing games with it to be a party.

I worked on it fairly steadily for two years, putting it live as soon as there was something interesting, adding features, fixing bugs, responding to the GT community that was using it. In time it became a capable ANSI art and animation creation tool. Goofy collaborations happened. Folks made some incredible art with it, which was amazing and gratifying and kept me motivated to improve it.

Then I burned out on it, life happened, and nine years went by.

In the back of my head, in those nine years, MarMOTS was always there. It was a great idea that I'd gotten _so close_ to making happen. I'd get back to it someday.

In 2009 I laid out a vision, a TODO list, each item flowing naturally from the last, each step being useful on its own, to prevent me from working and working and working and getting stuck, getting lost in my own head and ambitions, and giving up without having anything to show for it. Hard as I tried, I could never push past vision #4; vision #5 turned out to not be necessary or even a particularly good idea, and vision #6... In 2009, I wrote of vision #6: "This is the biggest leap." I got close, implementing a scripting language complete with structured editor, so that the program was always in a runnable state; but the editor never quite became usable, and I never quite worked out how I would connect that piece with the stuff I'd already built.

Today I put live a version of MarMOTS that pretty much does everything I set out to do with vision #6. I pulled back the scope of what I'd tried to do in 2011 from "a full general purpose programming language" to "maybe a minimal Bitsy-like." You can now take an ANSI drawing and add interactive elements to it (in MarMOTS these are called "bots", inspired by MegaZeux's "robots"); as soon as you do, it becomes a game that other people can play. Virtually every change propagates in real-time; if you change a drawing or a script or add a new bot in the editor, all the players will see it. I tried to make the interface as self-explanatory and discoverable as I could - the editor tells you what your options are at every stage, and it's impossible to create a syntax error.

If you decide to mess around with it and have questions or suggestions for cool things to add please let me know! I'll probably keep adding stuff and fixing bugs as the days go on. You can use MarMOTS from your browser with your Glorious Trainwrecks account credentials!

SpindleyQ's picture

Return of MarMOTS?

Hey, remember MarMOTS, the MARvelous Multiplayer Online Telnet Server? (previous MarMOTS blog posts) I don't blame you if you don't, I haven't worked on it in almost a decade. I had this beautiful dream of a ZZT MMO; a realtime collaborative game-making tool, where we all could make cool ANSI art games together. And I managed to get to the part where we could all make cool ANSI art together!

With the various server moves over the years, MarMOTS has been up and down for a while. With the latest server move, I decided I'd dust off the ol' source code and see if I could get it running again. And... I did! MarMOTS is back up, and fully operational! It's also much easier to get running - it no longer requires Stackless Python, having now been ported to use the greenlet package instead. It also now works with a much wider variety of telnet clients than just SyncTerm - I have had reasonable success with Qodem and Netrunner, and I'm planning to see how well fTelnet does with it.

Why should you care if it's easier to get running? Well, I also took the opportunity to finally release the source code. It's now available under the AGPL, which requires anyone who makes changes to it and deploys those changes on a public server make them available from within. MarMOTS belongs to all of us, now.

I'm considering picking it back up and trying to get some simple bitsy-like interactive storytelling tools in there. We'll see how that goes. I have a half-working scripting system that I haven't looked at since 2011...

SpindleyQ's picture

MarMOTS Vision #4 Achieved!


Lots of good stuff in this latest update! Try it out!

  1. Project support! This is an important step to keeping all of the drawings for a particular game together.
  2. ANSI animation editing! You can now create a second type of drawing, called a "sprite", which is a small animation. It's still a bit rough, but it's already buckets of fun.
  3. Smiley faces! Because they work with SyncTERM, and I'm long past caring whether this stuff works with clients that aren't SyncTERM.
  4. Some small usability improvements in the drawing selection lobby.
SpindleyQ's picture

Oh No, More MarMOTS!

Work continues!

When I last made a MarMOTS post, I was working on starting to make my scripting language do useful stuff. Well, it quickly became apparent that in order to make my scripting language do anything interesting, I had to have entities on the screen to refer to. So I've got project support working now, and am currently building an ANSI sprite animation editor! This is going to be the biggest and coolest addition to MarMOTS in almost two years. I'm hoping to get something out next week, but we'll see.

On the scripting front, I have written a simple VM for the scripts to run on, and verified that, yes, my scripts actually run and do what they're supposed to. One of the interesting features of my scripting language is that it is intended to be LIVE, all of the time. The idea is that you can edit a script that is in the middle of running and the program will actually continue to function correctly, incorporating your changes immediately. One way that I'm able to do this is by stealing the notion of failed calculations from an obscure language called Icon. (Actually, reading that now, I may want to steal more ideas from it :) Basically, if you're editing a script and have a logic bug or even a syntax error, no big deal -- it's just a failed calculation, it gets logged, and your program continues to run. No game-killing exceptions, ever. I believe that it's much better for a designer to be able to see a failure happen, and have as much information as possible about the actual problem as it occurs during play, than to be told "the computer can see this will never work! You aren't allowed to run this program."

I have ambitions.

SpindleyQ's picture

MarMOTS update

So now that Game Maker is $40 and Construct 2 will eventually be $65, I've found myself turning back to MarMOTS and wondering what it would take to get it into shape as a game-making tool.

My first focus has been getting my scripting language / editor into shape. I lump the two together because the scripting language, while textual, is never parsed from free text; instead, the user is edits the source tree directly using a friendly structured editor, with lots of autocomplete help, and in which it is literally impossible to forget a semicolon or a closing parenthesis. For power users, it should be as fast or faster to type in programs with this editor than with a text editor, and yet newbies will still be able to discover all of their options in a nicely readable self-describing English syntax.

So over the past couple of weeks I have torn apart my previous attempt at this language and rebuilt it. I've arrived at the point where I can type in any programs I like, and add features to the language without much effort. The UI is still pretty painful to use at this point, but that's mostly because I haven't focussed on improving the interaction at all besides making sure auto-complete is usable.

I was thinking I should maybe do like a screencast or something, but the scripts don't DO anything yet. I'm thinking that the next step will be to start integrating the scripting language with ANSI layouts that I draw in MarMOTS. I'm pretty excited to start hacking on that stuff! You should be too.

SpindleyQ's picture

Project updates

  1. MarMOTS! I've just pushed an update to the server that keeps the chat logs around after everyone leaves the room. In fact, now, for the first time, it even keeps the chat logs around even after I update the server. I missed those chatlogs, a lot. Probably next I'm going to make some tweaks to not have every drawing in memory all the time.
  2. Kliffy! This is the engine I built to build Richard and Larry Build A Time Machine, and I guess it has a webpage now and some source code released. Look, if you're interested!
  3. KlikPunk! Uhh no news on that front but I did discover that Gleed2D does like most of what I wanted to do, I think? It does have the annoying quality that it squishes graphics so that the size is a multiple of 256, which is just baffling really.

I've also been doing some non-gamey stuff (a Boxee app that launches games and has a not-entirely-stupid way of building the list, an experiment with Twilio's SMS-sending capabilities to bug me about stuff) but I guess I don't have as much to say about it as I thought?

SpindleyQ's picture

MarMOTS update: still alive!

Now that the Pirate Kart II is finally out in the world, I've been able to find time once again for MarMOTS; the greatest telnet-based collaborative ANSI art editor and game engine EVER WRITTEN!

I'm still super-excited about MarMOTS even though there are so few people using it (basically me and qrleon, and I don't ever draw anything). And I've decided it's high time to start letting people make stuff besides pictures. Thus I have begun the implementation and design of the scripting language* and its editor! No screenshots yet, unfortunately, but rest assured I'm plugging away. If you have any ideas for textmode games that you might be interested in building in MarMOTS, please feel free to talk about them in the comments and I can make sure that the language comfortably supports your use.

In the meantime, I've deployed a new version of MarMOTS that features line wrapping in more places, like text entry, and "buttons". No more typing off the edge of the screen when chatting, or worrying about making a picture whose name is too long!

* possible names for the scripting language (please vote or supply more suggestions in the comments):

  1. MarMOTScript (tm)
  2. Marmota (the proper name of the genus of Marmots)
  3. Groundhog (the groundhog being a type of marmot, also makes me think of the movie Groundhog Day, which is a plus)
  4. Monax (the groundhog's proper name is Marmota Monax, kind of sounds like "monad", but way more metal -- maybe "Monäx"?)

SpindleyQ's picture

MarMOTS Vision #3 Achieved!

Just deployed a great big delicious update!

  1. Edit pictures with layers!
  2. Fast cursor movement with Home/End/PgUp/PgDn!
  3. ANSI algorithms rewritten using Cython for MASSIVE SPEED BOOST!
  4. See when pictures were last modified!
  5. I think saved ANSI might not look like shit under OS X anymore?
  6. Probably some other little nice things!
  7. Bullet points!

I just moved a week ago, and I have a good hour every day on the bus to work on MarMOTS now. I cannot stress enough how awesome that is, and how much more progress you're all going to see because of it.

SpindleyQ's picture

MarMOTS Vision #1 Nearly Attained!

MarMOTS is back up, and more awesome than ever.

For reference, here is my 8-part vision. The only difference between the server that is now live and Vision #1 is that the current system is still missing a chatbox. That will not be hard. I'm also hoping to get bright colours up and running soon; have to run some experiments still. Smiley face support is unfortunately absent.

The current whiteboard-specific code is about 250 lines of Python; the whole server / framework is about 1400 lines. I love you, Stackless and Twisted.

Syndicate content