Video Game Music’s Tremendous Power

Voice actor David W. Collins digging into the Super Mario Bros. ‘Ground Theme’ on his recently debuted Soundtrack Show podcast:

As a general concept, game music is very often written to loop back around, seamlessly. This composition is meant to loop endlessly into itself so you can play for hours and hours and hours. But the actual composition that we just listened to was only 80 seconds long. 80 seconds! And there’s repetition within that 80 seconds; there are repeating parts.

There are other pieces of music in this game — the underground music, the underwater music, the castle music, a series of music fanfares, etc. — but in total, the amount of music written for this game adds up to less than 5 minutes. 5 minutes of music. 40 hours of gameplay, give or take on average. 40 million copies.

Now we’re starting to get a picture of the power of video game music. The amount of times that we heard that 80 seconds. That’s what I mean about video game music’s tremendous power. It’s why we have to talk about it.

Don’t take repetition for granted. When done poorly, repetitious music can become jarring — quickly. When done well, a great loop can increase the feeling of immersion in the game’s world. When done well, a standalone soundtrack’s standard of two loops per song feels wrong.

Nintendo has a knack for this. Koji Kondo — composer of many first-party Nintendo titles, including Super Mario Bros. — is without a doubt a master at this. But even Kazumi Tokata painted his masterful stroke with the Wii’s heavily repeatable ‘Mii Plaza’ and ‘Wii Shop Channel’ themes, both of which continue to live on in today’s mainstream.

While today’s AAA titles can incorporate orchestral arrangements through to procedurally generated soundscapes, repetition in video game music was born with the medium and will continue to live on. For those of us who grew of up listening to 8-bit repetitions to orchestral repetitions, we’ve had the great fortune of experiencing the evolution of a music technology, medium, and experience, as I touched on in my piece 1985: Burst and Bloom:

The sounds, visuals, and interactivity provided a pool of imagination. The limitations of early consoles could not provide orchestral arrangements. Instead, repetitious patterns were drilled into our heads. They not only encapsulated the game we were playing, but they opened the world outside to a new soundtrack, creating a wealth of memories that could be tapped into from a few simple chirps. Hearing these primitive arrangements evolve felt like experiencing the birth of music. As hardware progressed, so did the complexity if the music. Repetitive pieces turned into grand and iconic themes, each game re-shaping the idea and importance of video game music.

Final Fantasy X, Kingdom Hearts, Mega Man 2, Super Mario World, Super Mario 64, T&C Surf Designs: Wood & Water Rage, Vectorman — these are some of my favorites.

Tagged , , ,

Most Video Games Are Too Long

Patrick Klepek for Vice’s Waypoint:

Minit knew what it wanted to accomplish, and how long it took to accomplish it. Done. But it also left me wanting more. If they announce a sequel—may I propose Another Minit?—I’ll be there with bells on. Too many games leave me exhausted, as if my dozens of hours have only made a small dent. (This is especially true for open world games.)

I recently played and completed Florence on iOS in 40 minutes. In that short stint, it hooked me, filled me with hope, sadness, and nostalgia, and ultimately left a last impression on me. It felt much like Disney’s Paperman short.

I understand the feeling of immersion, but even with The Legend of Zelda: Breath of the Wild — as focused on in the previous post — I was yearning to finish. Most of the most impactful gaming experiences I’ve had have been shy of four hours; Journey — again, mentioned in Lewis Gordon’s ‘The Rise of the Ambient Video Game’ previously linked to — has been the most impactful of all. Another being Dear Esther.

Speaking got both Journey and Dear Esther, see also ‘Why the Two-hour Game is the Future’.

Tagged

The rise of the ambient video game

Lewis Gordon, writing for The Outline:

Both The Legend of Zelda and these ambient records channeled the natural elements of water, earth, and air — phenomena of increasing rarity in the modern Japanese city. To step into such video game worlds was to stabilise oneself within the frenetic noise and anonymity of the expanding urban spaces. The Famicom allowed players to experience video games from the comfort of their home while Yoshimura, alongside other ambient artists of the era such as Satoshi Ashikawa, designed their records for public spaces whose mood they attempted to subtly augment. Later, in 1993, Haruomi Hosono, member of Yellow Magic Orchestra, released Medicine Compilation From the Quiet Lodge, an ambient album touching on house and techno but infused with Japan’s past and elementalism. Its title articulated the healing potential of music created outside of the metropolis.

