Wednesday, May 2, 2018

State of the Gooberz Address

Howdy all,

Sam from the Time Gooberz here.  This blog post is a bit bittersweet at its our last, and will encompass a rundown of the state of the game right now and what we're planning to do before our Gold presentation. 

As it stands right now Time Janitor has a tutorial "level" and 4 real levels.
The Tutorial Level
In the next week we'll be tweaking these levels quite a bit as we incorporate feedback from the playtests and from forcing our friends to play the game.  Part of our effort here is adding a few more secret rooms but a lot of our focus is going to be trying to more naturally incorporate our Rewind system into the level design.  Rooms like the one below become very interesting when the player moves through them a second time and is forced into their own line of fire.
Imagine walking into bullets coming down the center of this room being shot by your past self
In addition to room tweaks we'll also be adding in new enemies.  We currently have enemies that chase the player, enemies that shoot at the player and enemies that fire simple bullet patterns.  This week we added enemies that dash at the player, standing still for a while before moving in quick bursts, and next week we're looking to add enemies that can only be stunned, not killed, and enemies that can only be damaged when shot in the back.

We're also going to be adding a final boss, because what self respecting game doesn't have a final boss?  This boss will include a fun use of our time travel mechanic, but we're not going to reveal what just yet ;)

As we add a few more features we'll also be polishing everything as we go.  This will include small polishes, like adding in death animations for any of the enemies that are still missing death animations, but also some bigger changes.  Part of what we've been working on this week is adding in lighting to our game.  To complement this we've added in new assets such as torches that will add some nice lighting to spice up our rooms.

As always we welcome your comments!


Wednesday, April 25, 2018

Playtest Feedback

Howdy all,

Sam from the Time Gooberz here.  After our play test last week we got a lot of useful feedback and we wanted to show some of the progress we've made working on it.

One of the largest complaints we got was that the game was too hard.  This complaint on its own is not something we were terribly concerned about, as we know our game isn't well suited for casual consumption.  However one thing we did notice during the play testing was that all of these difficulty complaints came right at the beginning of our second level, which was often where people died for the first time.  In response to this we're moving level 2 to be level 3 and designing a new a level 2 to help smooth out the difficulty curve.

Another thing we saw was some players checking for hidden rooms and, after not finding any in a few rooms in a row, giving up and missing hidden rooms later on.  We're going to be moving some hidden rooms from the later stages to the earlier part of the game, in order to reward people for checking for hidden rooms early.

Additionally we'll be adding in some new enemy types to liven up some of the later rooms, and reworking some of the earlier levels.  We're hoping that by the next play test a lot of our rooms will look a bit different and present a more interesting experience for the player, especially after they have to backtrack through them.

Stay tuned next week, when I'll be talking about some of the polish we'll be doing before our gold presentation!

Wednesday, April 18, 2018

Gooberz Art Process, Part 2

Howdy all,

Sam from the Time Gooberz here.  After the art related blog post from 2 weeks ago I wanted to give a follow up and talk about the next step of our artist process.  Once we have a sprite sheet with all of the its animations in it its time to actually animate it.  The first step of this is getting the sprite sheet out of Piskel (our sprite editor of choise) and importing it into Unity.  Fortunately this step is trivial, as both Piskel and Unity use standard file formats to export/import images.

Once we have the image in Unity we need to slice the sheet up into individual sprites.  Unity also makes this process easy using its built-in sprite editor.
Slime Sprite Sheet open in the Unity Sprite Editor being sliced
Unity's sprite editor gives us a slice tool that lets us convert a sheet into a series of individual sprites.  Above you can see a picture of the slice tool begin applied to the sheet, with the results displayed below.
Slime Sprite Sheet after being sliced into individual sprites
Once we have the sheet turned into a series of individual sprites we need to turn those individual sprites into animations.  Fortunately Unity makes this simple for us as well, letting us easily drag multiple sprites together to make an animation. After we have all of the animation objects made its time to put them into the actual controller.  As I talked about in the last Art Process post we have one animation controller state machine that we use for all of the enemies.  This lets us reuse as much as possible, and enforces a consistent pattern for all of our assets.

