Game Night

adventures in gaming, playthroughs, Process Writing

Since roughly January 2013, I’ve been playing games with a group at TAG. This once-a-week meetup eventually turned into Monday Night RPGs, where we rotate the gamemaster so that they only have to plan roughly every three weeks. Members of the group have come and gone (and will come again, darn it, for those of whom we are waiting to return from studying at NYU), but I’ve been playing games in this context for basically as long as I’ve been making video games (I’ve been playing tabletop RPGs since I was 16, or, in other words, as long as I’ve known my husband).

Recently, it was brought to my attention that I might be learning something through all of that playing! For somebody who studies and makes games, I sure do have a hard time finding time to play them (especially video games), so the fact that these consistent play sessions have been there for me for so long is kind of a miracle, an oasis.

Next Fall, Mia Consalvo will be teaching a class called Player Studies, which I think I’ll be taking. With that future class in mind, I thought it might be worth considering what I learn from playing and participating in these sessions. I’ve always believed that doing a lot of reading is one way to get better at writing, although being a voracious reader doesn’t automatically make you a good writer. In the same way, playing games hopefully makes me a better game designer.

Of course I can identify trends in playstyles and behaviour from my group — we’ve been playing together in the same context for three years (and playing together since I was 16 for some the people in this circle). For now, I don’t want to retroactively make sweeping observations about past sessions. I wasn’t thinking along these lines during those sessions, so this is something to consider for the future, when I have the opportunity or notice something of interest.

Platforms and Programming: One Month in the Life Postmortem

adventures in gaming, critical making, curious games, Process Writing

GuybrushSquarePortrait

[WARNING: There are a lot of feelings in this post and there is a lot of frankness — about mental health, mostly. MUCH FRANKNESS AHEAD. If that’s not for you, you probably shouldn’t read this.]

This past semester, I learned how to learn to program (no, that’s not a mistake). With the help and guidance of Rilla Khaled and Pippin Barr, I first learned Processing (Daniel Shiffman is a great programming teacher) and then after a brief evaluation of p5.js, moved on to Phaser and JavaScript.

[A note on guidance: all this learning actually happened under the guidance of a whole community of programmers both in and outside of TAG lab. When I couldn’t figure out how to space out the flower petals around my stem in a Processing exercise, the community was there to help. The other day, when it turned out that I hadn’t learned enough about object-oriented programming in JavaScript to properly manage states in phaser, the community was there to help. So, thank you, community.]

For something that I had been dreading for so long, it was revelatory to find out that I enjoy coding — like, really enjoy it! When the pressure is off and I can appreciate the puzzle of figuring out what to do, I like writing code a lot. This should come as no surprise: I love learning languages, which is why I know, in addition to English and French (the ones that I had to learn), Spanish, a bit of Italian, a bit of German, and an anime fan’s Japanese (so, also not very much).

But, the final project for this class is one of the hardest games that I have ever had to make. It was difficult for a variety of reasons. In my last post, I mentioned how Tom was getting ready to leave for RCMP training, and how I could think of little else, creatively and otherwise. That’s why I decided to make a game about the month between Tom learning of the RCMP’s decision and leaving for Depot. I wanted to take away some of the event’s power by making a game about it.

As I also mentioned in my last post, I would normally never, ever, ever consider making a game (or any kind of writing or other creative work) about something that happened in my life so close to when it happened. Normally, I’d let such an idea sit in a drawer for a few years and then give it a go. But, as I mentioned before, this was hugely preoccupying for me. After being with Tom for nearly ten years and never being apart longer than that one time last year when I went to Europe for 45 days, I knew that this was going to be a big change, and probably a very difficult one.

And it was. I just wasn’t prepared for how hard. A lot of the reasons that made it hard for me to be without him, even though he was an email or a video chat away were because of things that we would normally deal with together — but more on that later.

At first, I didn’t have much time to devote to the game: I had to finish up my semester’s course work, fulfill my TA responsibilities, get Tom ready to leave for the RCMP, and be present for a friend that was also having a hard time. I chose to prioritize my relationships with people that I cared about, and would do so again. And that’s where the time went, up until Tom left.

After Tom left, the game was my priority. I had finished my course work and everything else could be put off for a while. I went into hermit mode and started working on the game. And that’s when my 96-year-old grandfather went into the hospital.

Now, as someone who lives in a town with decent public transit, I haven’t yet acquired my license. We visit my grandfather fairly frequently, and Tom usually would rent a Communauto (car-sharing service) car and off we’d go. I was upset that my grandfather was sick and that I had to rely on there maybe being space in my relative’s cars in order to go visit him, or possibly not visit him at all (as it turns out, I now have a standing offer from a friend to drive me so long as she’s not at work). I was upset because, at 96, even small ailments can be hugely important, and these ones weren’t so small. I found myself completely unable to focus on the project. I felt like my brain was betraying me – this was when I needed to be able to focus the most, and I was getting nothing done.

livingroomfront

So, I left the scary parts for later. When I was able to focus, I did the parts that were familiar and pleasurable to me — I wrote dialogue, I drew pictures of my cat and my apartment, and I thought about the design of the game. But, when all that work was finished, the deadline was coming and I still hadn’t programmed anything. What’s worse, I couldn’t remember any of what I had learned all semester. On top of that, feeling like I might not be able to finish the project before the deadline was stressing me out even more, increasing the pressure.

