Showing posts with label Design. Show all posts
Showing posts with label Design. Show all posts

Modding Terraria: Designing a new playstyle

Below is a little brain dump on my thoughts, plans and process for designing the Fist weapons class in my Terraria mod, WeaponOut. This article assumes you have general knowledge about video games, but not necessarily much about Terraria other than that it's a "2D Minecraft"-esque sandbox game where stats are determined by weapons, armour and accessories.


Making the End Screen

A winner is you!
So this post is about the process of making the end screen for a level. For starters, it was going to be a 3 star rating system, because its simple and effective. Plus, since the game uses limited tries, I figured that it was close enough to golf to apply similar rules - so each level has a "par" number and a "bogey", which translates to the signals left to give you a 3 or 2 star rating, after which you only get 1 star meaning you completed it. And of course no stars for a failed attempt. With that in mind I ran a few more ideas in my head of how the general structure of the thing would be, then sketched it down. The buttons are based on the standard symbols you find on phones for their corresponding tasks. This is a good inspiration for these kind of design choices.

Chasing a Bug, More UI


via Gfycat


Spent a while looking through code and rigorously testing various conditions whilst staring at the console log after my sister found a gameplay bug that caused Pointers to permanently disappear by randomly tapping on the screen. Turns out the problem was to do with the multi-touch to drag and pointers, which I've implemented in a really dumb way.

What happened was that when when the pointer was tapped on, the script sets the drag boolean to true, meaning it should run its drag code (moving around). The drag then finishes when the drag code detects that the finger was removed from the screen, which checks to see if the position is in the correct area to remove the pointer or not.

The error was caused by another piece of code that ran when the touch count was larger than 1, which set drag back to false again, but without checking for whether the pointer needed to be removed or not. Since drag was false, the event where you untapped the screen would never be registered and many problems were caused.

Thinking up UI

So before I actually get into adding more stuff to Ping, I need to consider what it actually is going to be like as an interface. After all, no app has won any favour with unintuitive design and poor looks. Here are some notes of things I've considered.

Amazing design skills right here

Developing an Idea

I've hit upon an interesting idea  that could make for an android game.

an alt
Consideration for phone input is important.
And I've built a working prototype of this thing I'll call Ping. Time to see what I can actually do with it.

ping! pingpingping! pingpingpingpingpingping!