The Attack Animation State Machine
The image above is a submachine within our state machine that handles the attack animation for an enemy.  The attack animation is broken into two segments, the front swing and the back swing.  The front swing is every part of the animation that occurs before the actual projectiles are fired, and the back swing everything that happens after the projectiles are fired.  Breaking it up like this lets us easily control, to a frame perfect level, exactly when in an animation projectiles are fired, which we do using the intermediate state you can see above, the AttackScript state.

The AttackScript state is an example of how we use animation controller to control entity behavior.  This state has a script attached to it that causes the entity to spawn projectiles, or damage the player, or whatever that specific enemy type does when it attacks.  After that has finished it passes control back to the animator controller by moving from the AttackScript state to the AttackBackSwing state.

This back and forth gives us complete control over when in an animation different effects trigger, and when the animation resumes after those effects have resolved.  We can also use it to override the normal transitions in the state machine by having the script take us to an entirely different state instead of just passing control back to the state machine.  As an example this is useful in the case of an enemy that tries to run at the player and then explode, where after the explosion we want the enemy to die instead of resuming its normal animation loop.

Wednesday, April 11, 2018

Second Play Test!

Howdy all,

Sam from the Time Gooberz here.  This week we're going to be doing a play test on the JHU campus! We'll be presenting a short slide deck on our game followed by doing an open play test.  This time our presentation this time will be focused on shining a light on what happens week to week inside Time Gooberz. We'll be going over our weekly process and highlighting what we've changed in that process.  We'll also be talking about how we use Unity, what we love about Unity, and what we view some of Unity's greatest failings to be.

If you can't make it but what to try the game out anyway we encourage you to visit the link below and download the game.  Please feel free to leave your thoughts in the comments below.  We appreciate any and all feedback :)
https://bitbucket.org/601355/gooberz/downloads/

Wednesday, April 4, 2018

Gooberz Art Process (Not Patent Pending)

Howdy all,

Sam from Time Gooberz Zudios here with a new update.  This week is my week to work on art, and so I thought I'd bring you an update focused on how our art process works.  Our game uses 16x16 pixel sprites for most entities, though the "tile size" of our game is 64x64.  What this means is that we draw our sprites in a 16x16 grid and then render them at 4 times their size in the game.

We do our drawing using the online app piskel.  Its free, open source and awesome.  It isn't as powerful as some other tools are, but the fact that its free and in-browser makes it convenient for us, and it has all the tools we need.  As we posted about earlier, we're using a free-to-use dungeon spritesheet that we pull our base sprites from.
Slime Base Sprite in PiskelApp
Once we have the base sprite imported into Piskel we then begin making all of the animations that we need.  What I've been working with this week are a set of new enemies, all of which follow a similar layout.  Every enemy needs an idle/move animation (idle for enemies that don't move, move for enemies that do) that acts as its default animation.  Every enemy also needs a stunned animation, for when the player hits them.  After this things get more specific.
Enemies that simply run at the player and try to "hug" them only need a move and stunned animation, but more complicated enemies need more animations, or even other supporting assets.  An enemy that shoots bullets at the player needs an attack animation, as well as a bullet animation.  For now all of our enemies share the same bullet in order to keep things clearer for the player, but in the future that might change.

The slime enemy pictured above is an immobile turret that shoots bullets blindly in patterns or shoots bullets aimed at the player.  So it needs an idle animation, a stunned animation, an attack animation and a projectile.

The attack animation is customized to the enemy.  Our bat enemy "spits" bullets at the player, but since our slime lacks a mouth we're having it fall into a puddle as it launches bullets at the enemy.

Sprite Sheet for the Slime Attack Animation
In order to help preserve the visual clarity of our game every enemy has a very similar stunned animation.  This allows the player to instantly understand what the animation means, allowing them to spend more time focused on dodging, shooting and regretting their previous decisions.
Spire Sheet for the Slime Stunned Animation
And thats our process! Next time I'll be talking about how we string all these animations together in a nice generic way that lets us re-use logic from one entity to another.

