712 More Things to Write About

My wife picked up a book, 712 More Things to Write About, probably after hearing me moan about not doing any writing – after spending a few months reading and doing the coach to 80k, she figured (rightly) this might be a good thing to kickstart some habits.

So, I’ll put them up here as I do them (then, at least, the blog gets filled).

So… #1 “Write Yesterday’s Horoscope”

CAPRICORN

You will encounter a wild new alien species who will wish to make first contact with humanity.

They will abduct you in the morning, perform experiements on you through lunch and by afternoon will have extracted all of human knowledge from within your brain which they will then use to judge humanities suitability to join the other star going species.

Unfortunately, they will find humanity wanting on many levels, but mostly to do with your specific failings as a person, and so, will erase your memory of the entire day leaving you feeling empty and wondering what the point of it all is.

Friday Fixup: Floating Rock Comics

Sorry, no idea of your name – your twitter alias is @floatrockcomics I know that much! (I think I’ve said before about putting your real name in as your twitter alias, so people can see you’re a real person and associate your name with your work, but I’ll not labour the point here!)

 

So, if you’ve been here before, you’ll know the drill, send me a page of unlettered inks and I’ll see if I can add some extra value in the storytelling.

Here’s a page, original to the left, my edits to the right, notes to follow!

I think this is a pretty nice page, but it suffers a little from what I think of as “the void”. There’s a lot of The Void in this. The Void is that location that really doesn’t have much of a background. Now, there IS background here, but it’s not deep enough – it doesn’t sell the location (it sells the stage we’re on, but not the bigger picture) so lots of the edits here are about dealing with that.

Panel 1: Largely left as is, just added some shadows behind the crowd this just pushes the readers focus more towards the middle of the panel where our main guys are. This feels like it should be bigger panel, mind you, the whole page has the feel of The Middle page in a bigger story, and that has its own physical shape, there are panel arrangements there that work that don’t work so well at the start or the end. If this is the scene setter panel, you might what to make it bigger, wider, pull the camera out a bit and get bits of the village in, for example. As is, I left it.

Panel 2:

The Void! We’re in the middle of a village, but where is the village? floating in n-space? Inside a giant castle? In a VR Landscape? I’ve put them surrounded by Mountains. Just that little bit extra, doesn’t require too much, but now we know the white void above their heads is sky. Also: How tall are these guys? It feels like the crowd are shorter – but maybe they’re not? So I dropped the foreground dudes entirely into silhouette and just gave them a little more height so they’re all about the same height.

Panel 3: Dropped the panel backgrounds. This takes the need to do a background entirely out of it, and pushes that cool foreground shouty vampire dude.

Panel 4: Not entirely clear if they’re suddenly floating or why they’re massively taller than everyone else, so I increased the height of the background silhouettes and added a little bit of mountain background, so the bg doesn’t feel empty.

Panel 5: Good shot, needs a tiny bit of background (feels like we’re looking up here so no need to show the crowd, we can get away with clouds and the tips of the mountains)

Panel 6: Moved everyone up a smidgen so they’re not literally resting their chin on the panel border (I counted three that are just hitting that bottom border) it’s a small thing, but these small things add up.

Panel 7: Just added some mountains and clouds, this helps add depth to the panel (which feels a little like a stage set, with no background behind it)

Panel 8: A reverse silhouette, gives the panel a bit of weight without being too distracting.

As ever with these things, YMMV, it’s a pretty nice page, and while it feels initially like there’s backgrounds it feels like it’s foreground+middleground but no actual background, no third plane which gives it that floating in the void feel. But take from this what you will, I will bear no malice if you think it’s all nonsense.

Adventures in Programming – coding

Ok, this isn’t what you expect from yer humble blogger, but it’s on my mind and it’s what you’re getting, so here we go.

I’ve been helping my son write a simple adventure game, and I figured it might be fun for any other parents looking for ways to write an adventure game in Python.

I used to write adventure games in Amstrad Basic, so I’m trying to apply all the knowledge I learnt there here, so let’s start with some basics. I like to draw a map…

This, very crude map, is required for a couple of reasons, every room here needs a unique number so that we can, for example, say in room 2 if we go west we arrive at room 3.

The map can be anything (we decided on a haunted mansion, you could draw a different map and call it a space ship or a dungeons and dragons type dungeon)

Python has a few ways we can use to encode this, I went with the simplest which was a very simple list – a list is a collection of things, can be a collection of numbers [1,2,3,5] or strings (ie text) [“alpha”,”beta”,”gamma”,”delta delta delta”] or a list of LISTS (mindblowing, I know) [ [1,2,3], [4,5,6], [7,8,9] ]

You can access any element in a list by referring to its index – so say we call our list numbers and it contains [15,16,17,20,50] then we can refer to the first item on the list by looking at item 0 (lists start from 0 going up) numbers[0] = 15, numbers[3]=20