A lovely observation and read by Gordon.

Polygon’s God of War Review: ‘You don’t find collectibles; you find entire chunks of story’

Chris Plante, Polygon:

All of which is to say that the game is relaxed to the point of bordering on indifferent. Many of God of War’s most interesting surprises are optional, branching from the game’s sturdy throughline: secret rooms giving way to hidden caverns winding to towering statues or belligerent dragons — which I would have missed altogether had I just followed my compass to the next objective. You don’t find collectibles; you find entire chunks of story tucked behind a mossy wall or under a tropical island. God of War, like last year’s Nier: Automata and The Legend of Zelda: Breath of the Wild, rewards the player who inspects its immaculately designed world as if it were a hidden object game.

This reminds me of Star Fox 64. A player could “beat” Star Fox 64 without ever visiting over 50% of the areas/missions created for the game. (“Beat” in quotes as the path the player uncovers indicates a level of completeness, ultimately leading to a truer ending.)

It’s one thing to sprinkle trinkets throughout a game. It’s another to build entire stories and environments that may never be found. God of War sounds remarkable.

Tagged , ,

More Original Xbox Games Coming to Xbox One Backward Compatibility

Xbox Wire: The official Xbox blog:

Starting today, fans can play Sonic Generations for the first time on the Xbox One family of devices alongside other Xbox 360 favorites that will receive Xbox One X Enhanced updates such as Darksiders, Gears of War 2, Portal 2, Red Dead Redemption, and Star Wars: The Force Unleashed.

Later this month, we’ll release two batches of Original Xbox games – the first on April 17 and the second on April 26. All of these Original Xbox games will take advantage of the power of Xbox One with up to 4X the pixel count on Xbox One and Xbox One S, and up to 16X the pixel count on Xbox One X. See below for the full list of titles that will be available later this month, and don’t forget to visit https://majornelson.com/blog/xbox-one-backward-compatibility/ for the full list of backward compatible titles available on Xbox One.

This is an impressive list of titles.

Microsoft’s continued focus on backward compatibility is a smart move. It certainly won’t be enough to sell the tens of millions of units necessary to catch up to PlayStation 4’s sales figures, but in conjunction with increasing cross-network compatibility and the impressive power in the Xbox One X (vs. the PS4 Pro), I think Microsoft has turned a story-telling corner.

That said, for the same reasons I think backwards compatibility is a winning strategy for Xbox One, I think the Nintendo Switch will hold the lead on the conversation for a long while. After only 1 year on store shelves, the Switch’s sales trajectory (14 million units) will likely surpass Xbox One’s total 25-30 million units in 2018. PlayStation 4 has a much greater lead at 76.5 million units sold over 4.5 years. However, 14 million units in one year is without Nintendo breaking the seal on their back-catalog. And unless Microsoft or Sony glom on to exclusive licenses for third-party back-catalog — they won’t — there’s no telling who else may hop aboard the Switch train. (Come on, Final Fantasy X and Kingdom Hearts!)

Tagged , , , , , , , , ,

Demystify Technology

Janice Jackson, CEO of Chicago Public Schools, during Recode and MSNBC’s interview with Apple CEO Tim Cook:

But, to answer your question, yes — everybody has to code in Chicago because it’s a graduation requirement. I want to be clear on that.

The goal is not to turn 380,000 students into computer scientists, but really to demystify technology, and to make sure that they understand that this is a language, and these are skills that transcend disciplines; that they can use it in math courses — they can use the logic that they learn in any course that they’re taking. It really is about bringing in the type of robust learning that we see in schools around the country to every school in Chicago.

When I first heard about it— I’m former history teacher, so I couldn’t imagine what that would look like in my classroom 15 or 20 years ago. But the teachers are really embracing it. Through the training that we’re going to offer our teachers at North Western through Apple support is just amazing. It’ll demystify coding — not only for the students, but for the adults. I know at Escuela — we were just over here chatting about how the students are teaching the teachers. I think as adults we’re coming into this and learning the importance and it’s being driven by the technology. But it’s mostly being driven by the demand from our students. They learn differently and they are asking us to catchup with the 21st century.