I had actually chosen a slightly early deadline for the project, thinking that I would get nothing done during IndieCade East, which was happening right after the deadline and which was where we were going to show In Tune perhaps for the last time.

So, I fought back the feeling that I was somehow disappointing the people who had been so kind as to take time out of their schedule to teach me in a directed study this semester, and I wrote asking for an extension.

The relief was palpable when the extension was granted. That, along with the fact that, at that point, my grandfather was getting better and would be released any day, helped me regain my focus (unfortunately, he’s now back in hospital). Things went slowly at first, but working diligently through IndieCade East at the NYU MAGNET, with the support of some lovely friends there, I managed to program portions of my game. And I was enjoying it. And, given that this was my first time with JavaScript and Phaser, I felt like I was doing a pretty good job. I managed it! It had seemed impossibly stressful the week before, but things fell into place.

Well, so that’s how it was to work on this game. In terms of the workflow, what I would have of course liked to do differently is give myself more time to work on the project long before the due date – that’s kind of my style. But, up until now, I have had the privilege of an excellent support system that has allowed me to focus on my work, even when other things in my life were going on, and this was my first time doing without it. I’m not sure what I could have done differently about that.

That means that it’s time to talk about the game itself and the design decisions.

What I wanted to do in the game was juxtapose some version of the conversations that Tom and I were having about his departure with our cat’s daily shenanigans. As it says in the game, cats don’t care about human drama. They don’t understand it. So, what felt very dramatic and important to me didn’t have much of an impact on our cat at all.

I like the juxtaposition. The game is pretty slow-paced, so there’s time to read the conversations and interact with the environment (at least, I think so). My worry is that there aren’t enough animations to keep the player engaged in each scene.

For this project, I had to scope very tighly given the time frame, but I was also sick of certain of the choices that I usually make while making games on a short timeline. Namely, I wanted to try a different art style. I was sick of making pixel art for these short little games. This was at odds with the fact that I didn’t have much time to work on the game. Each individual animation was taking way too long to make. So, I had to make the decision to do story-board style animations, with very few keyframes and a simple style. Overall, it’s not what I had originally envisioned but I’m happy with the result given the timeframe.

I’m not a professional animator – I just dabble. What that means is that even the storyboard-style animations took enough time that I made relatively few of them. I wish that I could have made more of them, because I wanted to them to function as a visual reward for the player. How I made up for it is made it so that when you click the cat, messages about the cat appear, and I find those fairly entertaining. But that might just be me.

Of course, the most important thing to me about this game is that I programmed it myself in Phaser/JavaScript and that it works. That’s a big milestone for me. It was also one of the main goals of this directed study, so I’m happy that I managed it. It’s an empowering feeling, even if I know that I might struggle just as much the next time that I sit down to program something. I’m okay with that — knowing that I can do it at all is huge.

[This game is available for play here.]

overthrowthepatriarchy

Platforms and Programming: Final Project Begins!

adventures in gaming, critical making, Process Writing

I’ve done it! I’ve moved from Processing to p5.js to Phaser, now. After doing the p5.js tutorials, it seemed like there were few enough differences that I ought to move on to Phaser. My pace has slowed down a bit because of other responsibilities and, well, the fact that it turns out that I was very, very spoiled by Daniel Shiffman’s Learning Processing book. Holy cats, Shiffman! Would you please teach me all future programming things forever?! The Phaser documentation, in comparison, and other library documentations are really pretty horrible. Although I’m told that, in comparison to still other libraries, the Phaser documentation is abundant and clear and wonderful. So it goes.

Naturally, the introductory tutorial for Phaser is a one-screen platformer, something I can make in five minutes in Construct 2. It was essential that I find a project that would keep me engaged and motivated to learn, something like the Earth Twin project for Processing (although Processing is pretty appealing all on its own, I needed to find a project that used its more unique affordances, and that turned out to be computer vision stuff). We came up with the idea that I could combine the Tracery library by Kate Compton with Phaser in order to make something interesting.

So. That project.

I should start by saying that if this were a short story, or any kind of writing, I wouldn’t be touching it before at least a year or two from now, at minimum. It’s possible that a lack of clarity and perspective about the event will interfere with trying to fictionalize/make art about something that’s happening to you right now… It’s raw and tender. And sure, that can make great art, and people do this about their lived (with no fixed end point) experiences all the time. But, as a general rule, I don’t. I don’t really make personal games and if I do involve my own experiences (as one must, to a degree), it’s fictionalized and years after the fact.

Tom, my husband, is leaving for RCMP Depot Training on April 17th. This is a good thing! He made his first steps towards applying something like three years ago now, and he’s finally made it in. The steps to get here were endless. He’s put in a huge amount of work. He’ll be great at being an RCMP officer and jobs with the benefits and pay and other opportunities that this offers him (us) really don’t exist anymore.

However, I have known Tom for basically a decade, and in that time, the longest that we’ve been apart is when I went to Europe last spring for 46 days. He’ll be gone for six months! And afterwards, the chances of him moving back to Montreal is almost exactly zero. I’m a first-year PhD student – I’ll be in Montreal for years yet, and even when I’m done the things that require me to be physically present in the city, the truth is that the community here is unique and supportive in ways that don’t exist in any other Canadian city. Fully 75% of the postings are in the West, with only 25% in the East, so there’s not even a particularly good chance that he’ll be close enough for me to easily visit. They are supposed to take your family situation into account – they want your posting to be mutually beneficial to you and to them, but it’s a lot of uncertainty to have thrown into our lives. The RCMP tells you not to interrupt your life plans and to go on as if you’ll never get it (and when you consider that it took him three years to get in, one definitely could finish a graduate degree in that time, if not a PhD).

