Awesome Game: Screeps!

I’m here to briefly rave about this game I’ve been playing called Screeps. This real-time MMO AI programming strategy game has managed to get me to spend the last 4 hours writing and tinkering with my own game AI, code, which is deploayed into a substantial persistent universe populated with every other player in semi-competition. A brilliant concept, made by these dudes in Russia.

It’s the best experience I’ve ever had playing around with JavaScript (which, I’ve actually been wanting to work with again for my next project… the last one having been a simple WinJS app back in the WIndows 8 days…). and like software development, a highly satisfying experience when things just work, and an agonizingly annoying one when things don’t work. But whatever your JavaScript skills are today, this game will make you better. (The “CPU” and “memory” quota limitations imposed by the game encourages efficient code.)

Out of my time with this game, I hope to practice development patterns for autonomous agents and to start working with swarm AI behaviors. And of course, as a side benefit, practice JavaScript, which I’ll be using with node.js in a future project! At some point, I hope to apply some of what i learn here in practice in the real world, possibly as we develop drones for defensive purposes.

Now, onto the game…

Simple interface, but insane freedom

The game itself features a simple 2D GUI that can be run in a window or from the Screeps website, where it renders in a browser. You can actually view the world without being a member, but to participate in the persistent universe, there is a paid subscription of around $8 / month (I haven’t decided if I’m going to continue after the first month). It’s cheap though, and as long as it provides me entertainment, I’ll continue to play. The game in the browser scales incredibly well – I even managed to get it loaded on my phone, though the touchscreen didn’t lend to a good experience.

Since you don’t control the units via the GUI, but rather, through code, the bulk of your time is going to be spend in the IDE, tinkering around with your unit and colony behaviors via Javascript code. Finally putting my Game AI programming concepts to use!

I’m pretty proud of my little colony so far; it’s like managing my own colony of ants. Brings back old memories of playing SimAnt as a kid.

The competitive aspect is perhaps the coolest part; very evident even within our own group of “novice” players that there those which are more engaged than others. While their code isn’t visible to you, being an open world MMO RTS, you can see every other player and room. For a few of the more advanced empires, I’ve been trying to reverse engineer useful behavior algorithms to see how to create a general purpose empire expansion code base. AI programming indeed!

Procedurally-generated rooms, mostly. Some substantially better than others. Each symbol denotes a different player’s territory. Because We’re in the “green” novice zone, the massive empires looming just outside can’t touch us. Yet…

I’ve always loved learning with an objective, and the framework of this game is an excellent way to focus on logic. The survival element encourages experimentation, and though I’m still early in the game, I decided to break the peace and send out a few of my “defender” units. You’re competing with every other player in real-time–basically your code vs. theirs, so I figured that I’d want to hone my little empire’s abilities to eventually advance beyond it’s “novice” borders. I went into the nearest player’s base and annihilated their walls, workers, resource storage, and “spawn” (which is where new units are created). This leaves the control point to slowly decay, until my own colony units area able to take over.

Attack!

Such slaughter is the cold work of empire building, though, it looks like, to survive, I’m going to need to know how to fight and grow beyond my own box.

AS for the scale of the game’s persistent univserse, so far, it is massive. The below screenshot is just a tiny segment of the scroll-able space, so it’s a huge amount of virtual territory, though of course, it would have to be, since it includes every other player in this single instance. I can’t tell how much further it will scale though, since right now, the game seems to crawl at around 5-10 seconds / tick. They’ve shared their infrastructure details, which is actually a fascinating read, though, perhaps, they could do something to speed the game up, maybe 2-3x.

My “empire” is but a tiny colony among a massive ocean of empires. Better get coding..

Great game. I will post more about it as I play further! 🙂

 

SoundRemote for Android Wear Launched!

I got my Moto 360 smartwatch in April of 2015, and since then, I’ve been pondering what kind of apps I’d want to make, for education, fun, and profit. Today, I’m releasing my first: SoundRemote, a simple Android Phone/Wear app combo that lets you remotely trigger sounds from your watch to play on your phone.

I got the idea while I playing animal sounds from my phone to mess with my cat, Sherman. He’s an indoor house cat, so I try to provide environmental enrichment to keep him (and myself) entertained. At the first hint of another cat’s meows, his ears would perk up and start roaming around looking for the source, even trying to dig under the sheets if the phone was hidden under them.

With this phenomenon in mind, I wanted to create a way to trigger multiple sounds remotely. And I figured — this could be a cool Wear app, and started in earnest to learn the Wear SDK and media frameworks. A few months of intermittent work later, SoundRemote is now published on the Google Play Store!