So for an adventure game we’re going to use a list of lists – keeping a super rigerous structure means we can always refer to things in it that will work.

Python has a special keyword “None” which means … well, it literally means nothing. Sometimes we need to refer to Nothing.

We’re going to create a list of rooms, and this list of rooms will have, in every element some data about the room. Because I drew the map with room 1, I’m going to set room zero as a None list (if I was a good programmer, I’d go back and create a room zero, but for reasons that might become apparent the Number 0 and the word None can both mean the same thing, so best to avoid any possibility of a room zero)

Each room will have the following information: a title, a description and a set of exits – north, south, east and west. If the room doesn’t have an exit in a particular direction we specify the direction as None

rooms =[

[“Entrance”,”The main entrance to an old mansion. It looks dilapidated, old paintings hang on the walls looking as tired as everything else”,None,2,None,None],

[“Base of the Stairs”,”Standing at the base of the stairwell, it looks too dangerous to climb. Though there does appear to be an exit below it, to the south and a door that looks like it opens to an overgrown jungle is to the west.”, 2,7,3,None],

(and so on)

]

I then set up a variable containing the current room number (just called room)

room = 1

And now if we wanted to see our current location, rooms[room][0] would be the title of the current room. Movement is simply a matter of altering the value of room (going South from Room 1 is simply a matter of setting room=2)

Next we want to create a simple loop that displays the current location, displays any directions we can go in and then asks the user what they want to do.

(Python, by the way, is a bloody stickler for where spaces and indents are allowed, talk about yer grammar nazis)

Out loop can look like this:

alive=True # the has here means anything after the hash is a comment, so this is a comment.

while alive: # we keep doing this block (everything below the while) until the variable alive becomes False (which on this basis it never will)

#python needs any block to have an indent…

print(rooms[room][0]) #print title

print(rooms[room][1])#print description

if rooms[room][2]: print(“You can go North”)

if rooms[room][3]: print(“You can go South”) #etc, you can figure out the rest..

command = input(“What now?”)

And I’ll leave it there. What was fun about this exercise is showing Nathan how each small thing can do something different – showing him how to print “You can go North” he was able to figure out “You can go South” etc.

The next big thing is to break the command down in to a bunch of words and interpret those words so we can travel to locations. Python, it turns out, is pretty handy for splitting words up, so we did this:

command = command.lower() #converts the text in command to lowercase.

words = command.split() # split the command into a list of words, splitting where ever there’s a space

# and now we check movement.

if words[1] == “north” and rooms[room][2]:

# user has typed North and we’re able to go north…

room = rooms[room][2] # so we go north, by moving to the room that is north of the current room

Again, knowing how to go North, and with a bit of prompting, Nathan was able to extrapolate how to go South and West and suddenly we had a walking adventure.

Next big bits were to add objects and let the user lift things as well as do stuff (we added a key which you could use to open a chest of drawers to find a diary) we’ve also got to add some monsters and a combat system, but that remains a future exercise.

Anyway, apologies if this is dull – but it’s your own fault for reading this far. Some of the code above may not work exactly (I’m typing it in to wordpress so syntax errors are sneaking in) but it should be a good starting point if you have python or pythonista on the ipad and want to help an adventure loving kid to start program their own adventure game.

Adventures in Programming

When I was 14 years old, my brother (then 13) and I received a joint birthday/Christmas present – this was not-uncommon. His birthday was 2 days before Christmas, my 3 days after, and we were one year apart (Mark passed away in 1997, if you’re wondering why this is all past tense). In 1994, my mum bought us an Amstrad CPC464 with a green screen, which, if memory serves, were about £399.

I fell in love.

Mark, ended up with the shittier end of the deal though, not fussed on computers (though he liked games) mum and dad ended up getting him a different present. The computer quickly became mine.

Every minute spent with my Amstrad was a delight, the noise of the tape deck and its bizarre mix of tones as it loaded programs, the clack of the mighty keys (hewn from the toughest of plastics, mined down Alan Suger’s working man’s silicon valley pits) and the glowing green screen – literally casting a sickly green spell over me. Decades before the matrix, I knew what it was like to be a lone hacker tapping on green screen console and hoping the universe was more exciting.

And the thing was, it could be.

Buying and playing games was boring, sitting in front of the screen keying in computer listings that allowed you to fly planes dropping bombs on an undefined enemy, to throw bananas at a monkey across the sky or collect squares as a snake all built line by hard won line over several evenings thanks to the back of magazines like Amstrad Computer User and Amstrad Magazine was living in the future.

