Monday, October 14, 2013

What I've learned from modding

Not long ago, I re-installed my old copy of Neverwinter Nights to play with the Aurora Toolset, the game's level creation software.

I'd always been intimidated by the idea of trying to build a mod, but the toolset is pretty handy. With a little patience and a basic understanding of scripting logic, you can accomplish a lot.

Here are some things I've learned about the creative process:

1. When you encounter a problem, don't get stuck on the wrong solution. As a result of the way I'd built my area, I had a heck of a time getting the (optional) dogfriend companion to follow the player up and down stairs. I didn't want to rebuild it, and I didn't want to create a separate area to load, so I spent a few hours tinkering with the area transition scripts, experimenting with waypoints, and checking the dog's following scripts. None of those ideas were necessarily wrong-headed, but when I stumbled across someone else's ActionJumpToLocation script and set up a trigger that the player character would have to walk over, it worked.

All that is to say that my solution came much more quickly once I thought of other strategies to solve the problem (instead of just trying to pick apart the scripts when, let's be honest, my scripting knowledge is meager).

Also on that note...

2. Outside input is good. When I'm trawling the internet for scripting solutions at 1 AM, it's easier to be humble about my limitations. Still, whether I'm pulling commands from a community resource or getting suggestions about the story direction, I try to hold onto my enthusiasm without getting too possessive. It's a good mindset to bring to other fiction.

Which reminds me...

3. It's hard to know how others will interact with a project. Some readers skim for action, and others absorb prose word by word. Some viewers absorb a movie's style and composition, and others veg. With games, the breadth of interactions is even more diverse. Will players follow the trail of breadcrumbs I've sown for them interaction-by-interaction, or will they race to the end? The only way to know is to let them play and to accept that there isn't a "right" way to game.

It's important to create emotional stakes without forcing the player into one set of actions or responses.

4. Mario may never enter into a truce with Bowser, but RPG gamers want options and agency. What's the point in spending waaay too long customizing a character and reading dialogue only to follow a predetermined, linear path? Creating fascinating NPCs and quest lines is important, but so is giving players the option to rebel against them. If there's never a choice to refuse to aid an NPC, then the opportunity to help is meaningless. Besides, there's probably someone out there who just doesn't like Garrus Vakarian.

5. Sometimes the solution is easier than it seems. I was out of my gourd trying to figure out why two of my NPCs wouldn't actually talk when the player clicked on them. Oh, because I hadn't actually linked up their conversation files. This was, um, early in the learning process.

6. Recognize your goals, and recognize when your reach exceeds your grasp. My goal was to get practice writing story and dialogue for a short game that focuses on NPC interactions and gives the player room to make choices. To that end, I didn't bother with combat, and I accepted that my mod would have little visual gloss. Based on my goals, my time was best spent polishing dialogue, getting the mod out into the open for feedback, and moving on to the next project.

7. Timelines motivate. Once I was far enough along that I thought (ha!) I knew what I was doing and could see the end in sight, I set a deadline. The sense of purpose was useful when it came to tackling more complex problems, and it helped me finish something over a few evenings that could have dragged on for weeks longer.

8. Take joy in small victories. I spent hours on "Demon in a Haystack," yet players can run through it in 15 minutes. A successful buildtest is still worth getting excited about.

9. Test early and test often. It's easier to tackle problems one-at-a-time as they come up than in one big muddle at the end. Frequent testing can also help diagnose problems and avoid potential back-tracking.

10. Stop lists at 10. If it's good enough for Letterman, it's good enough for me.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.