The time that he has left in Montreal before leaving coincides with the end of the semester at Concordia and, as a result, all of my deadlines. So, while I would normally a) not make a game about my personal life and b) would definitely not make it while whatever is happening is still in progress, this is all that I can think about right now. It’s taking up a huge amount of my headspace and emotional energy, and many of these deadlines can’t be moved (end-of-term work, TA responsibilities, public talks, conferences, a book chapter). So, in order to deal with it, I’ve decided to make my final project for this class about it. The hope is that it’ll allow me time to think even as I do all the other things that need doing.

THE GAME:

rcmpcatnotes

This is a game about juxtaposition and duration. It’ll take place over the course of 30 days (roughly a month), which is the amount of time that Tom had between finding out he was accepted and going to Depot and the time that he would be starting there. The genre that I’m aiming for is characterized by an account of events determined by a period of time, exemplified by books like One Day in the Life of Ivan Denisovich by Aleksandr Solzhenitsyn. In writing workshops, we often referred to it as the “a day in the life of” technique. The juxtaposition part is because this’ll be 30 days in the life of our cat, doing cat things (like playing with toys, destroying the furniture, napping), placed alongside procedurally-generated conversations (using Tracery) about topics that Tom and I (or people in similar situations to us) would have to discuss in this limited time-frame.

At first, I thought that I would have one top-down view and that would be the end of it, but then I thought about Molleindustria’s Unmanned which I think is an entry into my “day-in-the-life-of” game genre. The different scenes and perspectives in the game are really nice and very cinematic. Maybe that’s something that I can make work for me (although it will of course be more work). One thing that I like about this game is that the actions that the player has control over (with the radio, with smoking, with playing games with the main character’s child) are symptomatic/revelatory of the character’s internal life and affect the story, without allowing the player to overtly make decisions about the path of the story. The causal link between the two is vague in a satisfying way.

Rilla (Khaled) also pointed me to The Cat and the Coup yesterday, which I’ve downloaded but haven’t yet had the chance to play. I plan to play it as soon as possible.

Art-style-wise, I again do like Unmanned‘s style. I’m used to animating with PyxelEdit but I also like the sort of cut-out minimalist collage style of things like the Fiasco books. Here’s the cover of a Fiasco playset that my brother and I recently made for my friend Allison:

MagicalGirlMinimalistCover

I might go with this kind of style, but I’ll have to figure out a different animation/spritesheet making program. Help and suggestions would definitely be appreciated. I might experiment with OpenToonz but I’m worried about the learning curve in the short amount of time that I have to make this first version of the game. Hey, there’s of course nothing stopping me from working on it after I’ve turned it in for class! I will check it out and see if it’s simple enough (apparently there are a few stability issues).

So far, I’ve got a very basic Tracery thing working in a Phaser tutorial. More as it happens!

GDC 2016: TAG visits San Francisco

critical hit, Process Writing, talks

GDC

Last week I attended my first ever Game Developer’s Conference alongside what occasionally felt like at least half of the Montreal games people I know. It is a strange and wonderful feeling to run into folks from your city in one that is completely new to you. During GDC, this seemed to happen all the time.

I went a little early and stayed a little late, so while I was in San Francisco I also got to see a sea lion giving birth, go to a mirror maze, visit the Musee Mecanique and try all of its fortune telling cabinets, and go to the lovely San Francisco botanical gardens where a squirrel climbed up my leg (given today’s weather, I’m especially missing how GREEN San Francisco was).

For most of my time in San Francisco, I stayed with veteran GDC goer Squinky (who will soon be starting their PhD at TAG — and we’re lucky to have them around the lab with us already). This was Squinky’s eighth GDC, and they were kind enough to both find me a place to stay with a friend of theirs and to help me through what would no doubt otherwise have been a completely different experience.

The talks were excellent – as Gina has already mentioned, the TAG twitter feed is full of live-tweetin’s and retweets from the panels that we attended. Some of my favourites were Renee Nejo’s talk called “Everyone’s Silent Enemy: Shame and Vulnerability” which candidly explored her experience as a First Nation’s woman who has often felt “not native enough” in the estimation of others. No summary can do this particular talk justice, so I’ll point you towards the talk information, and hopefully you’ll be able to check it out on the vault: http://schedule.gdconf.com/session/everyones-silent-enemy-shame-and-vulnerability

It was really heartening for me to be able to watch Rebecca Cohen-Palacios, Stephanie Fisher, Sagen Yee, Zoe Quinn and Gemma Thomson deliver “Ripple Effect: How Women-in-Games Initiatives Make a Difference” — the Pixelles program is the reason that I made my first solo game and how I discovered that making games of my own was a viable possibility. The program was life-changing for me! This talk explored how such programs can ripple out, starting from the Difference Engine Initiative, where many of the speakers made their first games.

