Meeting in the Middle

When I met my husband, he was a Luddite. Now, I know what you’re thinking: that word is tossed around a lot these days, usually to mean someone who either a) chooses not to use certain technology, b) is ignorant of technology or c) is just plain bad at using technology. However, those definitions fail to capture the traditional meaning of the word. A Luddite is someone who is actively opposed to new technology. That’s what my husband was.

He didn’t grow up with the Internet, and only begrudgingly used a computer to type school reports. He never took any computer classes, which I still have trouble wrapping my head around since we’re only two years apart and Keyboarding was a requirement at my school. He was very suspicious of technology and felt that it was, to put it mildly, ruining everything. “I don’t understand the concept of ‘browsing the Internet,'” he said to me once. “It sounds like a complete waste of time.” He blamed the Internet and social media for promoting a narcissistic culture where everyone feels entitled to praise for their opinions, regardless of how stupid or misguided they may be. He felt that technology was taking away people’s jobs. He also pointed out how much harder it is for an individual to perform their own car repairs when so many functions have become computerized.

In contrast, my family started our first AOL dial-up Internet trial when I was 8 or 9 years old. When I was 13, I published my first website and joined an online forum for fans of the TV show Friends where I met and befriended interesting people from all over the world. My parents let me have my own computer in my room and trusted me to use common sense (something I’m not sure I’d be willing to do for my own child at that age). Basically, I’ve been deeply embedded in a world of technology for most of my life and my husband couldn’t fathom that. It was completely alien to him.

When we’d been dating for awhile and things were getting serious, he made sure to promise me that he’d get the Internet hooked up at the farmhouse that he’d been simultaneously living in and renovating. It was around that time that I got my first iPhone, so I gave him my old iPod Touch and showed him how to find funny YouTube videos and check his email (he did have an email address, for banking purposes). He took to it quickly and found that it was really handy for looking up things like repair instructions and how-tos, farm futures, store phone numbers and hours, and directions.

Fast-forward four years. He now complains about our Internet speed as much as I do (we can’t get more than 6Mbps down without switching to satellite, which we don’t want to do because of the latency issues). He’s smashed my high scores in Tiny Wings and Angry Birds, and regularly beats everyone at Words with Friends. A few months ago he said goodbye to his flip phone and began using my old iPhone 5s. It’s been a fascinating transition to watch, from my perspective.

However, this post wasn’t meant to be about how he’s changed. It’s really about how I’ve changed.

“Why would you willingly give up your privacy like that?” he asked me four years ago when I showed him things on Facebook. My knee-jerk thought was: “because it’s fun!” However, over time it got me thinking. I searched for my name on Google and was surprised to find pages and pages of relevant results, many of which were account profiles I created for services that I never ended up using. It was too much. I became a little jealous: after all, his digital footprint was virtually non-existent while mine was a cluttered mess.

So I started deleting stuff. Vine? Gone. LinkedIn? Never used it anyway. If you search for my name, there’s still a lot of junk, but let me tell you—it’s a lot better than it was. Even now, Facebook’s “On This Day” feature serves as a continual reminder of how unguarded I used to be on the Internet, posting my every thought and feeling with abandon. Pulling back feels good. It feels like wisdom and maturity.

One of his family members has a piece of opaque tape over her iSight camera.

I haven’t reached that point yet, but living with a non-technological person for the past three years has definitely made me more mindful about my privacy. It’s also made me more thoughtful and skeptical about new technology, especially the whole “Internet of Things.” More often I find myself stopping to ask “why?” Why do I check my WordPress stats page so much? Why do I want to make iOS games? Why does a refrigerator need to connect to wifi? (spoiler alert: it doesn’t) More importantly: Why did I ever look down at people who have flip phones and don’t have Facebook accounts and choose to live a simpler life?

After all, just because their voices aren’t present in the world of 0s and 1s doesn’t mean they don’t matter. I think many of us could stand to remember that. (Now go hug your favorite offline relative!)

An Even Better Live Photo Editor

Alive! As it turns out, an exclamation point can make a world of difference. While Alive (my previous fave) is still a great Live Photo to GIF converter, Alive! ($1.99) is so much more. Alive! is basically the VSCO or Instagram of Live Photos.

There are 22 filters you can choose from and you can also fine tune things like brightness, contrast, saturation, warmth, sharpness, etc. There are four settings for both GIF quality and speed (you can even have the GIF play backwards). The speeds range from 0.5x to 2.0x and the quality from Low (240×320) to Highest (540×720). You can also export Live Photos as a movie with the ability to adjust the overall volume and with three options for both Video size and Quality.