Tuesday, March 27, 2018

The Goobers' Development Process (Patent Pending)

Howdy all,

Sam from Time Goobers Zudios here with an update on how we make the magic happen.  Each week on Wednesday the Goobers have an official status/planning meeting, its almost never our only meeting for that week, but its when we sit down and do our major planning.  We first figure out what we want to accomplish that week, and then we divide tasks up among our members.  No one has an official speciality, and everyone does a little of everything, so who does what often depends on the team member's availability and mood.  Once we've got tasks assigned everyone goes their own way to work.

We'll normally then have smaller meetings throughout the week as team members coordinate their work, or want to ask questions of the person who was working on something last week.  Eventually the week ends, and the time to merge all of our work comes.  We use Git for version controlling, and all during the week each team member has been working in their own branch.  Our software lead is in charge of merging all of these branches together and working with the developers to fix merge conflicts and make sure at the end of each week we have a single stable build that has everyone's work from that week in it.

And thats our process! If you have any questions feel free to post in the comments section below :)

Wednesday, March 14, 2018

Playtest Results

Howdy all,

Sam from Time Gooberz Zudios here.  As our avid readers know, last week we gave a presentation and play test session at Johns Hopkins' undergraduate campus.  To everyone who came by, thank you! We got a lot of really awesome feedback, and we can't wait to roll it back into the game for our next play test.  The next few weeks will feature us working on implementing the feedback we got, cleaning up the first few levels, and adding additional levels.

A lot of the feedback and clean up overlap, and we're looking forward to implementing features like transitions between rooms and smoother controls.  One of my personal favorite suggestions we've already implemented is switching our control scheme from WASD shoot, arrow keys move to WASD move, arrow keys shoot.  This is the control scheme that Binding of Isaac uses, and a lot of players felt off because of the difference.  As for the rest of the feedback, you'll be seeing it roll out soon!

Progress Report: Level 2

Howdy all,

Sam from Time Goobers Zudios here with a weekly progress report.  This week (in addition to working on the feedback we got from our play test) we've been putting together level 2! In level 2 we're going to be taking things up a notch.  In level 0 we designed rooms to protect the player and let them confront enemies one at a time, and level 1 we kept simple in order to properly introduce the player to the rewind mechanic.  But in level 2 we're starting to take the kiddie gloves off ;)

Below is a screenshot of the first portion of the level.  Unfortunately our enemies are still are sharing the same sprite, so you can't tell which is which.  But maybe thats good as it will leave some surprises for you come our next play test :)

Level 2 Part 1 in all its glory

We've also got some awesome cutscenes and new enemies, but we're keeping those a secret so we have something worthwhile to present at our next demo.

Wednesday, March 7, 2018

Presentation Today!

Howdy all,

The Goobers will be attending the JHU game demonstration day today!  We'll be presenting in the basement of Shaffer, on the the JHU campus, at 5pm today.  I'll be posting our slides here below, but we encourage everyone to come, see our presentation, play our alpha demo, and mostly just say hi!

Our Slides!

See you there!
Sam

Tuesday, March 6, 2018

State of Gooberz Address

Howdy all,

Sam from Time Gooberz Zudios here with an update on the game.  This week we'll be releasing the alpha version of our game, and I'll be giving you a full rundown of what to expect.  We've made two levels to test out the basics mechanics of our game - running and gunning.  We're calling them The Lab and The Cave internally.

The Lab is set in (surprise!) the research lab that our protagonist, codename 'The Janitor', has been called in to clean up.  It introduces the player to the basic mechanics - walking, shooting, not getting shot - that they'll be relying on for the rest of the game.  For hardcore bullet hell fans out there it should be a walk in the park, but for our newer players we hope it will help ease them into what can sometimes be a very intimidating genre.

The Lab ends as The Janitor accidentally causes an explosion that knocks him down an old chute deep into the Cave.  Our protagonist will spend the rest of the game trying to reactivated old lab equipment to help him get back to the surface, all while fighting off hordes of failed lab experiments from decades past.