Our own Ida Toft delivered what I (perhaps biasedly, as one of this summer’s co-directors) thought was an excellent talk about Critical Hit 2015 and our experiences trying to build a safer space within the program. After Ida spoke about their take on the issues that made this very challenging, Ida invited Gina and I up, and the three of us took questions for the remaining half hour. We also invited some of the Critical Hit participants from this past year who attended the talk to give us their input as well. I was reminded that Safer Space isn’t a perfect solution, but that we have to keep trying and working towards something.

Speaking of this year’s Critical Hit participants, quite a few of them made it to GDC this year. They’re sharing their work and doing well – last fall we also saw quite a few of them at IndieCade! We managed to meet up for dinner with Kailin, Amanda, Hope, Nicole and Owen. A few of them will also be at the upcoming Different Games, so if you’re headed there, you should say hi to them!

Attending my first ever Lost Levels was also an oasis in the desert — it had a very different feel than the rest of the bustling conference, and I was able to relax for the first time that afternoon since the beginning of the conference. I listened to people talk about AI, led by the amazing Kate Compton (creator of the Tracery library, which I’m about to learn), was serenaded by impromptu music, including a live Gameboy chiptunes performance, and listened to an indie rant or two. All the while, I also ran the first ever Lost Levels Nap Summit, discussing important nap-related issues — did you know, for example, that casual naps are still naps? The Mild Rumpus, a carpeted “quieter” space within GDC with bean bags, pillows, trees, and experimental indie games, wasn’t quite mild enough for such discussions, as it turns out.

Squinky’s talk on Friday, “Designing Discomfort,” was brilliant – suggesting that maybe the flow state isn’t always ideal because it limits the kinds of stories we can tell. We should break out and explore possibilities outside of it, including more mature subject matter and more kinds of stories.

Perhaps unsurprisingly, while I enjoyed many excellent talks, some of my most worthwhile interactions at GDC happened at the peripheries of the event, because of the fact that for this week, thousands of game developers are sharing the same location. It was during lunch and dinner meetups and coffee breaks, during accidental meetings in the city or in hallways. I met a lot of lovely people, many of whom were introduced to me by Squinky.

You should also check out Gina’s excellent summary of the microtalks, which I also attended and appreciated.

Platforms and Programming: Some Thoughts on Processing

Process Writing, Uncategorized

startscreen

Part of the challenge of this semester-long intensive solo programming boot camp that Rilla and Pippin are so kindly leading me through is learning how to learn. I’m not just learning a programming language or two, I am learning about libraries, APIs, references, object-oriented thinking, how to structure my code, how to debug, the vocabulary I’ll need to add to my google fu repertoire…and, perhaps most importantly, I’m learning how programming languages are learned.

One of the most challenging things I’ve had to learn is something that I already knew but have to keep reminding myself of: there are probably only a few rare somebodies who store all their programming knowledge completely in their memory. It’s normal to have to google, use the references, and refer back. I felt curiously guilty about that at first, but I’m getting used to the idea now.

So! In seven weeks, I finished the twenty-three chapters of Daniel Shiffman’s Learning Processing. Here are a few observations about Processing as a tool (I was about to say language and I guess it sort of is, but it’s also basically Java with the Processing library and applet, so…):

* Processing is very good at algorithmic, procedurally generated visuals and it handles playing around with colour very well.

* Processing (while it probably has a library for this) doesn’t handle sprite sheet-based animation very well. The animation chapter section covered flipping a head back and forth when it reached the edge of a sketch and that was about it.

* Processing can do fantastic things with video very easily! Loads of fun!

* Shiffman points out that Processing is primarily geared towards visuals – and he ought to know, he’s written most of the tutorials up on the Processing.org website. Case in point: with new updates, the sound library appears to break fairly frequently , but the video library doesn’t.

* Processing can do networking, but it involves installing extra software and additional libraries. While it takes maybe three lines of code (excluding the curly brackets) to draw something in Processing, it’s something like 30 to do any networking at all. So, clearly, visuals are a priority in comparison.

* Shiffman’s Learning Processing is really excellent. I definitely recommend it for beginners – everything is explained very clearly in the early chapters.

To celebrate finishing the Learning Processing book, I made this funky little game toy thing called Earth Twin! It uses Processing’s computer vision capabilities with an Eliza chatbot library by codeanticode. It’s available to play for either PC or Mac. Let me know what you think (@jekagames). Here’s a sample transcript:

>> Hello. Greetings and salutations. As you know, I’m here as part of a Keplerian delegation to learn more about the human world. Tell me your favourite things about humans.

Hello there.

>> Greetings. Hi. Yo. Heya. I’m from an earth-twin planet called Kepler and I want to know about humans and stuff.

I want to know about humans too!

>> What would it mean to you if you got to know about humans too ? Seriously, what would that even look like?

I don’t know anything about humans.

>> Of course you don’t know anything about humans ! Isn’t that illegal ?

It is not illegal for humans to know about humans.

>> Is this some strange human custom? I’m not sure I understand.

Yes, it is.

>> You are sure. Remember: if you ever visit Kepler, certainty is a thought crime.

That is good advice.

>> Please go on. Does this have something to do with the Internet ?

Everything reaches the internet at some point.

>> On Kepler, that might be considered an untoward suggestion.

I understand, yes.

>> You say you understand ? On Kepler, you could lose an eye for that.

Kepler sounds like a harsh place.

>> The swim to understanding is filled with eddies, currents, and large predator fish. Oh – that ? Just an old Keplerian saying.