It set me up for the rest of my life. Later that year, I took a one week job placement for school and found myself there for the next 15 years or so, doing tech support, writing software and sometimes selling computers. It also let me keep connected to comics in a period when I’d let peer pressure convince me comics where for kids, I’d still pick up Computer and Video Games PURELY for the work of Jerry Paris, one of the greatest unsong british comic artists that ever sloshed ink across a page. (Jerry and I are now friends, so that’s come into a lovely full circle).

Anyway, one of the main things I did with my Amstrad was write adventure games. I was obsessed. I fooled myself in to thinking I liked the ability to create mad, wild adventures that could go anywhere or do anything, but really … really… I loved the absolute control I had over the world. I could make the computer do all sorts of things and I could push it in fun, unsurprising ways.

The Amstrad didn’t have much memory, so one of my first little innovations was to create a very basic compression – it was crude, but it worked (how crude? Any letter of the alphabet that was followed by a space would have its ASCII number increased by 64, the space then would be deleted – this let me remove all spaces from a bit of text for storage – I mean it wasn’t neccessary at all for the tiny adventures I’d write, but I thought I was pretty clever for it).

I enjoyed taking the computers rigid data and turning it in to text. Taking an extant adventure game which would tell you, brusquely “You can go: NORTH, SOUTH” and turning it into an adventure with a little more finesse, so it became “You can go North or South” (cleverer than it seems)

My oldest son is now 13, he’s lived his entire life with at least three or four computer’s within easy reach. He’s done a little programming, in scratch, but lately he’s expressed an interest in doing something in python – it’s not a language I’m familiar with, but I figured, why don’t we write an adventure game together. So that’s what we’ve been doing.

And it’s fun.

How do you know when you’re done…

And I mean with a website. Or social media.

I was here for the alt.newsgroup revolutions, I gophered my way across universities and the world, I studiously avoided myspace until it was murdoch’s space and I never quite reunited with my friends.

Facebook came and went, and I joined in, but now it’s running free without me, and weirdly, my life isn’t lacking anything. Or if it is, I’m unaware of it.

RSS feeds – remember those? seemed like a brilliant bright star whose genius would shine forever, then google bought up the biggest collator of rss feeds and then killed it stone dead.

But twitter. Man, I loved twitter.

Back when twitter was a place to just hang out and tell stupid jokes and make up nonsense. I tweeted my way through the Bonekickers tv series, I made friends on twitter, I got work through twitter and I’ve enjoyed it for a large part of the past decade or more.

But maybe its time is gone. Could be every internet phenomena has a finite life – there’s no reason that just because a thing becomes so insinuated into the everyday fabric of real life that it can’t just disappear tomorrow (vines, remember vines?)

I found myself quoted in an article about twitter my tweet was the dangers of bad jokes being taken out of context and weaponised in this new internet flash mob world (remember flash mobs? are they still a thing?) which feels like the last meta nail in the digital coffin of what twitter used to be.

I’m trying to figure out a way to see if I can’t still enjoy the many many benefits of twitter, but maybe… maybe it’s a relationship that’s long past saving and, right now, the only thing keeping me on there is the deeply sunk cost of building a reputation on the site over the past 12 years.

Final note: I AM a coward. So I won’t be deleting twitter. I am trying to figure out a way to delete my entire history and start broadcasting simply art and updates on twitter. Saving stupid thinking for a notebook or some other way to capture that stuff that isn’t exposed to the entire world.

Writing has stalled

After getting to week 7 of the Couch to 80k writing challenge, I balked out of the last week, exhibiting a pattern of behaviour which I can only describe as “mission nearly accomplished”.

Week 8 is about writing that novel, getting her started, big writing chunks, nothing but writing. And I figured, right, I’m not writing a novel, time to move on.

And it was good for a while, I ended up developing up half a dozen projects that are all more complete than any writing thing I’ve done before, but they’re still largely unfinished – a few I’ve mentioned to writer friends who’ve been keen to take on the burden of writing the script (and I’ve been equally keen to work with them and walk away) combined with business in drawing comics means the scripting has stopped (well, never properly started).

The dredd script I’d been working on I had so many notes that, honestly, I wasn’t sure how to synthesis them all into a single solid script and then I lost the way of myself and started doubting everything I’ve ever thought about everything. (If I’m wrong about this… can I be right about anything).

I think I need to be better keeping my enthusiasm up when I’m on my third round of notes, or, at least, be able to move on to the next thing.

The Friday Fixup has been a fun venue for writing, though like writing articles about topics I know well, it never feels like writing so much as me just spewing my thoughts out.

Just finished pencilling a six page script that was written Marvel style and it’s made me think maybe.. just maybe… I should just write some of these stories marvel style and then draw them up and dialogue them afterwards. Just purely for my own amusement.