SoundRemote is my first Wearable app and second Android app generally (after the poorly-named, but still useful Life Counter). Though it took much longer than expected — for a total of perhaps a solid week of work over the course of a few months — I’m quite satisfied at the outcome with v0.1.

The app is pretty straightforward — you pick a few sounds from your phone’s Notifications directory, which can then be played directly on the phone or triggered via the companion Wearable app on the watch.

This being version 0.1, it isn’t the most pretty, but it does everything I need, and perhaps some more. Hope someone else finds it useful as well.

Per usual, I’ve uploaded the source code to Github for the world’s enjoyment. For v0.2, I hope to have two way-syncing of names between the phone and watch, and maybe prettify it a bit more. Both P2s, so it may be a while… 😛

In the meantime, happy cat-pranking!

Volunteering at the Seattle Aquarium

In this age of digital distractions and social media time-sinks (or black holes, in my case) one of the tragic effects seems to be that volunteering is on the decline. Thinking about this as a community challenge, there lies responsibility in both the citizen to take interest and on organizations to embrace and encourage a vibrant volunteer community as a meaningful part of their operations. We should be more aware of these trends and do better to create volunteer opportunities that have impact and pays back with involvement that goes beyond providing free labor, but also deeper engagement with the community and appreciation for the subject matter.

Graphic by Nikelle Snader//Data from Bureau of Labor Statistics

Aside from the slight uptick during the Great Recession, it seems that the trend of declining volunteerism continues for the American population. It’s sad that the current rate is so low, that barely one in four people regularly participate in a volunteer activity. Part of this is our wealth-focused culture that perceives it as “unpaid labor”, or as tedious tasks not worthy of pay, or to be done in retirement looking for ‘something to do’. I got a few of these speaking with well-to-do friends living pseudo-competitive lives.

Volunteering is more than just free labor, it’s crucially valuable working philosophy that must be a part of any civic society, and is certainly fulfilling in its involvement with people and subject. When you are working for a cause dear to you and that cause doesn’t involve a paycheck, some other intrinsic motivation must be involved. For me, it’s usually an intellectual or experiential pursuit, one of passion and ‘purpose’ — the kind of thing one would do even without being paid for it. Along the way, you meet people who likewise are more genuinely aligned in those values, and you work together by participating and to furthering your community, by freely giving yourself to cause you believe in. I consider this a good use of my human capital, and a far better way to help further a cause than throwing in a few dollars.

Behavioral economist and Duke researcher Dan Arely spoke about some interesting findings from his studies into human behavior; in that there is more than one market for labor participation, particularly around the effect of money on motivation. In his study, he found that there exists a ‘monetary market’, and a ‘social market’ — the latter being the things we invest into because they’re personally important to us, rather than using a paid compensation as a proxy for our personal value. The findings were that even a tiny amount of compensation changes the nature of that worker-work relationship. The takeaway from this is that volunteer programs must understand this dynamic of motivation and work to meet the individuals’ and community’s intrinsic motivations to maintain an vibrant volunteer community.

In these polarized times, anything to build more civic cohesion is a win to me and volunteerism can be a great piece of that.

Volunteering at the Seattle Aquarium (2014-2015)

One of my favorite spots to start my volunteering day!

I recently had the opportunity to be an interpretive volunteer at the Seattle Aquarium. The aquarium had a well-established volunteer program provide the majority of working hands during any given business day. I don’t know exact figures, but I recall hearing numbers of around 75% (of people? physical labor hours?) involved in operations were some sort of volunteer. My involvement was about 200 hours between 2014-2015, or 4 hours a week on Saturday afternoons.

In absolute numbers, the community was huge, with over a thousand active volunteers at any given year, with a highly educated/science-capable staff that provided much of the structure for a mix of learning and service work to provide ‘interpretive services’ to the aquarium’s visitors. It’s pretty impressive how much operational responsibility rested on volunteers at any given time, particularly those interacting with the public. This is a non-trivial contribution of value on part of a generally educated and scientifically capable lay-community, “representing a donated value of over $2.3 million toward our mission: Inspiring Conservation of Our Marine Environment” (Seattle Aquarium: Volunteer).

A typical Saturday afternoon at the tidepools. The most hands on part of the aquarium, half was encouraging the kids to explore, while the other half was ensuring they don’t do something insane. *Rarely* were these the same children. Parents take note–raise your kids right!