One of my biggest regrets is not leaning into programming in high school.

In middle-school, I found it fascinating. But, during high school, caught up somewhere between punk ethos and popularity, I opted out of taking programming courses. I always felt like I’d get my ass kicked for taking a computer programming course. However, that didn’t stop me from enrolling in the chess club and taking AP physics, calculus, and government. Such is the confusion of high school identity.

Needless to say, programming was not required. It fills me with joy to learn that it is required in Chicago. Technology is as fundamental as history, math, and writing. It goes beyond revamping home economics. Everyone should learn to code, just as everyone should learn algebra and about World War II. It doesn’t mean they’ll be forced into computer science any more than they’ll be forced to become mathematicians or historians, but they’ll be better equipped to problem solve and understand how the world around them works.

Tagged , ,

In Rainbows

After publishing ‘Building Zero Counts’, I became curious about syntax highlighting — the walls of rainbowed text you see splayed out in front of developers.

In ‘Building Zero Counts’, I used a gradient from sea foam green (#00fa92) to Zero Counts blue (#004992) to denote code. Here’s the Bitbucket Pipeline YAML example I used:

image: php:7.0.27

pipelines:
 default:
 - step:
 script:
 - apt-get update
 - apt-get -qq install git-ftp
 - git ftp push --user $SFTP_username --passwd $SFTP_password --verbose sftp://ftp.[host]/home/[username]/[domain]/wp-content/plugins/jetpack/modules/minileven/theme/pub/minileven
 custom: # Pipelines triggered manually
 full-deploy-after-jetpack-update:
 - step:
 script:
 - apt-get update
 - apt-get -qq install git-ftp
 - git ftp init --user $SFTP_username --passwd $SFTP_password --verbose sftp://ftp.[host]/home/[username]/[domain]/wp-content/plugins/jetpack/modules/minileven/theme/pub/minileven

The color scheme and implementation is completely useless, but it’s meant to abstract how I perceive syntax highlighting. In the tech industry, it’s impossible not to see engineers, developers, and designers living in front of colorful walls of text. And for me, it’s impossible not to want to live and work in this world of rainbows. So, the way I display code on Zero Counts is a window into the beauty I see, the envy I have, and my ignorance of what is actually going on with syntax highlighting.

Poking around, I found some interesting posts about syntax highlighting and some methodologies behind color schemes and implementation. Ethan Schoonover’s Solarized is a simple color scheme that shares the same syntax highlighting between light and dark themes. It’s inspired by reading in the shade vs direct sunlight and incorporates fixed color wheel relationships:

Solarized works as a sixteen color palette for compatibility with common terminal based applications / emulators. In addition, it has been carefully designed to scale down to a variety of five color palettes (four base monotones plus one accent color) for use in design work such as web design. In every case it retains a strong personality but doesn’t overwhelm.

Meanwhile, Evan Brooks notes switching to semantic highlighting from syntax highlighting — an inverted use of highlighting, moving away from colorizing built-in keywords such as let, var, and function to coloring user-defined variables, methods, etc.:

We think syntax highlighting makes the structure of code easier to understand. But as it stands, we highlight the obvious (like the word function) and leave most of the content in black. Rather than highlighting the differences between currentIndex and the keyword function, we could highlight the difference between currentIndex and randomIndex. Here’s what that might look like:

Brooks’ method has been incorporated in a variety of text editors. Beyond that, KDevelop had actually incorporated semantic highlighting in 2009 — five years before Brooks’ post:

Understand code: The real facility that helps you understanding global code-structure is the navigation-tooltip or the code-browser. However those are not very useful to understand local algorithms. The following picture illustrates my favorite part of the semantic highlighting: Local Variable Colorization. That colorization assigns a semi-unique color to each variable in a local context. This allows much easier distinguishing those variables, largely without reading their full name at all. By freeing you of actually having to read all the variable names, this allows grokking local code relations faster, and has already helped me fixing quite a few very stupid bugs right away. 🙂
Great minds!

Syntax highlighting is a silly reason to want to learn to code, but well designed colorization and implementation certainly make it an attractive work environment. Who wouldn’t want to live in rainbows?

Tagged , , , ,

Building Zero Counts

Since launching Zero Counts in 2014, I’ve spent a number of hours overhauling the ‘Chunk’ WordPress theme into a design of my own.

In 2017, inspired by reading Huffington Post Highline’s ‘Millenials Are Screwed’ feature on iPhone X, I decided it was time for Zero Counts to introduce a mobile theme — an OLED-first one at that. (Also, I needed to beat Gruber at his own game.) But I had no idea how or where to start.

My workflow for editing Zero Counts’ theme consisted of searching for the theme’s style.css on my host, copying the file to my desktop, guessing the appropriate CSS changes, copying the file back to my host via FTP, and crossing my fingers.

Meanwhile, my day-to-day work was increasingly spent in Sublime Text, Sourcetree, Github, and leveraging a CI/CD (Jenkins) — most of which had been foreign to me months prior. I was learning the benefits of local testing, change tracking, and automated deployments.

In a fit of panic, I realized how risky it was to be iterating on the Zero Counts theme in production. Whoops!

With my desire to launch a mobile theme, so grew my desire to overhaul my development workflow. At the top of 2018, I got cracking.

Goals

  • Test locally
  • Track changes
  • Break out child theme
  • Create mobile version
  • Deploy automatically to production
  • Bonus: Develop on iOS

Tools

Theme Research

Before doing anything, I needed to get a bit more comfortable with how WordPress themes worked. WIRED’s Jake Spurlock kindly pointed me in the direction of WordPress.org’s theme documentation.

Local Testing

Luckily, the documentation also included details on setting up a local development environment.

More specifically, I needed to set up MAMP (Macintosh, Apache, MySQL, and PHP) on my Mac. This provides, among other things, a local MySQL database for a local WordPress install to read from. WordPress.org has a great article about setting up MAMP here.

Ultimately, I needed to:

  1. Download and install MAMP. (The free version should do the trick.)
  2. Set up MAMP Settings. (My set up show Apache Port: 8888, Nginx Port: 7888, MySQL Port: 8889, Web Server: Apache, Document Root: ~/Sites)
  3. Start MAMP and create a database. (From the phpMyAdmin, I created a database called zerocounts_net.)
  4. Download and install WordPress locally in ~/Sites/[site name].

Because Zero Counts has existing posts, I exported them from my production database on ZeroCounts.net. To import them into the newly created local database, from the WordPress dashboard:

  1. Click Tools
  2. Click Export
  3. Select ‘All content’
  4. Click Download Export File

An XML file with all of my posts was downloaded to my computer and ready to be uploaded to my local PHP database. With MAMP servers started, I entered phpMyAdmin, selected my newly created database, clicked the ‘Import’ tab, chose the XML file that was downloaded from ZeroCounts.net, and specified format: XML. This injected all of my existing posts (plus lot of other stuff) into the local MySQL database.

At this stage, my local site had all of my content, but certainly didn’t look like Zero Counts. I still needed to inject my custom theme. Before that, I wanted to begin tracking changes.

Change Tracking

I won’t go into the technical details of git repositories (repos) as I’m still getting my sea-legs. What I will say is the primary use case is to see a log of code changes and comments associated with the commits for quick investigation, reversions, and collaboration.

Git repositories can exist locally and/or remotely. In the case of Zero Counts, I develop locally using the local WordPress install I configured above, commit (save with a comment to myself) my changes, then push (upload) those code changes and commit details to my remote git repository. I can then go to another device — say my iPad (more on this in a bit) — pull (download) those code changes and commits, and be running/viewing the same code locally on another device. Think of it as a very manually, albeit safe, way of syncing my website’s code between devices.

GitHub is seemingly the standard when it comes to remote git repositories; however, with a free account, one can only create public repositories. I.e. my code would be publicly viewable. Private repositories are available on GitHub to paid accounts starting at $7/mo.

As a hobbyist, paying for a private repo that I may not use frequently seemed silly. Luckily, there is a solution in Atlassian’s Bitbucket. For a novice like myself, seeing little difference between GitHub and Bitbucket, Bitbucket offers free private repositories and therefore a membership from me!

Atlassian also offers a robust Git GUI for macOS and Windows called Sourcetree. There’s some peace of mind using a single developer’s sibling software and service together. As a bonus, I already had some familiarity with Sourcetree from my day-to-day work.

With a Bitbucket account created, I downloaded and installed Sourcetree. I created a new local repository in directory /wp-content/themes/ titled [theme]-child, where [theme] is the name of my default theme. (This will make sense soon.) I checked the “create remote repository” box and signed into my Atlassian account. This created an empty repository on my Bitbucket account for my WordPress child theme.

Child Theme

WordPress themes are great starting places. Chances are, a WordPress user will want to make changes to the theme’s style. With most themes, users can make small appearance tweaks (colors, fonts, etc.) using the simple Appearance editor. Some users many want to go a bit further with how their theme looks and begin digging into the actual CSS.

Some WordPress themes allow for custom CSS that overrides the default theme’s style.css via the Appearance editor. However, there may be bits of the theme that don’t exist within style.css and users will need to poke around in the theme’s many PHP files. This can be a bit overwhelming if you have no familiarity with code. If one is able to successfully make changes to the PHP files, be careful. Changes to themes are typically overridden with regular theme updates. Instead of editing the theme directly, one should create a child theme from the default theme.

In an FTP client, copy the contents of folder /wp-content/themes/[theme] into the new local directory /wp-content/themes/[theme]-child.

Open the new child theme’s style.css file and edit the initial comment as follows:

/*
Theme Name: [Theme] Child
Theme URI: https://domain.com/wp-content/themes/[theme]-child/
Description: [Theme] Child Theme
Author: [Your name]
Author URI: https://domain.com/wp-content/
Template: [theme]
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: [comma separated tags]
Text Domain:  [theme]-child
*/

With a child theme established, the child theme will adopt core PHP updates from the default theme without interrupting your CSS and miscellaneous PHP changes.

Push Child Theme to Bitbucket

Now that I’ve added my child theme to my local repository, it’s time to push it up to Bitbucket.

I use the following terms remind me how to use git:

  • Commit: Save with notes
  • Push: Upload
  • Pull: Download (We’ll come back to this.)

Sourcetree recognizes the addition of the files I copied from my hosting server. In Sourcetree, I clicked the ‘Commit’ button, left a note such as “Initial commit”, checked the ‘Push to remote repository’ box, and committed. This committed (save with notes) and pushed (upload) the files to Bitbucket. The entire batch of files included the note “Initial commit” (or whatever comment I left).

From here on, any changes I make to the files in [theme]-child automatically appear in Sourcetree, ready for commits and pushes.

I try to make it a practice to commit any single change I’m satisfied with. Occasionally, multiple theme changes will be included in a single commit, because I’m human and forget to save and note every little thing I’m doing.

Automatic Deployments to Production

At this point, I was able to make changes and test locally. Once satisfied with my changes, I was able to commit and push these changes to Bitbucket for change tracking and safe keeping.

Now, if you are truly comfortable with your changes, you can set up an automatic deployment to your production server. Note that a safer practice is to set up a staging server to push to first. This ensures your changes are reflected to your liking on the web, saved in the event something detrimental occurs to your local server, and allows you to build on several changes before deploying to production. For Zero Counts, I feel safe with my only testing locally and pushing directly to production. The changes I’m making are usually minimal and the audience size doesn’t necessitate that I be coy about changes as they hit my site. I leverage my small readership for design feedback and make small, visible tweaks often.

Bitbucket includes a feature called Pipelines that will detect when changes have been pushed to my Bitbucket repository, triggering a push of the changed files from Bitbucket to my production server.

For a thorough step-by-step tutorial on setting up Bitbucket Pipelines with WordPress.org, look no further than Peter Brumby’s excellent article, ‘Continuous delivery for WordPress using Bitbucket Pipelines’.

To enable Pipelines, I needed to provided Bitbucket with my SFTP username and password.

  1. Sign into Bitbucket
  2. Select my repo
  3. Choose ‘Settings’
  4. Under PIPELINES, choose ‘Environment variables’
  5. Add SFTP username: Type variable = SFTP_username, Type value = [SFTP username]. Click Add.
  6. Add SFTP password: Type variable = SFTP_password, Type value = [SFTP password]. Check the Secured box. This will obfuscate the SFTP password on Bitbucket.com for additional security. Click Add.

Once I set up my SFTP login credentials as variables, I needed to write instructions for Pipelines to sign into my SFTP and copy the changes I pushed from my local repo to my remote repo ultimately to my SFTP, thus, to ZeroCounts.net.

Pipelines are controlled with a YAML (.yml) file. This essentially provides Pipelines with a set of instructions once a ping from a webhook is detected. (A webhook is like a push notification for servers.)

The YAML file for Zero Counts looks like this:

image: php:7.0.27

pipelines:
  default:
    - step:
        script:
          - apt-get update
          - apt-get -qq install git-ftp
          - git ftp push --user $SFTP_username --passwd $SFTP_password --verbose sftp://ftp.[host]/home/[username]/[domain]/wp-content/themes/chunk-child

The gist of these instructions allows Git to log into my SFTP and copy only the changed files to my production server. The aforementioned article by Peter Brumby explains these steps in more detail.

Mobile Theme

The above is all well and good for desktop theme development, but mobile proved to be a different beast.

I use Jetpack for WordPress analytics and my mobile theme. Jetpack comes with a default mobile theme that can be altered, much like the default WordPress theme. I installed Jetpack on my local install of WordPress from the local WordPress dashboard. The mobile theme lives at ~/Sites/[domain]/wp-content/plugins/jetpack/modules/minileven/theme/pub/minileven.

To set up the remote repo for the mobile theme, I copied the contents of minileven/theme/pub/minileven from my local WordPress install to a folder on my desktop. I then deleted the minileven folder and created a new local (+ remote) repo from Sourcetree named ‘minileven’ in /wp-content/plugins/jetpack/modules/minileven/theme/pub/ and copier the contents of the copied directory back into it. It seems a little redundant, but I wasn’t sure how to initialize the existing minileven directory as a local repo. Once the files were copied back in, I ran an initial commit to the remote repo. Now I was able to track changes to the mobile theme.

Remember the bit above about updates to WordPress themes not affecting the child-theme? Jetpack does not support child themes. After a Jetpack update, a customized mobile theme is overridden by Jetpack’s default theme. (I’m sure I can find what controls WordPress child themes, but that’s another project for another day.) Therefore, after accepting a Jetpack update, the custom mobile theme needs to be pushed back up to Bitbucket to override the default Jetpack theme that sits on the production server.

In this case, there are two types of deployments:
1. Regular mobile theme updates (like my desktop theme updates)
2. Replacing Jetpack’s default theme after a Jetpack update

Remember that YAML file I set up for desktop theme updates? A nearly identical set of instructions can be used to cover item 1. Item 1 is the default pipeline that will run with regular pushes to the remote repo.

For item 2, I needed to create a custom pipeline that I can manually trigger from Bitbucket. I cleverly named this pipeline “full-deploy-after-jetpack-update”. I only run this after a Jetpack update.

image: php:7.0.27

pipelines:
  default:
    - step:
        script:
          - apt-get update
          - apt-get -qq install git-ftp
          - git ftp push --user $SFTP_username --passwd $SFTP_password --verbose sftp://ftp.[host]/home/[username]/[domain]/wp-content/plugins/jetpack/modules/minileven/theme/pub/minileven
  custom: # Pipelines triggered manually
    full-deploy-after-jetpack-update:
      - step:
          script:
          - apt-get update
          - apt-get -qq install git-ftp
          - git ftp init --user $SFTP_username --passwd $SFTP_password --verbose sftp://ftp.[host]/home/[username]/[domain]/wp-content/plugins/jetpack/modules/minileven/theme/pub/minileven

The difference between these pipelines is push vs init. Because the Jetpack update wipes out my custom theme, it also wipes out the git tracking sitting on my production server. The git files need to be replaced and therefore re-initialized. (Initialization is still a little beyond my full comprehension, but I basically understand.)

Now that I was tracking changes of the mobile theme, I could begin work on my OLED-first (black/dark) mobile theme. As of this post, it’s still a work in progress, but I’m pretty satisfied.

iOS Development

With having a mobile theme in place, I began thinking about how neat it would be to develop on a mobile device. This is far from perfect, but it’s gotten me out of binds a few times now.

A little app called Working Copy allows me to latch on to my remote Bitbucket repos, make changes to the files, and push those changes up to Bitbucket, thus triggering a deploy to my production server.

The free version of Working Copy can be upgraded to the Enterprise version. Bonus: The dark icon sticks around.

I wanted to be able to use a full iOS compatible IDE and wanted Coda to be that tool. After paying for Coda for iOS, I found I was mistaken. It doesn’t seem to offer the ability to latch on to remote git repos like the desktop app does. Someday…

Next

This whole endeavor was my January 2018 project. I’ve only recently been able to sit around and write this all out.

There are certainly steps I’ve missed and efficiencies to be found. If you are following along and find glaring issues or gaps, let me know. I’m happy to help and update this post. If you find issues with this process, I’m also all ears. The biggest potential issue being the lack of a staging environment. I’ll put that next on my docket.

Tagged , , , , ,

Cross-Network Play is “the Next Logical Step”

Matthew Handrahan, GamesIndustry.biz:

Epic believes that the same process is starting to happen in markets like the US and Europe, thanks in no small part to refinements and improvements made to the Unreal Engine. During State of Unreal, Studio Wildcard’s co-founders Doug Kennedy and Jesse Rapczak came onstage to talk about Ark: Survival Evolved on mobile, and announced that it was being ported for Nintendo Switch. Sweeney also mentioned the mobile version of PlayerUnknown’s Battlegrounds, which was first announced in November last year.

Another example is, of course, Epic’s own Fortnite, which Sweeney believes is “unique” even within the context of the larger trend; principally because the work Epic has done to make it possible will benefit anyone that uses the Unreal Engine.

“So that they can do the same thing,” Sweeney adds. “And that is build one unified game that runs on all platforms, that is the same experience everywhere, and is a social experience that you can play with friends across all of the different platforms.

“What we have is this one engine that’s supporting AAA production values and game sizes and content bases that runs everywhere. This is going to be a great setup for the games industry, because it means that now you don’t have a divide between casual mobile games and high-end PC and console games.”

For Epic, this all makes complete sense and will give Unreal Engine a massive leg up as a development tool.

I wrote about the need for cross-network play in my piece Sold on Cross-Network Play. Much of the piece — albeit not transparently — stemmed from my frustration of having to hook up my Xbox One to play Overwatch with my friends. It was extremely encouraging to learn that players of Minecraft and Rocket League would be able to share experiences between Switch, Xbox One, and Steam.

Sony claims that their reluctance of opening cross-network play is out of protection of their community. I think that is a fair stance, but is the Sony community any less toxic than others? I think the real fear is losing an amount of ability to lock in players to PlayStation 4. It’s the same case made for exclusive games and content, the latter I vehemently oppose.

Maybe it’s just the era I grew up in, but I believe in exclusive first-party experiences. Beyond the console wars which were somewhat steeped in technology battles as much as publishing and political ones, there is something to be said for the marriage of first-party hardware and software. Nintendo and Apple are prime examples this, creating unique and often stellar experiences by leveraging both sides of the stack.

Sony can hold their own when it comes to exclusives. It’s time to open the network.

Tagged , , , , ,

Switch Ports Hamstrung by Mario Carts

Christopher Dring in conversation with Ralph Egas, CEO of Abstraction Games:

He continues: “Performance is not really the issue. The issue instead is in the size of carts. The 32GB carts are expensive, you shouldn’t be wanting to do that. So we need to fit everything on 16GB, whereas the standard game on PS4 is much, much larger. It’s a crazy ratio we’re talking about. However, thankfully, there are a lot of opportunities for reduction without changing anything anyone will notice. Another thing we can do is do a cartridge version and then do staggered downloads to make the game complete. That’s probably the hardest part. Finding all the new technicalities and quirks that you get with a new platform.

Interesting and somewhat encouraging that performance isn’t the primary challenge of porting to the Switch. Also encouraging that dual-layer DVDs — the ancient technology used by the PS2 and Xbox 360 — maxed out at 8.5 GB. (Apparently, Xbox 360 discs topped out at 7.95 GB.) Thus, I remain hopeful for Final Fantasy X and Kindgom Hearts ports.

Please forgive me for the headline.

Tagged , , ,