Alive! Filters

The Export menu offers four options: Save as Regular Photo, Save as Live Photo, Export as a Movie, or Export as GIF. When I chose the GIF export, it brought up two options: Share on Twitter, or More Sharing Options. The latter brought up the usual iOS share sheet, where I was able to save the GIF straight to Dropbox.

My only nitpick with this app is there’s no way to edit the length of the Live Photos. In other words, you can’t crop or trim them in any way. However, the filters and image adjustments totally make up for that. Here’s a Live Photo-turned-GIF of our calf, Molly, using the Icarus filter and Medium GIF quality:

MollyLivePhoto

Molly likes to be petted.

Anyway, if you want to up your Live Photo game considerably, go buy Alive!. It’s worth it.

December Photo Project 2015

If you enjoy taking pictures and haven’t heard of the December Photo Project, I encourage you to check it out and try it this year. All you have to do is take one photo every day from now until December 25 and post it online somewhere, either in one of the dedicate Flickr or Facebook groups, or using the hashtag #DPP2015. What I love about it is it forces me to be creative during a month that is notoriously terrible for picture-taking (it gets dark really early, it’s often overcast outside, I run out of Christmas decorations to photograph, etc. etc.).

I’ve participated in the project for four years now, and sometimes I’ll add extra restrictions for myself to make it more interesting. For instance, one year I did all Instagram pics; another year I restricted myself to using my DSLR.

This year, I’m limiting myself to Live Photos that are converted to GIFs. This provides the extra challenge of finding an interesting subject that also features some sort of motion. I’ll be posting my pics on Facebook and Twitter this year. I invite you to join me!

Here are some apps that can convert Live Photos to GIFs:

  • LiveToGIF (Free)
  • Live GIF ($1.99)
  • Alive (Free, with $1.99 IAP to remove branding & ads)
  • Lively (Free for 3 exports, then $1.99)
  • ImgPlay (Free w/$1.99 IAP for extra features)

Alive has been my favorite so far, and will probably be the one I use for this project. Now: time to go hunting for today’s subject!

Update 12-1-15 3:45PM CST: I found an even better app for converting Live Photos called Alive! (yes, same name except with an exclamation point). It’s $1.99 and is exactly what I’ve been looking for. I’m going to write a whole separate post on it in a moment.

Gift Idea: Gadget Bags for Ladies

If you know of a loved one who needs a good bag to tote their gadgets around in, I highly recommend these bags by BorsaBella. Let me begin by saying that I own three of them: two tablet bags and this larger purse.

Here’s what I like about them:

  • They come in fun colors/patterns.
  • The loops that hold the straps to the bag are ridiculously reinforced. They’re not going to break.
  • The straps themselves are adjustable, durable, removable, and replaceable.
  • The bags are machine washable. You’re supposed to hang them to dry but I sent mine through the dryer and they’re fine. (You should probably follow the company’s recommendations though.)
  • They have spacious pockets with high quality linings.
  • If you want, you can have them monogrammed.

If you’d rather have a clutch, there’s this cool Power Wallet from Photojojo that can charge your phone (I got one for Christmas last year; it’s nifty) or these stylish RFID-blocking clutches from Articulate (I don’t own one of these, but am thinking of getting one). Got a favorite gadget bag/purse/wallet geared toward women? Tweet at me (@bhansmeyer) and I’ll add your suggestion to this post!

Giving Thanks

This morning I listened to the latest episode of ATP where John, Casey, and Marco talked about what 2015 tech they are thankful for. That’s a neat idea, so I thought I’d do the same.