Well, there you have it.

>> We were discussing you — not me. I’m here to gather information on humans, not to allow humans to gather information about Keplerians.

Fair enough.

>> A nematode in the pod is worth twenty in the toxic ooze that covers all known surfaces, as they say.

Goodbye.

>> Goodbye. Thank you for facilitating the Keplerian invasion.

Meanwhile, I’m moving on to JavaScript. That also means brushing up on my html and CSS (when I used to mess with html as a teenager, CSS was just barely getting started). Wish me luck! First up is p5.js, and we’ll be re-evaluating from there. I know we plan to do some messing around in Phaser and PICO-8, and I think we’ll also be looking at the Nature of Code.

Exciting! New world unlocked!

motiondetection2

Two Weeks, Two Jams: Global Game Jam 2016 and Take Care Jam

critical making, game jams, Process Writing

I’ve been meaning to write for some time now about Global Game Jam 2016 and the Take Care Jam, two jams that took place one weekend after the other (which is why I guess why I haven’t managed to write about them yet, what with the jams and the work I had to catch up on afterwards). I thought that GGJ would be an exhausting all-nighter pulling event (because it usually is) and that I would then decompress at the low-key, care-focused Take Care Jam, but that turned out not to be the case.

I arrived at Global Game Jam on Friday in time to engineer our now-traditional Game Jam Blanket Fort (ever since Pixelles Montreal ran TeaCade, we are in love with comfy time-out spots at our community events – GAMERella had a pretty excellent one, TAG’s GGJ16 location had one, and so would the Take Care Jam, as it turns out). During GAMERella, my goal is to work with a new jammer and help them have a positive first jam experience. Global Game Jam is my more selfish jam – I like to work with people that I already know and trust.

So! There were plenty of people that I knew at the jam, but it seemed like many of them were about to agglomerate into one large group. At a jam, my preference is to work in a team of three or less – maximum four. I find that it’s easier to stay within a manageable scope and to quickly find mutual game making interests. So, after some quick decision-making, I ended up working with Dietrich “Squinky” Squinkifer for the jam.

THE GAME: “Most Sincere Greetings, Esteemed One”

[You can also read Squinky’s introductory writeup about the game here.]

We scoped with a laser-focus (see what I did there?) – having a two-person team meant choosing our priorities very carefully. Exploring the jam’s theme (“Ritual”) through some quick brainstorming maps and settled on exploring the awkwardness of greetings. We chose to use as much theatricality and physicality in the game as we could, and so we hit on a game where players would be instructed to perform different greetings with one another. We made an aluminum-foil gong as a button using a Makey-Makey and had players wear the Muse headset to help set our stage. Combined with Squinky’s JavaScript/JSON/web dev skills and the Tracery library (link) to create procedurally-generated instructions, how could we miss?

By the end of the first night (we closed up shop at around midnight, having started to jam in earnest around, let’s say…6:30PM?), we basically had a working version of our game…From there, we just kept adding, polishing and giggling to ourselves about all the excellent procedurally-generated content that we were building, and doing our best to put our best foot forward on all of the items that it was possible for us to share on our game’s global game jam page: a gameplay video, a dashing team portrait, a github repository of our code, screenshots from the game, etc.

teamGIOBAGportraitsmall

teamGIOBAGportrait2small

The great thing about this jam is that I went home to sleep both nights and didn’t feel any time pressure. I really enjoyed working with Squinky – we share similar senses of humour and they are a great jam partner. They’ve also got mad skills – both for making games and cookies! Our game even won an award for our prop-use.

The Take Care Jam, hosted by the Atwater Library in the context of Shanly Dixon’s Cyberviolence Against Women research, and planned and run by Stephanie Fisher and Kara Stone, is proof (much like my experience with Squinky at GGJ) that you don’t have to do a long crunch-filled jam for people to end up with interesting prototypes and ideas by the end. The weekend was filled with food breaks, multiple yoga sessions, and people just chatting and spending time with one another. We still made great things.

My team, which consisted of Nicole Pacampara and Amanda Tom (two people I was very happy to get the chance to finally work on a project with) along with honorary teammate Squinky (who fixed everything for us at the end with their mad skills and who I have already had the pleasure of working with) worked on a project about taking care of ourselves and of other people. The basic idea is that with a password-protected google form (you can see it here but I won’t tell you the password — you can ask for it if you like though – we just didn’t want people to add mean things) that creates a google spreadsheet. Using the spreadsheet as our database, we pull a random entry and display it on the Take Care Teller, which is like a fortune teller except it gives you an encouraging message or advice.

Here’s the current prototype of the Take Care Teller, hosted on Nicole’s site.

As you may have read by now, I’m learning Processing, and the amazing thing about this jam for me was realizing the literacy that learning Processing is giving me in other coding languages, too, just because there are lots of things that carry over. So, I was able to read most of our code that weekend (although I couldn’t have written it — that’ll come later, I hope).

At the end of the jam, after presenting our work to each other, we planted seeds from the Atwater Seed library (Guybrush the cat has knocked mine over already, but I will replant once he’s gone to his forever-home with Squinky — which will be soon!).

So, more on Processing soon…I’ve learned to do weird video googly-doos and plan to finish the book in the next two weeks!

80smusicvideoo

motiondetection2