The Cave will start to push the player a little bit, pitting them against enemies similar to the Lab but in much tighter quarters.  Near the end of the Cave The Janitor finds a watch left over from an old experiment that, after putting it on, begins looping him through time!  And this, lovely fans, is where life gets interesting :)

We'll have builds up soon, and we look forward to your feedback!

Wednesday, February 28, 2018

Unity is Hard...and Art!

Howdy all, Business Lead Sam here with another weekly update.  We're working along on the game trying to get solidly polished levels 0 & 1 ready for next week's demo.  However, somewhere along in this week everything went sideways and we can now walk through walls.

Safe hiding behind this wall.


Or am I?!?!

Fortunately, to combat these wall-walking enemies we're upgrading our arsenal, adding in new types of guns to the game.  Below is a gif of our the new 'Uzi' power up that gives the player a (limited ammo) rapid fire gun with a wide spray to it.  Perfect for mowing down approaching enemies. 


But, as I'm sure those of you who read our last post are thinking, good luck dodging that spray of bullets the next time around ;)


Tuesday, February 27, 2018

The 'Rewind' Mechanic - Bringing Regret to Bullet Hells

We've been getting a lot of questions here at Time Goobers Zudios about how exactly our core 'rewind' mechanic works, so I'm here to explain it.  At its core our game is a bullet hell shooter similar to Binding of Isaac, but, of course, with a twist.  Every time the player revisits a room all of the enemies in that room have respawned, and one additional enemy has been added - a ghost of the player.  This ghost executes a recording of what the player did the first time they were in the room - all of the players movements and any shots fired are mimiced exactly as they were inputted by the player.  The ghost's bullets will damage both the player and any enemies they happen to hit.

Most players play bullet hell games in a very trigger happy manner, holding down the fire key as they weave through enemy bullets.  We aim to make the player regret this in the most visceral way possible - by having them, quite literally, shoot themselves in the foot.  We hope to add another layer of decision making to bullet hells, forcing the player to think about not only their current situation, but also what happens the next time they have to pass through this room.

Wednesday, February 21, 2018

Status Update...and ART!

Howdy all, Timer Goobers Zudio's Sam Beckley here with another weekly update.  This week we're still working towards getting a working prototype going so that we can begin "finding the fun." Harry has been getting rooms spawning, David is working on our sound design, Bailey is implementing our rewind mechanic, Sam is adding a basic enemy to our game.  Last but most certainly not least, Yoshi has begun to make art for our game!

Here are samples of three enemies Yoshi has been working on:




Yoshi has also found a tile set for us to use as the background for our game.  While we may expand to include other tile sets later, for now we hope you like this -- you'll be seeing it in every screenshot we post from here on out.  Here's a sample of it:

Wednesday, February 14, 2018

The Story!

Howdy all,

Time Goobers Zudio's Sam here with another update.  After our weekly Wednesday meeting we've decided on a basic narrative for our game.

You play as codename 'The Janitor', a secret agent that specializes in cleaning up extra-ordinary scenarios -- aliens, teleportation, mind control, giant bugs, you name it.  One day The Janitor called in to clean up yet another biological experiment gone wrong in the basement of the Johns Hopkins Applied Physics Lab. During the fighting he accidentally falls into a secret cavern below the labs, where he finds a cursed watch that causes him to begin looping through time as he tries to find his way out of the caverns.

We chose this story for two reasons.  First, we think that it is short and straightforward, which allows us to explain our premise to the player quickly and simply.  Second, it allows us to use a wide variety of enemies, power ups, etc. which makes life much easier for our artist and sound designer.  It also lets us use a generic underground tile set for our environment, and some fun underground noises for the backdrop, which we don't anticipate any difficulty in finding and/or making.  This week our artist Yoshi and sound director David will be working on getting some art together, which we hope to be able to show off later this week!

Sunday, February 11, 2018

Methodology and Progress Report

Howdy all, Time Goobers Zudio's Sam here with an update on how our first week of development is going and how we're working on the game this weekend.