In no particular order:

  1. USB/auxiliary ports in car stereos. Ok, I know this isn’t even remotely recent tech, but my husband installed a new stereo in my 1997 Infiniti and now I can finally listen to my playlists and podcasts easily through my car speakers using a built-in USB port. It was seriously annoying to have to burn CDs or listen to the radio all the time!

  2. f.lux. I used to have trouble winding down at night, in part because of all the blue light that comes from my computer and phone screen. f.lux has really helped with that, and now that I’ve side-loaded a similar, open source app onto my phone, I find that my eyes are much happier and my sleep habits are much healthier overall.

  3. My Apple Watch. Like Marco, I haven’t really worn a watch since high school, so there’s a sense in which I’m just enjoying wearing a watch again. However, I think my favorite aspect of wearing the Apple Watch so far is that I’ve been able to keep my iPhone on silent for months. I don’t know, maybe it’s just me, but I find the haptic feedback on the watch significantly less jarring than any of the notification tones that iOS offers. Also, I used to miss phone calls all the time, and now I’ve hardly missed one! Finally, I definitely appreciate how the Activity rings make me more conscious of my health in general (even if I ignore them sometimes).

  4. Online learning resources/communities. I’m thankful for every person out there who takes the time to answer questions in online forums and/or produce tutorials for various programming concepts. Whether it’s a big company like Treehouse or Lynda.com, or an individual with a kind heart, I really appreciate it. I would have had a much more difficult time getting started with programming if it hadn’t been for Stack Overflow, AppCoda, Ray Wenderlich, and an assortment of small blogs. All of these sites and services are made possible by the Internet, so that’s why I’m counting this as tech!

  5. My Keurig 2.0 coffee machine. Yes, I know it’s not even close to fine artisanal coffee, but when I first wake up in the morning I’m in no mood to spend time crafting the perfect cup. Instead, I pop in a Grove Square French vanilla k-cup (only $5.94 for 18 of them) and I’m on my way to enjoying the same kind of syrup-and-sugar-laden beverage you can get at Starbucks. I’ve been even more thankful for this since I became pregnant and decided to limit myself to one caffeinated drink per day, as it’s much less tempting than having a whole pot of coffee sitting around.

  6. Live Photos on the iPhone 6S. This is something that I’m sort of pre-thankful for, because while it’s been fun to take photos of my pets, I know the feature will mean a lot more to me when my son is born! Until then, here’s a Live Photo-turned-GIF of Daisy sleeping by the glass door this morning while I watched the Macy’s Thanksgiving Day parade (created with Alive). Note the icy rain coming down outside—it’s the reason my husband’s family postponed our get-together until tomorrow.

Daisy sleeping by the door

Anyway, that’s all I can think of for now. To all who are celebrating today: Happy Thanksgiving!

First App Sales

When my first app became available in the App Store on June 10, I hoped to make about $100 from it. I priced it at $0.99, and figured at least a few people would be looking for a Bible verse app for their Apple Watch.

I quickly realized I wasn’t going to make my revenue goal when by early October the app had only sold a grand total of 14 copies. ? So, I made it free. Now it’s up to about 90 total downloads.

I’m not at all discouraged by how everything turned out. Refining Fire was not only my first iOS app, it was my first real programming endeavor…well, ever. Prior to that, I had written some HTML, made one silly Scratch game, and done some projects in Processing for an Intro to Computer Science class. I have no illusions that it’s an amazing app or anything—I know it’s simple, and lacks features that many people would want, such as licensed Bible translations (which I don’t have the money for).

Anyway, I thought I’d make a quick pros and cons list about releasing Refining Fire as a sort of final reflection on the experience.

Cons

  • Didn’t make $100

Pros

  • Familiarized myself with APIs such as UIKit and Core Data
  • Learned how to add multiple targets to my Xcode project (for the Apple Watch and Today Widget) and share data between them using a custom framework
  • Got involved with Stack Overflow
  • Learned how to parse JSON
  • Figured out how to use Interface Builder and Auto Layout
  • Learned how to troubleshoot a bunch of weird and obscure build settings errors in Xcode ?
  • Got practice in submitting apps through iTunes Connect
  • Something I made is running on my watch. Like, holy crap. That’s really cool!

Based on what happened, I’ve adjusted my expectations for my first game release. I still plan to sell it for either $0.99 or $1.99, but I no longer have a specific revenue goal in mind. I’ll just put it out there and see what happens, and enjoy learning new things along the way.

Finally, a quick shoutout to Manton Reece: If you happen to see this, thanks for mentioning me on your blog! I’m a big fan of Core Intuition. :)

My Favorite Headphones

After all, I can’t be a real Apple blogger until I write about my favorite headphones, right? ;) Well, here they are: the Audio-Technica ATH-M50x ($160) studio monitor headphones, in limited-edition blue. As of the time of this writing they are still available in blue, although according to Audio-Technica’s website, that color has been discontinued. They also come in white, black, and dark green.
ATH-M50x
Marco Arment added the ATH-M50x’s to his headphone mega-review in August and they ended being his #2 pick. I don’t blame him! While they might not be as fashionable as Beats, these phones sound seriously great.