Platforms and Programming: OOPs

adventures in gaming, Process Writing

Object-oriented programming really does change a lot of things for Processing. It’s not that the concept of something that is object-oriented was hard for me to understand, but that all of a sudden, there are so many options for where to put a bit of code, and on top of that, the methods in my code need to be called somewhere, and where I call them can make them work, or not. It’s pretty different from just having “setup()” and “draw().” Going forward, on top of learning how one actually does different things with different functions and techniques, my work will be learning about where to place my code. And there’s no right or wrong way of doing that – just ways that break everything and ways that don’t.

The other interesting thing about defining classes and objects and calling methods and all that, is that the error messages in Processing are no longer as accurate as they were for the more basic stuff – Processing no longer necessarily knows where the problem is. So, when calling a new method, sometimes all of a sudden Processing says that my class/object isn’t defined.

So, essentially, when I tried to make my first “game” after redefining my cat drawing as an object (thanks to Gersande for talking some stuff through with me in regards to the constructor), everything broke! And it stayed broken until I spoke with Pippin — together, we rewrote an example program that did everything that I wanted, and then I took that and fixed my broken code.

I’m kind of in love with it. Here’s a .gif of me playing with the cat:
CatRoulette

Before moving onto arrays and the rest of the book, I’ll be making another object-oriented interactive thing. I’m trying to stick to things that I have learned in Daniel Schiffman’s Learning Processing so far, rather than jumping ahead so that means that I only have limited resources at my disposal (why, why, why is text so far away? — I may have to break this rule). That has me thinking about what kinds of stories and mechanics I can create (within a reasonable scope) using just what I know so far. One of the things that immediately came to mind was visual metaphor and simple “procedural rhetoric” — which, in turn, reminded me of The Marriage by Rod Humble. By Humble’s own admission, it is a game that “requires explanation” and honestly, it’s a game that I just don’t like. It comes onto my radar every now and again, and the last time that I encountered it was without explanation at IndieCade East as part of the love and rejection arcade at the Museum of the Moving Image, and it reminded me of how annoyed I felt by it. I also don’t really relate to the “meaning” of the game. Which is fine – it’s a personal game.

Anyhow, because of its use of primitive objects as containers for meaning, I thought about it for this next project that I’m planning. I think I want to use bright colours and balls that are repelled away from the mouse…Or something like that. Something about shoving/jostling through a crowd, perhaps? Or about taking space and making space?

Meanwhile, our discussion (this week between Rilla and I) has shifted to game-making softwares. Our first discussion focused heavily on Twine, and we discussed what it might look like to make a platformer in Twine, and what the essential qualities of a genre are, and whether they are important. Eventually, this lead into a discussion of the relative perceived value of some of the different elements that might go into making a game. For example, on forums, people post example code for each other all the time. But then, nobody wants to take your example poem and put it in their game (probably) – but most writers might not offer either. Writing somehow feels personal while code doesn’t quite as much. And writing somehow feels like something that “everyone can do for themselves.” For audio, there’s no shortage of free soundbanks and CC0-licensed items. For art – people are willing to sell 3D models on asset stores, but it also feels personal. But people would definitely be willing to put your free art in their games. Not your poems, though…not your poems…

That’s a big abbreviation of a much-more nuanced and far-reaching discussion.

PS: Here’s a 3-year-old poem you can use for free in your game, based on how I think the animated adaptation of Swan Lake should have ended:
“The bird was sumptuous; finger-lickin’
Para chuparse los dedos
Meat sucked off bones like fingers, wings,
And what’s this but a shred of silk
Like the colour of Odette’s dress
which was the colour of her eyes
And we knew she’d been missing
for a while
but forgot until the silk was caught in our teeth
Forgot that no good deed goes
unpunished by that magician that
yes, it’s true, you banished
just about fifteen or twenty years ago.
He had a thing, didn’t he,
for swans and also wanting your kingdom
but oh, sorry, we ate it,
and it was sumptuous, and probably
maybe
Well, where would a bird pick up a scrap
of a dress except that maybe
maybe
Odette patched it up!
when she was lost (didn’t you, Odette?)
She’s a kind soul.

The swan should know.”

Platforms and Programming: My Flower Garden

adventures in gaming, Process Writing, Uncategorized

This week, I ran into my first difficulties with Processing – exercise 7-6. Except, exercise 7-6 of whatever edition of Learning Processing is available through the Concordia Library. When I tried to look up the exercise, it didn’t exist!

My exercise about flower gardens and making flowers with differing numbers of petals based on a function seems to have been replaced in newer editions with an exercise about cars.

Probably because it’s a difficult exercise for someone at that point in their learning.

But I am occasionally stubborn, and I worked at that exercise, dang it! Then, after plenty of googling around, I asked for help.

I am lucky to be surrounded by talented folk at the TAG lab, and luckily enough, on that day, Tony Higuchi had the time to give me a hand. After about an hour or so, and after Tony explained many a concept to me, here is what we ended up with:

thousandsofflowers

And, with a small change of parameters, this:

darkflowers

Yeah, it turned out that this was an exercise that didn’t belong in Lesson 2 of the book.

I am about to learn about objects and object-oriented programming… I hear that there will likely be some sticking points there too.

