29 October 2016

Open World Woes

You know, I'm really not a fan of this whole open world thing. This by no means is as simple as "I hate this sub-genre just because," yet this following spiel is going to amount to largely an opinion piece.

Size vs. Interaction

If we compare the Ubisoft or GTA/GTA clone games with Bethesda open world games, there's a bit of a difference with the depth of the world we can explore and how we can interact with it.

Let's take Assassin's Creed or a GTA-like -- say Saints Row. Here, we have a large world that is purely aesthetic, with zero interaction outside of "points of interest" which are few and far between. Everything else is fluff. We can see an endless amount of NPCs roaming the areas, but generally speaking these are all nobody characters. Any important NPC to plot exists in an alternate reality until you're in an active plot section.

Bethesda games, the fluff is there but is different. A large amount of NPCs can be interacted with outside of quests and most every item is now likewise able to be picked up. Except most of the items are fluff. I feel as though this detracts from the importance of items that aren't quest items and makes it less appealing to explore new areas. Oh look, it's another random house I can enter -- right, it's just filled with paper, produce, and other miscellaneous items every other house has. I guess I'll wait to explore until a quest wants me to go there.

On both accounts, I feel as though I'm a slave to the maps in every open world game. I don't want to explore a world of fluff to find the content with actual substance. I want to find the points of interest and have the game tell me what it is I should be doing to have fun.

"Fluff"?

When I'm saying fluff, I'm referring to something that isn't enhancing the game in any way that's meaningful to gameplay. Yes, you can make a game where the distance between a quest's end to the next quest's beginning is a 20-hour trek through an empty wilderness, but you've just exceeded the definition of padding gameplay to an absurd degree. Even if the world is beautiful to explore, who exactly is this game supposed to be marketed to if there's very little to interact with in this world?

My interaction with an open world game always seems too shallow if I'm actually trying to explore. There may be 10,000 hidden collectibles in the world, but behind every back alley or rooftop with a collectible are countless more with nothing. And the collectathon portions usually amount to just getting an achievement or an item you get so late in the game that it's not even helpful for the actual plot of the game. It makes collectibles feel like a completionist's goal that otherwise has no purpose.

Looking Up

This isn't to say there's no hope of an open world game actually feeling immersive and not just full of "here's a lot of space between actual content." I also don't know that the feelings of others as a whole suggest my vision of a good open world game is what people want -- at least, I haven't seen this as a big talking point of disappointment for others. Ok, maybe that's rude. It's not that it's "not what people want," but developers don't have a reason to improve if the current norm has been seen as passable.

I do enjoy some of these games when I actually play them, but I feel as though I play them differently than intended because I don't enjoy the fluff. I rush between points of interest for the actual gameplay/minigames and plot progression. Everything else I ignore. This also makes me skeptical of games that haven't come out yet that are banking on "open world" being a point of interest.

My biggest skeptical upcoming game is the next Zelda. Boasting the world is huge has deterred my interest. I suspect a world of fluff filled with enemies.

I could keep talking about this for a while, but it's getting late. Maybe a topic to revisit in the future on ideas I'd have for actually improving the genre. For now, I'll just say I do want to be proven wrong. But only time will tell if I'll ever see a game that boasts having a huge world where this means "huge world that isn't just aesthetically huge for the sake of being huge."

13 July 2016

Data, Data, Data

Working on a D&D 5th Edition character creator-type thing in Javascript, and at least in the initial phase it's difficult to visualize progress from the webpage itself. As implied by the previous blog post, I'm not actually making the page live until more progress is made.

That said, my progress thus far has been on data collection. Lots and lots of data, and there's still more to collect.
Feats Sampler

Basic Bonuses

There's a common structure I'm working on here for everything, but that sample above shows the gist. If something gives a set-in-stone bonus, such as Alert giving a +5 to Initiative, then the Feats.Alert object will simply have a variable with the name of the thing getting the bonus, and a value equal to that bonus.

Player Choice Bonuses

More complicated things, such as Athlete, have a choice: You choose 1 Ability Score to give one bonus to, and there's a restriction for which Ability Score you can choose.