I’m currently listening to Adele’s 25 and smiling because not only is it an amazing album, but also because I know I’m not missing out on anything. The warm, raw timbre of the cello throughout “Love in the Dark,” the soft guitar arpeggios in “Million Years Ago,” and let’s not forget Adele’s ridiculous range—all of it comes through with a crispness and a richness that most Beats headphones could only dream of (though to be fair, I’ve only tried Beats at in-store demo displays).

To my ears, the ATH-50x’s offer the perfect balance of treble and bass. Two of my favorite tracks on 25 so far have been the ballads “Remedy” and “All I Ask,” which feature lots of deep brooding piano notes in the lower octaves that are not at all lost or muddied through the ATH-50x’s. And when the strings kick it into high gear at the end of “Love in the Dark,” let me tell ya, those violins are screamin’ (and I mean that in the best way possible).

As far as accessories go, the headphones are collapsible and come with a carrying case. They also come with three detachable cable options: a 9.8″ straight cable, a coiled cable that stretches to 9.8″, and a smaller 3.9″ straight cable. At only $156 for the black ones, they’d make an excellent Christmas gift this year.

Oh, and if you’re looking for an iOS app that allows you to customize EQ settings, I recommend TuneShell. It also serves as a pretty decent Music app replacement if you’re looking for that as well.

Stay-at-Home Coding

xkcd: Exploits of a Mom

I’m going to be a mom. I quit my job as a secretary over a year ago because I wanted to focus on finishing my masters degree and starting a family, and now both of those things have become a reality. I have a degree in Educational Technology, and when my son is born in March I’ll officially be a stay-at-home mom.

I’m also a conservative Christian. Because I’m obsessed with technology, 90% of the people I follow on Twitter don’t share my political views, but that’s okay. In case there’s any confusion: I don’t hate anyone because they’re liberal, and I don’t think it’s wrong for women to have jobs. Empathy is important to me, and I always try to understand where people are coming from.

What I’m wondering, though, is this: is there room in the Apple blogging/development scene for the perspective of a conservative, stay-at-home mom?

A few months ago I searched Google for “moms who code,” supposing that there would be some non-profit group with that name dedicated to building a community for women developers with children. Instead, I found nothing. Let me reiterate: as far as I know, there is no online space for stay-at-home moms who are (or want to become) independent software/game developers—and who don’t necessarily want to land a high-paying tech job outside the home. Of course, maybe I’m just an outlier in this case and such a community isn’t necessary or even viable. If that’s true, then I guess I’m in for a pretty lonely ride.

