Comic-O-Matic Developer's Blog

What's Margo up to??

Some recent feedback and my responses

I’m hearing from folks who have been using Comic-O-Matic since I started the Comic-O-Matic website on June 13, 2011. When Nina posted the link on her site several days later, use just took off!  I have been getting suggestions and input, so I thought I’d post them here publicly

“Thought cloud option”
I am already working on the thought cloud option! I was thinking the user would have to select a radio button for talk or thought.”

“A little box in the top of a panel for (The next day) etc.”

Hadn’t thought about a box for “The next day” type things, but I’ll put my thinking cap on. Definitely do-able!

“Allowing the characters to face different directions in the panels and/or allowing different characters in the panels”

I had been thinking about mirroring options for the characters, but hadn’t figured how I would implement it, so I just threw in a couple of “new” characters – flopping the cat and the monster – but I have been thinking about adding that as an option, for the characters as well as for the eyes and mouths. The flopping options for them could include horizontal (good for eye direction) as well as vertical (good for mouths – smile/frown). I don’t know about adding additional characters to the strip, but I had thought about an option to pick only one of the characters to appear in a panel, zoomed in more on the face. Not sure how I’d do that yet, though.

“Emotion signifiers (like dark cloud) that could appear over a character’s head.”

Hadn’t thought about “dark clouds” and such, but yeah, that’s interesting. I’ll put my thinking cap on for that. Maybe a third option, mood icons in addition to talk or thought?

Since this suggestion came in,  Nina has drawn several “emotithing” graphics (storm cloud, sweat drops, light bulb) for me to play with, to figure out how to add them!  Watch for the option!

“Checkboxes to control the color of panels.”

Yes, I am already working on checkboxes for keeping the colors!

“Sometimes I am frustrated by the small dialogue boxes… but then I remember that brevity is the soul of wit.”
“I’d love to be able to get more text into each box. It does force brevity, which is always good.”

I have been going back and forth on the size of the font, and finally settled on the current one. It needs to be readable even when the panel is shrunken down in size. But I’ve gone up to 5 lines, and bumped the uppermost line to the very top of the panel to get as much real estate for the dialog text as possible. (And if you want to talk about “brevity”, the original script only allowed for a single 14-character line – that’s 14 characters including spaces and punctuation! Eeek!)

One thing to note is that I haven’t got a character limit or word limit: the limit is set from the width of the characters that you use, so the more i’s and l’s you use (the skinniest characters), the more characters will fit, and the more w’s and w’s you use (the fattest characters), the fewer characters will fit…  I did this mostly as a way to draw the dialog bubbles so they would fit around the text, and I thought it was pretty a  pretty clever way to set the maximum text.

“I want a way to keep the same expression, or at least parts of it, in the same character for multiple panels. Too annoying to have to keep refreshing over and over until I get what I want.  I find the completely changing faces really distracting.”

The randomness is helpful for people who need a creative boost – it’s based on Nina’s Face-O-Matic cards that she developed for visual storytelling workshops (I originally made a web version of it, back in December 2010:, but then I decided that a 2-character, 3-panel version sounded like a good idea.  I have an interface in the works for those folks who already know what they want for characters and expressions, but I’ve been working on stabilizing the output of the panel-generator first, and left it on random.

“Sometimes it seems to take quite a few tries to get an element I want. Since I have them memorized now, I find myself wishing for a menu option to choose the one I want. I type the dialogue first and then searching for faces that fit.”

My original thought about Comic-O-Matic was to let people pick every part and build their own strips, but I got frustrated with the interfaces being too clunky.  I totally get it, wanting to pick!  That will come – and will be written in Javascript, AJAX, and jQuery

“I noticed that sometimes the random generator picks the same element over and over (annoying when I was looking for something different.) Maybe if the box is unchecked, it should pick something different from the current element?”

Yes, I hadn’t thought about setting up a trap to avoid the true random possibility of getting the same one, but I find that annoying, too. I’ll work on getting that implemented.

“What’s with it saving comics as PHP rather than JPG or PNG?”

I think the file-format for saving is coming from your browser.  Comic-O-Matic is written in PHP code, and creates PNGs. When I right-click, it names the files something like comic.php.png, but I watched someone else do that and their browser saved it as a BMP image… Try just renaming your saved files with the .png extension, and that should work. (Let me know if it doesn’t.)   I am working on setting up permalinks to the comics, and am making a better image-save option (see the Face-O-Matic site for an example).

I haven’t finalized what the name of the PNG will actually be yet. To make sure they are unique, I am currently using YYMMDDHHmmSS then the IP address of the requester. The problem there is that when the currently ugly URL is used to generate the PNG, the viewer’s IP address gets used, so I don’t really want to keep that naming structure, but currently for testing, it’s okay. Not sure if I want to use the title of the strip in the short URL, in case someone wants to reuse the title… Suggestions?

“Automatically generate corresponding alt text, to streamline accessibility if the comics are put on a website somewhere?”

I am working on the feature to store them in the cloud and make shorter permalinks – as well as the ability to log in and keep track of one’s own comics. The beta version is mostly to see where I have overlooked something in the basic programming that makes the strips – I can never predict everything users will do/try! The images are generated with parameters that (mostly) are currently in the URL of the comic.php, the script that creates the graphic image of the strip, but I’m working on saving the parameters to a database. I’m thinking that the images will live on the serve for about two weeks, then get pruned, and if requested, the script won’t find the image file, and will regenerate it from the database. I’m trying to balance the load on the server and the storage.

“Alt text generated along the lines of “Cat with crazy eyes and happy mouth says: bla bla bla, Troll with skeptical eyes and sad mouth says: bla bla bla” that folks could easily C&P into the facebook description”

Thanks for the alt tag suggestion! I don’t have names for the various parts, however. Hmm…

“It would be nice if there were some quick way to clone one frame’s eye and mouth shapes into the other frames; pick the frame you want, click some button, and the other two frames would have the same faces.”

When I design an interface that lets you have more creative control over the choices of art, I’ll see about adding that!

Chances are good that the first user-control feature will have to do with the character outlines, since there are so few choices there, and I will likely include a mirror option so you can orient which direction the characters are facing.


One response to “Some recent feedback and my responses

  1. Pingback: Developer Notes #1 – “It saves php files, not png or jpg!” | Freecomicnomics!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: