10/27/15

It has been far too long since my last Capstone post, and I left things on a bit of a cliffhanger too! Thankfully, we passed Stage 1 last week. This next stage, known as the 'Deep Dive', is mostly about a mix of research and fleshing out the gameplay from Stage 1. I'm going to take this post to focus more on the latter, because I haven't shown off this demo yet.

The Restocker Demo

When I made my last post, the restocker demo was nothing more than an idea. Since then, we've made huge strides developing it into an actual game.

Our Beloved Hero

Making AI for our game has been quite the learning experience. Currently, I find that the one thing that UE4 really lacks is good tutorials. The current tutorials that exist are all right, but they lack a certain depth and level of detail that I'd like to see. I think the situation will improve with time, but for now we've been figuring out a lot through trial and error.

With that said, we do have a nice base to build on.

The hero has a basic but effective loop that it follows. Once every 1/2 second:

The hero checks through all the objects that it cares about (The restocker, the enemies, and the items), and removes everything that it can't see.

If the list still has objects in it, choose the closest object to target.

Otherwise, choose the next node on the path to the level exit.

Between these searches, the hero walks towards its' current target. By making all of the hero's interactions collision-based, it results in an easy to make system where the hero interacts with the items the player places (you can even lead it around) without ever getting stuck or lost.

Right now we're aiming for another challenge tomorrow, although it's hard to say whether or not we'll be completely ready by then.

10/13/15

The deed is done! After weeks of discussions and back-and-forth, we have decided on our final prototype. This post is a bit late because there hasn't been much to write about apart from this decision.

The Options

We made 4 prototypes for stage 1:

Dungeon Restocker, a game about going into old dungeons and restocking the chests/resetting the traps just ahead of the heroes.

Rowdy Crowdy, A rhythm game where you have to balance conducting an orchestra with dealing with a rowdy crowd.

Corn Maze, a puzzle game in a corn maze, with a focus on perspective puzzles.

Sports Game, a party game where you play soccer but with shifting mechanics. (You can read more about this one here: 12)

The Decision

This was a very difficult decision for us to make, and we're quite a ways behind everyone else as a result. Rowdy Crowdy was the first to go, because no one had much interest in the game.
In a surprising turn of events, Sports Game was the next to follow! This actually makes a lot of sense if you think about it the way we did, however. We spent a while together figuring out what each team member wanted to get out of this class, and the general consensus was that we wanted something that could challenge us and (hopefully) make it through to next semester. Sports game is certainly too simple to accomplish the former. In addition, if you've been at Champlain for a while then you'll know that every year there's that one Capstone game that goes through. It's a quirky team sports game involving one or more balls. This happens just about every year. We figure that the teachers are sick and tired of the genre, and thus Sports Game would be at a serious disadvantage. On top of that, the design professors tend to be rather... touchy about random elements in games. These factors together make Sports game an unappealing choice for us to continue with.
The last two, Dungeon Restocker and Corn Maze, have been butting heads for well over a week now. It was only last night that we reached a final decision on what to do. To explain what exactly happened, we need to look at the pros and cons of each:

Dungeon Restocker

Pros

Plenty for everyone to do

Fun idea

Clear design direction

Cons

Practically no prototype

Built on AI (In our programming disciplinary review, prof. Lawson was not particularly worried about this, but we'll see how this goes.)

Practically nonexistent tilemap support in all major engines

Corn Maze

Pros

Tested well

Interesting design

Cons

Almost nothing for the programmers to do

MASSIVE amounts of design work (With a 1 designer, 2 programmer team setup)

Somewhat murky design direction

The Final Decision

During yet another long meeting of trying to choose between Dungeon Restocker and Corn Maze, we came to a startling conclusion: Making Dungeon Restocker into a 3D game would actually reduce our workload. This seemed rather unintuitive, but correct. Moving to 3D would make most of the major things we needed to implement for a working prototype absurdly easy to integrate, because we could use built-in engine features instead of writing our own. It also gives us an opportunity to make more interesting and complex levels, which is always a plus. The best part? We can build the dungeons out of modular parts and hook up our level creation to a tilemap editor like we were planning to anyway! In other words, we can have all of the pros and far fewer cons.

Suffice it to say, we're making Dungeon Restocker now. Even better, we have to make it in Unreal because Unity is missing certain features in the AI department that we sorely need. This makes me very happy, because frankly I'm not a huge fan of Unity's dev tools. Our new goal is to make a new prototype and attempt a Stage Challenge on Wednesday. We'll see how it works out, but I think we might just make it if we put enough effort in.

10/1/15

Bet you didn't see that coming!
Our stage challenge was delayed for a week so that we could get more testing in, which gives me a good opportunity to keep improving Sports Game. The prototype now features 3 new strange rules, including the sandworm pictured above:

Tumbleweed: The chairs are no longer held up by their legs, and flop about as they move

Endangered Bird Watch: Endangered birds fall to the ground and must be avoided. Anything that hits them causes them to explode in a puff of cartoon blood, and hitting them with a chair results in losing a point.

Unleash the Sandworm: A sandworm beneath the ground chases a random player, telegraphed by upturned earth. The worm then pops out of the ground for a moment, eating anything beneath it.

Suffice it to say that the game is a bit more hectic now. The sandworm also introduces player death, a new mechanic. When a player dies, they explode in a puff of cartoon blood (like every other dead thing in the game). Their team loses 1 point, and they respawn a few seconds later. We'll need to test this for balance purposes, but for now it seems fine.

On the subject of rules...

When our team showed off Sports Game at the last meeting, there was a bit of confusion about the game due to some poor wording on my part, so I think I should give a quick explanation here in addition to the one I already gave: Rules in Sports Game are not "Rules" in the traditional sense that people might expect from sports. Rather, rules are mechanics that the game randomly introduces during play. Some might take the form of rules (Such as the one where you have to avoid running over endangered birds), but this is not a requirement. Likewise, the game isn't meant to play like a real sport, it just bears a strong resemblance to them and is referred to as one. I wonder if most of the confusion is coming from people trying to make sense of the concept, when it really isn't supposed to make sense. If we decide to go forward with this, we'll have to think hard about what to do to avoid future confusion from players.

What's Next?

My main development goal before the next presentation is to get a total of at least 15 rules into the game. In addition, I want to draft a list of several hundred rules/potential rules. This kind of game will live or die by its replay value, so it needs a lot of content to be successful. Even if we don't manage to implement the entire list into the game, it gives us a good blueprint to work with.

With any luck, we'll challenge next week and then I'll write a post about what happened!