At least I have my corgi. (Photo credit: http://www.dignited.com/wp-content/uploads/2014/05/I-heard-hes-good-at-coding-l.jpg)

At least I have my corgi. (Photo credit)

Here’s the thing: today’s stay-at-home mom culture can be stifling at times, at least for someone like me. Don’t get me wrong; I think it’s great that so many ladies are authoring popular blogs about food, family, decorating, crafts, etc. and are running successful Etsy shops and stuff. That’s really awesome. Those just…aren’t my hobbies, I guess? I’m into programming, and video games, and photography, and reading lengthy think pieces about the future of personal computing and the sustainability of the indie app market.

And so, for the sake of my own happiness (and sanity!), I have to believe that the following is true:

  • Moms can be independent software/game developers
  • Moms aren’t limited to creating products meant for children, moms, or women in general
  • Moms can offer unique and valuable perspectives on technology

Anyway, if I can encourage just one woman or girl by arguing that “stay-at-home mom” and “programmer” aren’t mutually exclusive life goals, I’ll be pretty excited! And if anybody knows of a community for programmers or game devs who are also moms, feel free to drop me a line.

Football and Fleece

Like many hobbyist developers, I’m planning to create all of the art and music for my game myself, with the possible exception of some free/public domain sound effects. That being said, I’m not exactly an artist.

Tonight, as I sat with my husband watching the Huskers eke out a controversial and unlikely win against undefeated Michigan State, I made this sheep:

sheep sprite

And it’s a cute sheep. I think I can work with it. Eventually, I’d like for the sheep to have a couple different idle animations…perhaps blinking its eyes and flicking one ear at a time.

I know it’s probably against both convention and good sense to work on the art for my game before I start programming, but without the art, I just can’t seem to get motivated. If I can get all of the assets done for just one level, that’ll be enough for me to want to start working on the code. And right now, I have only one asset left to complete: the hero of my little game! Hopefully my next update will be about digging in to the actual Xcode project, with the goal of having the first level fully functional on iPad by Christmas.

2016 MacBook Pro Wishlist

In March, my 15-inch MacBook Pro will be 5 years old. It doesn’t have a Retina display or a Force Touch trackpad, it has an optical drive and a Firewire 800 port, and it weighs about 5.6 pounds. In other words, it’s a clunky, pixelated behemoth, and though it’s served me very well over the years, I can’t wait to say goodbye to it.

Unboxing photo from March 4, 2011

Unboxing photo from March 4, 2011

Here are my hopes and dreams for the new Skylake MacBook Pros that will supposedly be released early next year, in no particular order:

  1. Lighter. According to Apple, the average weight of the current 15″ MacBook Pro is about 4.49 pounds. Given the company’s unwavering commitment to shrinking things, I think I can reasonably expect that number to drop a bit for next year’s models.
  2. Touch ID. Because why not?
  3. Individually backlit keys. I don’t really want to see any changes to the key travel, but those backlit keys on the new MacBook are rad.
  4. Wider color gamut, like the new iMacs. I don’t know if this is technically possible because I have zero knowledge about display technology. However, since MacBook Pros are generally geared toward creative professionals, this would be a change that makes sense.
  5. Different finishes. Gold. Space Gray. Black. White. I don’t really care, as long as it’s not just stupid boring silver. Ugh.
  6. USB-C/Thunderbolt 3 ports. Because if I’m going to be using this laptop for another 5 years, it needs to have the Port of the Future. Or whatever.

Ok, now for some truly weird suggestions. WHAT IF:

  • The trackpad was bigger and had built-in Pencil support. Like a mini built-in Wacom tablet. I know: crazy.
  • You could change the color of the LEDs behind the keyboard. Psychedelic.

Mostly, I just hope the darn things come out soon. I know we’re waiting on Intel’s Skylake H-series chips with Iris Pro graphics, but I mean, early 2016 could mean anything from January to April, and I don’t know if I can wait that long!

The Excitement Stage

If there’s one thing I’ve learned over the past week, it’s that catching a cold while pregnant really, really sucks. All of the good meds are off-limits, so it’s all up to warm washcloths on my head and saline nasal drops and plain ol’ Tylenol to save the day. However, despite all that, I did manage to drag myself to the nearest Best Buy to scoop up a new Apple TV on Friday, and boy: it got me thinking1.

When I first came up with my idea for a game, I thought that I’d make it iPhone-only, just to make it simpler for myself. However, everything Apple has done in the past few years—Storyboards, Auto Layout, Size Classes, asset catalogs—clearly points to a preference for Universal apps2. Also, I enjoy playing games on my iPad, and I know others do too (especially kids, who would be a great audience for my game). But what about the TV? Is that biting off more than I can chew?

Turns Out™, it’s really easy to get a Universal game working on the new Apple TV. My plan is for my game to use the device’s accelerometer for character movement; conveniently, an accelerometer is built in to the new Siri remote, though I’m not sure how easy it is to figure out the remote orientation. (EDIT: I just checked the API doc for GCMotion and found this statement:

Although the remote supports motion data (and the GCMotion profile), the remote cannot determine the attitude or rotation of the remote. The corresponding properties always return constant values.

I’m not exactly sure how to interpret that, so I guess I’ll have to experiment once I get things up and running.)

In addition to the prospect of having my game work on the Apple TV, another thing that really excited me today was the release of a documentary called CODEGIRL. It’s free to watch on YouTube until November 5, so go see it while you can! I watched the entire thing this afternoon and found it really inspiring. I wish such opportunities existed when I was in high school, because even though I got straight As and was tied with my best friend as salutatorian of our class, I still didn’t think I was smart enough for a career in computer science. Part of that was my own stupid fault, and part of it was all that cultural socialization crap that says that programming is for boys (particularly boys who have been tinkering with computers since they were two years old or whatever).

Anyway, it’s a pretty neat film and I hope that a lot of people check it out!

 

  1. I realize that this is all very First World Problems, as I am very blessed to both be pregnant and able to buy an Apple TV.
  2. Ars Technica thinks so too.

The Joy of the Fujifilm x100T

Fujifilm x100T

Today I’d like to talk about one of my favorite new toys: the Fujifilm x100T. I bought as a birthday treat for myself back in July, and have had only a few opportunities to really use it since then. However, the times I have used it, I’ve experienced a joy that reminds me of why I ever loved photography in the first place.

Daisy

The first thing you should know about the x100T is that it has a fixed 23mm f/2 lens, which is equivalent to 35mm. In other words, if you want to zoom in and out, you have to use your feet. The design harkens back to an earlier time (though it does come in an all black version that looks slightly less retro), and the similarities to old film cameras don’t end there. Which brings me to the second thing you should know about the x100T: it has lots of physical controls. Metal knobs, rings, wheels. They feel cool to the touch, are heavy-duty, durable, and make a satisfying “click” when you turn them. That physicality is key to the experience: you feel like you’re finally manipulating hardware instead of just software. Sure, you can use the screen to set stuff too, but why would you want to?

The front of the lens has an aperture adjustment ring, which can be set to “A” for auto. On the top of the camera there are knobs for shutter speed (which can also be set to “A”) and exposure compensation as well. If the aperture is set to auto and the shutter speed is not, you’re in shutter priority mode, and vice versa. I left both the aperture and shutter speed on auto for most of the photos I took and was pleased with the results.

Flowers

Another one of my absolute favorite things about the x100T is how light it is. According to Fuji’s specifications, it weighs nearly a pound…but it certainly doesn’t feel like it. I have a deep-seated hatred of feeling encumbered, especially when I’m going to be doing a lot of walking around for a long period of time. It’s the reason why I sometimes carry a wallet instead of a purse. So believe me when I say that I was happy to have this thing dangling around my neck for hours on end!

Sunset

The final feature I’d like to talk about is Fuji’s film simulations. Because I love vibrant colors, all of the photos in this post were set to the “Velvia/Vibrant” simulation, with an additional simulated neutral density filter. All of the photos are also untouched: all I did was process them in-camera using Fuji’s RAW-processing feature, which basically “bakes in” the film simulation to a JPEG along with any other tweaks you want to make (I didn’t make any).

Mayflower Gulch

Bear Lake

I mostly like to take pictures of animals and flowers and landscapes, so I can’t really speak to how well the x100T handles portraits. However, it’s going to be my primary baby-photo-taking instrument as soon as my son or daughter arrives in March, so I guess I’ll find out! As of this writing, the Fujifilm x100T is $1299 at Amazon.com.

A Small Start

No one’s first game is great (or at least, that’s what I keep telling myself).

Sadly, I’ve spent much more time reading about making games and listening to podcasts about making games than I have actually trying to make a game. It’s that paralyzing fear of starting something…of not being adequately prepared, of not doing things the “right” way (whatever that is), of not being able to see it through. And then of course there’s the ultimate fear: the fear of failure. And since being unable to start something is in itself a type of failure, I have thus found myself in the Creative Anxiety Spiral of Doom for most of my life.

But this week I started making some trees 1 and maybe tomorrow I’ll make a pumpkin or a piece of fence.

game trees

And maybe it will start to get easier.

Or maybe it won’t. But either way, I want to keep chugging ahead, and I’m hoping this blog will help hold me accountable.

GameplayKit and Physics

Let me start by saying that I’m completely new to game development. I would like to make a top-down 2D game in which there is a “chasing” mechanic. As in: you, the player, are able to chase other characters around the game world.

It seems like GameplayKit would be a good fit for this because it features an agent/goal/behavior system and one of the included behaviors is a goal to “flee” from another agent. I spent a long time looking at the AgentsCatalog sample code that Apple provided and attempted to translate the FleeScene into Swift. This resulted in the following:

Fleeing prototype

The little orange dot follows your touch and the big blue dots flee from the orange dot. At first they just fled right off the screen, so I set up a SpriteKit edge loop to contain them.

Herein lies the problem: All of the dots “stick” to the edge loop instead of bouncing off of it, regardless of how fast they’re moving. They also fail to bounce off of each other. They’ll push each other around a bit, but there’s no bouncing. I have a feeling this has to do with the mismatch between SpriteKit’s physics system and GameplayKit’s agent system, but I don’t know how to fix it.

In the delegate method “agentWillUpdate,” I update the agent’s position to match the sprite’s position. In “agentDidUpdate,” I do the opposite. That’s…probably not right? I have no idea. It’s probably worth noting that I’m not using the Entity-Component system…I just have SKSpriteNodes that own GKAgent2Ds.

Anyway, somebody needs to write a tutorial re: GameplayKit and physics. Please and thank you!