Anyway, I’m aware this year was the year I would tackle writing and we’re more than half way through and I have one script with an artist, but nothing else written, and I just wanted to stop and take stock a little. Got to pour myself into more drawing work (WWII will be drawing this strip for several months) and hope I can find the time and energy and balls to just write and draw one thing.

Friday Fixup: PXD

Ok, art on this friday fixup is by a chap whose name is PXD (or Pete).

My general (unasked for) advice on names is this: use your real name, because whatever funny name you come up with now – before you’ve a published history WILL become your name.

My real name is Paul Holden. For publishing purposes (and because I was working with a guy called Paul Holmes who couldn’t quite grasp there were two Paul’s in the store I worked in) I started using my middle initial “J” (for Jason) for publishing, this was fine, real world, home: Paul. Online, publishing: PJ (actually my first published work is under Paul J Holden, PJ Holden scans better)

But then those world’s meet and suddenly every day you’re going “Yeah, PJ is fine. Or Paul, or Jason, or Peej. Honestly, I don’t mind”.

Frank Quitely’s name started as a joke, but of course, that’s how Vincent is no known.

These choices you make when you’re first starting out end up sticking with you for a long, long time.

(I say this because I had to check around to see what Pete’s surname was, but he seems to go by PXD too, so sorry Pete – hope I’ve credited you correctly!)

Ok, on to the art!

Pete’s page to the left, my edit to the right.

I’m not gonna talk about the lettering, but I will link to these, please go read ’em!

Ok, on to notes.

Panel 1:

Let’s stop being so shy, good big close up of our car, frames the house nicely and makes the entire thing a little more ominous. You’re always trying to fool the eye into thinking a 2d flat rectangle is a window into a 3d world, so anything that can add depth really helps that – close things look big BUT the reverse is also true : big things look close – so make something big and something small and it really gives us depth. And really push it – push it so far it breaks, then pull it back so it’s not broken but still a big contrast.

Panel 2: How wide is that door? That’s a wide door! I moved the door in a bit, added a little shadow behind the back of the door (helps frame it up a bit more) and added a little bit of texture to the unadorned wall.

Panel 3

I tried and tried to make this panel work as a straight on but it always felt odd, and the reason is she’s talking to the dude at the door, she’s facing the dude at the door, and suddenly we’re staring straight at her, from his pov – but it didn’t feel right at all, felt like we should still be observing this as a third person – so just came in nice and close to her face and repencilled her. I appreciate this is an older lady, but I think you’ve got a lot of lines on her face which are really unnecessary (I’m often guilty of this) Here’s your drawing of her face cleaned up, still older but prettier, I think. I also shrank her eyes – now you can argue this is a taste thing, but I think on your characters I’m seeing lots of eyes that are just a smidgen too large. For years and years I struggled with drawing eyes – how can you draw everything you want in an eye in the tiny space of where the eye is? IMPOSSIBLE. Couldn’t figure out how artists like Adam Hughes could draw these incredibly beautiful eyes (still can’t, if I’m honest) while I kept drawing eyes that insisted every eyelash, every wrinkle, every light red vein in an eyeball is seen. Draw less, I think is the answer. Make the lines you do draw do more.

 

pxd-face.PNG

Panel 4:

Mild perspective inside rooms are my kryptonite, I really struggle with them. (So did Mignola til that clever bastard figured out you don’t need to do it).

So what I did was a constructed a very simple version of the room in sketchup – took literally 2 minutes, dropped some figures rotated the camera until I got it more or less as it should be and then edited it based on that. I think the real problem is when you’re doing this kind of indoor perspective shot is you want to make it easy so the vanishing points end up very close together, and overlap (where the object in front hides part of the object behind) is a real pain (cus you’ve still got to figure out where the stuff is and then you don’t even draw it – it’s a blorping nightmare) so let us resolve this together – let us from now on map a very simple room (this sketchup room? two walls, a floor, no ceiling and a a simple bed that I duplicated) in sketchup and use that as the basis (you can print out a sketchup model and use that to trace over, you can export-import the 3d into clip studio to digitally trace over or you could just build the model and play with it so you get a sense of what a box room perspective looks like and then just draw it)

Pete linked me a second page, which I’ll not have time to add notes to except this: draw backgrounds! By forcing a black panel border you’ve taken away the ability to leave a panel borderless (and borderless panels also mean you can get away without background!) so you’re sort of going to have to give every panel a background (oops!) Not to worry, 90% of backgrounds are really shorthand reminders to the reader of where the location is – set in a library? then a wall of books will do. Set in a garden? a nice bit of frilly linework that looks enough like a hedge to pass will do. Cheat. I’m saying cheat. But don’t skip it.

 

Anyway, apologies PXD I feel like I’ve been unduly harsh,  of course, all of this is subjective and the advice skews heavily to my taste in things, so you are free of course, to tell me to stick it up my blorp.