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.

SpindleyQ's picture

MarMOTS update #2

hax0r is ported, and runs! It even drops the telnet connection when you hit the "NO CARRIER" point. Are you excited? I'm fucking excited.

Bugs I don't understand:

  1. Weird character on the upper-left corner
  2. Enter key does not work in SyncTerm or flashterm, only PuTTY

In other news, did you know you can send money to Tim Sweeny's father and have him send you a disk with the registered version of ZZT on it? Or that ZZT is not pronounced, "Zed zed tee" (or "Zee zee tee" for you heretic Americans), but "Zzt", like a sound effect? Now you do!

SpindleyQ's picture

MarMOTS update

Integrating my stackless python game engine is progressing smoothly, though it's turned out to be a little bit more work than I had initially bargained for.

Big change #1 is that the game loop no longer runs as fast as possible; rather it only runs in response to external events (keypresses + timers). Obviously, since I'm going to be running this thing on a server that I share with a couple hundred other people, using 100% CPU all of the time is not the best way to go. It's actually kind of bugged me for a long while that the engine did that, so it's nice to have a fix.

Big change #2 is that a bunch of global variables containing the current high-level "game state" (ie, which board we're on, which board we're heading to next, etc) got split into a new kind of object called a Client. This was kind of bad design in the first place, but I really needed this new entity once I introduced multiplayer.

The good news is that these two big changes are done, and a proof-of-concept port of hax0r over telnet to work the bugs out should be coming soon!

I'm kind of leaning towards only supporting SyncTERM over flashterm. Advantages to SyncTERM: ANSI music support, the smiley face character works. Disadvantages: Seperate app that you'll have to download, rather than clicking a button on a webpage. The ANSI music "language" looks sort of like ZZT's music language, so you can imagine that I'm pretty hyped about supporting THAT.

Syndicate content