On the platform studies side of things, we have spent some time looking at the games that are discussed in I AM ERROR, and that felt fruitful. Finding ways to engage and argue with what feels “factual” (maybe because I’m just getting started with platform studies) is challenging. For next week, we have decided to try taking a look at how game-making softwares affect what it is possible to make in them.

I’m reminded of a workshop that I took with Kim Hoang about making visual novel romance games in Construct 2. It was possible to do, and relatively simple, but it was also in a fairly roundabout way, with much of it involving the (adequate but) fairly-limited text options. It was a lot about making things visible or invisible at the right time, and using a global variable to track what ought to be on-screen. It didn’t use any of the features that I end up almost immediately setting up – and when it did, it didn’t use them in the ways that I’m used to. Visual Novel tutorials are not popping up everywhere when you google Construct 2. Probably the thing I remember seeing the most of is stuff involving bullet behaviours (even when I wasn’t looking for that kind of stuff, the code examples that I needed were often linked to enemies and bullets).

Well, I’m back to object-oriented programming – for some reason, people make it sound complicated…

Platforms and Programming: Learning Processing

adventures in gaming, Process Writing

Surprisingly empowering. These are words I’d use to describe the beginning of my odyssey into learning Processing this semester as a part of a directed reading course about platforms and processing with Rilla Khaled and Pippin Barr.

I started “seriously” making video games in January 2013, and in that time, I’ve been using programs like Stencyl, Construct 2, Twine, Unity and others that are meant to facilitate game-making for those who don’t program. I am finally taking the leap into learning to program more “seriously” – what an awful word.

Robotprogram

To be clear, I don’t mean to undermine the artists and creators who make games using these sorts of programs, which are amazing and empowering in their own rights. These programs are excellent! They’re powerful! They’re accessible! I want all sorts of people to make games, not just the ones who are interested in learning a programming language.

Nevertheless, as an artist, maker, photographer, creative-type, writer, sculptor, painter, academic, etc… I felt a bit of a chip in my shoulder (and that’s my problem, nobody else’s) about not being able to write code “from scratch” (but I mean, these programming environments are really excellent at predicting things, have plenty built-in already, the libraries are excellent… Is it really from scratch – and who cares?). Thinking about this from a software studies-inspired perspective, I also felt like I learned to do certain things in these programs and it was really easy to do them, but then that there were kinds of actions and things that I wanted to do that they didn’t permit. For example, I want to play around with chatbots, or with having people draw with their mouses. I’m sure it’s possible to do that in Construct 2, but I couldn’t have done it. That drawing stuff is one of the first things that I learned to do in Processing.

mspaintprogram

I guess, learning to program is also just something that I want to learn to do for myself. I love learning languages – the human ones. I’d say that I’m practically a native speaker for French, an intermediate speaker of Spanish, and a beginner in both German and Italian, with a smattering of the Japanese that I learned from watching subbed anime as a teenager. It’s not that I have something to prove to myself or anyone else, but that I still felt like this was something that I need to do to further my skills and abilities as a game creator – partially just for my own understanding.

The book that I’m learning Processing with, “Learning Processing” by Daniel Shiffman, is excellent. It’s friendly, accessible, and gets you going (nearly) right away. I am surprised at what I’m already able to do after just a few chapters. The truth is, though, that those two years working with WYSIWYG-ish/”not-actual-programming” tools taught me a whole lot about how computers think and about the logic of programming. And really, that feels like about half of what this book is teaching me. So, that feels pretty empowering too. I feel encouraged and eager to go on.

There is, too, a connection between platform studies and learning to program – one that I’m still forming and thinking about. In a way, the basics that I am learning, the somewhat labourious way that I am currently drawing things shape by shape and line by line in Processing, feels connected to the labour of early games, shaped by the affordances of hardware. I said limitations at first but erased that. There are limitations, for sure, but it isn’t as if there ever won’t be a bigger, faster, better SOMETHING coming out on the market that will make older tech feel limited. But, then again, “I AM ERROR,” the book we’re currently reading, talks about how Nintendo deliberately damaged the chip they decided to use to make sure that anything proprietary to Coleco (who owned the patent) wouldn’t be an issue. So that and value-for-money on these chips are two limitations that Nintendo placed on themselves.

Well, these are just a few thoughts for now. More to come as I continue learning processing!

Postmortem: Lone Wolf Commando Assault

adventures in gaming, Process Writing

[This post was written as part of a class assignment, but I thought you might be interested in seeing it as well. If you want to play Lone Wolf Commando Assault, you can find it here.]

 

LWCAscreenshot4

OVERVIEW

“This game would explore what it feels like to have non-combative options in digital spaces that are ostensibly ideal for combat. From dungeon-like caves to hills to canyons just perfect for an ambush, what kind of disruption, even momentarily, happens when game designers program in actions or objectives that go beyond our horizon of expectations?”

This is the question that I set out to answer based on the initial game design document for this project for Digital Games Theory and Research. The explanatory text at the end of Lone Wolf Commando Assault summarizes the message of the game thus “In games, it isn’t just that the design of a space determines its use, but also that only certain actions are programmed in for the player to have their avatar perform.” That, of course, isn’t the whole picture, or it wouldn’t have been necessary to make a game about it.