The volunteers themselves were a fairly diverse group — a wide range of ages and academic backgrounds were represented, though the group skewed somewhat female and usually with some academic or professional orientation toward biological sciences. Generally, the average adult volunteer struck me as smart, conservation-minded, proactive learners, who loved the sciences and wanted to be involved in the community. There also was a high school volunteer program active during the summers–I would have loved to be involved in such a program in high school, though the typical cohort included some more of the “mom signed me up” variety.

The aquarium staff had developed an effective learning curriculum that allowed anyone, from a total novice to a amateur marine biologist, to still learn so much more about the local ecosystem and to share in the ongoing events and research. I met a lot of really awesome people through my two years there and always felt that near direct access to research and researchers was available (at least, to the clever aspirant).

Behind the scenes look at volunteer enrichment, a pre-day session reviewing happenings in marine science, stuff going on at the aquarium, and sharing ideas on how to better reach out to the public.

I loved the work on two fronts — the ability to personally involve myself on a subject of interest with staff and research, and to share it with others via peers (other volunteers) and via outreach the external community at-large. There’s so much to the incredible marine ecosystem that is Puget Sound and the Salish Sea, our little corner linked to the Pacific Ocean; from the salmon runs from the rivers to the 100+ resident orcas whales of Puget Sound, to be able to participate even remotely in the community was incredibly fulfilling.

To then be able to share with the greater public was a particularly unique experience, as I don’t often work and interact directly with people in that capacity (at least not in large numbers, hundreds / day). Paid or not, aquarium patrons certainly looked to volunteers as responsible individuals who could help them in their overall experience, and that’s what were were there for, though sometimes, it also included managing some unruly behavior, from both kids and their parents.

Not the preferred way of experiencing the tide pools…

Given that the Aquarium is right on the Seattle Waterfront, during the summer, it attracts huge crowds, sometimes entire school-fulls on field trips (learning mayhem?) and can become a challenge for staff and volunteers to manage, but in it all, the most fulfilling aspect for me of interpretive work was encouraging others in their curiosity and pushing them along in their willingness to learn.

Introducing… Cupcake! Our Giant Pacific Octopus!

 

Octopus feeding — always a busy time!

Captain Barnacles of the Octonauts, dropping in at the aquarium.

A photo posted by Alexander (@skyrien) on

Spotted lagoon jellies, some of the coolest jellyfish in the Pacific!

A video posted by Alexander (@skyrien) on

Volunteering at the aquarium never really felt like work; (though maybe because I was only putting in 4 hours / week); for the most part, my time there felt much more like play; as in, not a unpaid shift at a job, but a free backstage access pass to a place that I enjoy! Some of the work did become tedious; but I came to love particular aspects of my shifts at the aquarium; personally, playing with feeding kelp to sea urchins and exploring plankton tow findings under a microscope filled many fun hours for me. That I got to share it with my volunteer peers, staff, and the public others was a side bonus!

I lived in Seattle for seven years, it’s a shame I didn’t start investing my time into the awesome volunteering opportunities until the last two. And it doesn’t have to be at the aquarium; even for me, at the one year mark, I was debating moving onto Life Sciences volunteering or to another domain entirely. For me, the point though, is to develop that pillar of civic life; of freely contributing to my community with what services I can best provide.

On top of that, Puget Sound is one of the most spectacular marine environments available to us in the United States; having already loved Seattle, my experience at the aquarium taught me so many things about the region’s ecosystems; from the importance of water management, to salmon run protection (to get a sense of people that were present there, one girl I met was already an expert at salmon fishery management… and she was only 19!), and I got to actually meet people like me, with similar interests to build on.

So yes, totally fulfilling, both for one’s own experience of being able to freely give one’s time and abilities and also as as contribution to engage my community and participate in this act of civic citizenship. I highly encourage everyone to pursue volunteering as one of the pillars of involvement in civic society.

One of my favorite spots; at the rotating exhibit, with the microscope (for examining plankton tow findings)

 

Another super cute creature, this one would remind me of a rabbit as it hopped around on its fins

 

The glorious hooded nudibranch! I would have never have known these supercool creatures existed if I hadn’t volunteered here

 

Another one of my favorite aquarium spots, the “Dome”. Apparently there are still fish there from when it was built (the sturgeon probably). It’s certainly was a nice cozy place to chill (or search for eels, as I often did). No cell phone reception though.

 

We also got access to the behind-the-scenes workings of an aquarium, and had the opportunity to learn about the systems for maintaining the exhibits. I hadn’t really thought of the massive infrastructure needed for an aquarium, but it’s certainly far more than a few swimming pools

 

The Twelfth Man and Santa himself also are fans of the Aquarium

 

Feeding octopus is hard work… but rewarding! They’re freakishly intelligent animals!

 

My hair grew a lot during my time here…