While we setup the underpinnings of our game we've run into two problems:
1) The code we write now will be the basis for everything, so everyone needs to fully understand it.  We debated writing it all together in the same room, but couldn't come up with a time when everyone is free.
2) While this foundational code is written there isn't much else that can be done in parallel.

So, in order to address these two problems we're doing 'pass the baton' pair programming.  Bailey and I worked on the code first, after which Harry and I worked on it, then Harry and Yoshi will work on it, etc.  This way everyone gets to touch the foundational code and everyone gets a turn at the keyboard.

Things are moving along, slower than we had hoped, but forward progress is being made.  A lot of Unity specific things are being learned, and some truths about ourselves are being learned as well (Harry has an incredibly intuitive sense of Unity's incredibly un-intuitive layout).

But the important part is that we now know enough about Unity to have developed a solid plan for how to implement our core mechanics going forward, which will likely make for a blog post later on.  As we go we're also finding some obvious spots for big improvements (basic things like better movement, a more fluid camera, etc.) that will likely end up in next week's TODO pile.  If you want to dig in further take a look at our Trello Board!

While all of this coding is going on David is coming up with story ideas for us so that we have some general theme that can tie our game elements together and help Yoshi make coherent art.  I'm looking forward to seeing what he produces, and whatever we choose will be posted here!

Wednesday, February 7, 2018

The Game Idea & Demo Plans

After the Goobers' first full team meeting we've put together a rough idea for what the prototype for our game will be.  We hope to build a bullet hell dungeon crawler, but with a twist.  What twist you ask? Time Travel!  Your character will go exploring a dungeon, searching for a way out.  Doing so will involve going through a series of rooms, often requiring backtracking as the player finds dead ends.  Upon entering a room the player has previously been in they'll see a ghost of their past self moving through the room as they did before.  But when the ghost shoots, beware! Ghostly bullets are just a deadly as hungry bats, and unlike hungry bats, hurting your past self has bad implications for your present and future health.

As the player explores more and loops back through rooms they'll leave more and more echoes behind, adding more and more ghostly bullets.  Smart players will plan ahead, ensuring that they aren't flooding essential corridors with bullets, while trigger happy players will be left dodging walls made out of regret (and bullets).

For next week we hope to have a small demo version with 3 rooms ready for play-testing so that we can begin our hunt for the ever elusive 'fun'.  This demo will have a player, enemies, and up to some capped number of ghosts in each room.  We hope to be able to share this demo with all our fans soon and begin gathering feedback ASAP!

Meet the Goobers!

The Team:

Bailey: Bailey Parker is a senior studying Computer Science. He has no interest in studying games because Apple owns his soul. He is taking the class solely to study Joshan (its not going well).

Sam: Sam Beckley is a masters student studying intrusion tolerant systems for the power grid. He aspires to one day become Homer Simpson and eat donuts while managing a nuclear reactor.

Harry: Harry Cohen is a senior computer science major currently going through rehab after a serious Pokemon Go addiction. Today marks 3 days sober. He enjoys studying Sam from afar. He aspires to some day grow enough hair and buy enough blue dye to be a suitable mate for his lifelong inspiration.

David: David Samson is a combined master student in Mech. E. and Robotics who likes to make games old school. He particularly enjoys developing for the NES in 6502 Assembly. When asked if he wanted to make a silly blurb, he said “No”.

Yoshi: While many consider him to be a small dinosaur, Yoshi is in fact a skilled artist/programmer...or so he claimed. It's been 4 weeks since we last saw Pratyush, alleged computer science major. He claimed to help us with 'graphic design', but hasn't submitted anything appropriate for this blog. If anyone finds him, please tell him he's very close to getting a B- under our strict evaluation standards.

Time Goobers Go Live!

Welcome! If you were looking for cute cat pictures, you've come to the wrong place (probably).  We're Time Goobers Zudio, a game studio made of Johnz Hopkinz students enrolled in Video Game Design Project.  This is our design blog, where we'll be posting progress updates as we bring our baby to life.