Lone Wolf Commando Assault is a three-level prototype where the player inhabits the role of Major Biefkake, “one tough mother who has seen the horrors of this world and fights to make it a better place.” In the game, the player navigates across sidescrolling (and in one case downscrolling) levels that lead them to various locations where, if this were a mainstream AAA game, there would be some kind of combat-oriented action to take, such as making a sniper’s nest, setting up an ambush, or entering into combat. Instead, those expectations are subverted — there are no combat-oriented actions programmed into the game, so the player has to choose to do something else instead.

CRITICAL DECISIONS

LWCAscreenshot2

Somewhere along the way, the game began to critique elements of heteronormative, patriarchal masculinity. This started with my choice of avatar, I think, and blossomed out from there. Usually, I would deliberately avoid having the main character of my game a white male – not because white males aren’t good or anything, but because we’ve got plenty of them in games already. I thought about who the main character of the game ought to be instead, but decided that, in order to set the horizon of expectations for my players, considering that I would be working with limited resources compared to the lush 3D worlds of AAA games, I needed to highlight what that horizon was in other ways. So, I decided to make a character that could have walked out of Street Fighter or Mortal Kombat, with large arms, a white tanktop highlighting exaggerated muscles, and a soulful red bandana reminiscent of Rambo. Friends encouraged me to consider making levels that would also involve classic RPG characters, but given time constraints, I decided to focus in on the story of Major Biefkake, and I also made the decision to be kind to him. In writing the introductory text for the game, I tried to make use of the rhetoric of “fighting for peace” that exists in games (and around war more generally) where the word fighting usually means literally and peace as an end goal is used as a justification for violent action. This is how Major Biefkake came to be fighting to make the world a better place, looking to leave it kinder than when he was born into it. His possible actions are at least as effective if not more so than violence in making the world kinder.

From there, the very fact that Biefkake was a Rambo-Street-Fighter dude with big beefy arms who was not committing acts of violence, but flying kites, having picnics and exploring nature instead somehow made him humorous. Which, I guess, as a critique of how the patriarchy hurts men, is pretty scathing in and of itself.   

CHALLENGES

One decision that I made probably created quite a bit of extra work for me and may have made my critique of space slightly less effective: it was important for me that, other than the large “LET’S DO IT” and any UI considerations (such as the grenades on which the player’s options are written), all objects in the game be diegetic. What I mean by that is that I wanted to design levels where any items that I placed within them could reasonably be found there and feel natural. This made creating the platformer aspects of the game far more difficult, and in the end, I did have to make some concessions. The level that I am the least happy with is the third one, the Canyon level, where I had to put rocks sticking out because canyons don’t exactly have platforms and I didn’t want the player to just jump to the bottom of the canyon. That’s pretty much what happens anyway, though, and while I liked that this level changes the pace of the game, I’m unhappy with how short it feels and what the descent feels like.

Another major challenge was the amount of art assets that I set out for myself to create. I chose a fairly detailed style, and so each object was fairly time-consuming. The most time-consuming art assets, though, were the multiple-choice visual novel endings for each level. Although they have varying levels of details, having three levels meant drawing 12 manga-style pictures that had to feel like a visual reward for finishing the level. That meant paying quite a bit of attention to consistency across the drawings and that they had to be as good as I could make them. Also, since designing space was a key aspect of this game, I didn’t want to reuse objects from other levels. The number of art assets that it was necessary to create to make each level feel unique definitely made me limit the number of levels more than I would have liked. Thankfully, the programming for this was relatively simple, and I could reuse most of the code between levels. I’m glad that I decided to use Construct 2!

I arrived at most of my design decisions after careful consideration, and I think that what I would have changed about the game if I had to do it over is primarily time-constraint based. If I polished this game further, it would be to re-design the canyon level and add more levels. Perhaps there’s also more of a reward that I could give players at the end of each level – in a visual novel, this would be a photo album or something of that nature where players could review images that they got from getting particular endings or reaching particular points in the game. Maybe, in this case, it should be something like a comic, or maybe I should push the visual novel elements further and have players make more choices after the initial one.

LWCAscreenshot3

FEEDBACK

The feedback that I received from my peers and other playtesters for the game was positive. Many people appreciated the tone of the writing involved – one person noted that it managed not to be too preachy while still getting the point across. The critique that I was aiming for in the game seemed to come across, and that allowed people to engage with critiquing that critique – nice!

One person did note that it was at times difficult to tell an object in the foreground from an object in the background. That’s something that I would definitely work when polishing this game further – playing with lighting and perspective is a challenge for me as a visual artist.

One playtester noted that, “while [the game] critiques expectations about actions possibly in a different space in games, it doesn’t really offer the player more freedom, but simply replaces the static choices traditionally associated with the spaces with other choices, which (while refreshing as a subversion of standard tropes) are just as constraining.” My thoughts are that this is absolutely true – this is not a game that increases player agency. Instead, the inability to perform the expected actions is part of the point: we do what is programmed into the game for us to do, and we can’t really do anything else. Ultimately, I think constraining what a player is able to do in a game is part of a designer’s tool kit: if we could do anything – everything – that we wanted in games all the time, any time, then I think games would be a lot less interesting. While I enjoy emergent gameplay, I am especially pleased when a game supports my subversive play when I least expect it – it is a moment, mediated through the game, that a designer is sharing with me. “Yes,” that designer is saying, “I thought someone might want to try that in the game.” I don’t think that the point is for a game to give players every option that they might think of (because it probably won’t), but rather for games to start giving us more varied decisions overall to make in those spaces.