In this case, parsing Feats.Athlete has a variable AbilityScore1, which tells me the player will get to choose 1 Ability Score to increase. Feats.Athlete.AbilityScore1.Bonus tells me the selected score will be increased by 1, and Feats.Athlete.AbilityScore1.Restriction is an array containing the Ability Scores the player can choose to raise. If something does not have a Restriction variable (such as the Resilient feat), then I'll know the player can choose any score to increase.

Complicated Descriptions

More, um... complicated things, I'm just storing as an array in Anon, like pretty much all of the feats (Feats.Alert.Anon). This is stuff that I won't bother parsing for the moment, other than just to put in an additional information section on the character sheet.

Races

The only other thing of note for data is info on races. It's actually pretty much the same, minus 1 little extra thing about sub-races.

Races["RaceName"] and Races["RaceName"].Sub["SubRace"]
I'm not really bothering with any flavor text here, either; just the bonuses are good enough. Partly because I don't want to use any of the actual names of places or whatnot if they happen to be there, since that's a copyright no-no, I think.

But things are actually coming along nicely. I have the stat bonuses for the Races. All the feat info is pulled (just from the core). Next I want to pull all the Background bonuses.

Honestly, the only super tough thing I'm suspecting to have difficulties with will be when I get to Classes. My thought process is to tackle each class one at a time, and the structure will probably be based on level bonuses. So a sample Class might look something like:

var Classes = {
    Barbarian: {
        1: {
             (Level 1 Player Choices/Bonuses Here)
        },
        2: {
            (Level 2 Player Choices/Bonuses Here)
        },
        (You get the idea)
    },

    (Other classes)

}

Onward and upward. Progress is slow, but it's still being made. Whee!

26 June 2016

Beginning Website Updates

I've had a personal website for a while now, but I haven't really done much with it -- mostly just placeholder pages for where I'd eventually put projects. But that's not much drive to get any actual content.

I think the main thing holding me back was just layout and design that I'd never been too happy with. I knew some tricks, but unless I was working with a design team on the job then I didn't feel capable of doing those sorts of things myself.

Important Side Note!

Trevor has a new job! (well, new as of three weeks ago. I don't want to make promises, but I should be updating this blog more recently) It's primarily front-end web development, and it's a very different atmosphere than I've been used to. It's also my first experience with Responsive web design, so styles changing as the browser window shrinks. They aren't using things like bootstrap, either -- it's just straight css @media queries.

Anyway, that was allowing me to pick up on new concepts really quickly and really boost my confidence with wanting to build up my personal website again.


Redesign

Hey, it's blog posts from here!
Since I don't really have images to put on my blog, I'm trying to keep with a 'simple is better' approach now. Just a few different styles for the text and only a few colors. Blue is probably overdone (Facebook, Twitter... probably others), but it's my favorite.

Also, instead of placeholder pages, I'm just showing the pages that are functional. In the future, this won't necessarily mean 'functionally complete,' but it means there will have to be more than 'this page will contain something in the future' to be visible.

Honestly really liking it so far, though I'll want to be updating the navigation soon -- it's the only thing I'm iffy about. Plus, it's not really scale-able.


Front-End Sample

Pretty tiny and clean
The homepage is laid out the same, except it's just a title and a few paragraph blocks. I just have a header file that I can inject into the page, so I don't need to duplicate any of the code appearing across multiple pages. The div 'blog-entries' is just a placeholder div for the javascript logic, so it has a place to add the blog entries pulled.


Back-End Sample

blog.js contents
And there we go. When the page initializes, this tiny function just makes an ajax request to a feed service. I'm just getting back some basic RSS data from my blog here -- it doesn't really even include sample text (though I'm sure this is possible if I tweak the RSS settings or something -- the properties are there in the return, but they just didn't have any data in them).

No big problem, though. I loop through the results and add a link to each blog post on the page -- including the title of the post and the published date. Since it's RSS, the results are in order from latest to earliest. At least for now, I'm also only pulling the latest 10 entries, which is just fine.


To the Future!

I have a few different ideas floating around for what I'd like to add to my website. The next project is a bit daunting, so it may take a bit of time before it appears live, but I'll be trying to tackle some blog posts as the process moves forward.

And so it begins...