Senior Capstone: The Mechanics 2

Hi

Last week went well in terms of development for the game. I was very swamped with work and was not able to do as much as I wanted to do on the game. What I did last week was implement teams and fixed a bullet collision and aiming issue. I also started the implementation of goo depositing and team points.

 

What I want to do for the game before we seriously try and challenge stage 3:

  • Revamp the camera and movement so that it feels more natural and smooth
  • Get a goo shader or effect for the goo characters
  • Finish implementation of the team aspect and goo depositing.
  • Iterate the vacuuming to make it extremely interactive and much more involving. I want it to feel like a real struggle!
  • Add sounds and music to the game
  • “Goo Sloshing”

 

This week should be interesting if I can get enough time to really work through some of these features.

Senior Capstone: The Mechanics

Hi Everyone,

This last week was pretty low-key for me. After Challenging and passing stage 2 last week a huge weight has been lifted from my shoulders. I feel as though I can relax and do work on a few other things, namely Grey: The Lost Technology for Team Aurora Games. Although, as far as capstone is related we sat down and took an overarching look at the game to determine what features we needed as Core Mechanics for the game. Stage 3 is all about solidifying and tuning mechanics of the game to get it juuuust right.

 

Speaking of making mechanics juuuuust right… After Chris and I added in his new art, it happened to break quite a few of the systems we use in the game. Which is very inconvenient. As of right now the vacuuming is mildly broken. The problem right now is that collisions between the vacuum cone and every other object is not happening. Originally the problem was the vacuum cone was hitting the gun of the owner and falsely triggering, and by leaving this problem in the game you could accidentally vacuum yourself up.

 

As far as other advancements go, I found a way to rotate the arms so that you can point at different things. That is very awesome for us because you can now actually aim at things. This allows for more unique level design.

 

Overall, the project is coming along and I haven’t experienced any problems with networking now. Mainly my only problems are with Unity now.

Senior Capstone: The Iteration

Hi,

Finally we have completed a prototype build of our game in Unity3D with each of the most important mechanics present in the game. These important mechanics are running, jumping, shooting, and vacuuming. Over this stage I have logged ~50 hours working on the networking for this game trying to understand how things work. I’m am so unbelievably happy to say that I REALLY understand how it all works now. After hours on hours of testing and trials and tribulations, I am now so familiar with the Unity Networking Library that I am confident that I can do anything.

This is exactly how I feel right now

“YOU CAN LITERALLY FLY!” Yes. Yes I can.

The largest problem I had was with getting the vacuum mechanic to work. I tried so many different things. I knew that I had to use to RPC (Remote Procedure Calls) to do this but I was going about it in such a bad way. The original way I was doing it was that I had a vacuum cone that would hit an enemy, I would get the id of the enemy, then I would send a message to only that client from the one who’s trying to vacuum them regarding that player that he needed to be vacuumed up. This is wrong in that I don’t want to send a message to only that client, I want to send a message to each client that has that character in their game. We want to send a message to all computers with information on what we want that character to do and update accordingly on each PC. Now that I understand how all of works, it’s so simple. I feel stupid, but I feel so confident at the same time. Understanding is key.

Senior Capstone: The Networking

Hello everyone.

 

This post is meant to represent my previous two weeks of work.

 

As the team moved into the production swing of (tentatively named) Goo Vacuum, I finally came to terms that for the team this project would be the best, albeit I would have a proverbial “fuckton” of work to do to get Networking in Unity working just right. And a large amount of work it is exactly. Over the past two weeks I’ve been extensively researching the networking system of Unity3D to such an extreme that every few days I consider rewriting my current network engine. However to challenge stage two, we don’t necessarily have to have a completely finished networking system in place, essentially only a working prototype of each mechanic in the engine of our choosing. My first work through of the prototyped mechanics went extremely well. Within a few hours I had working the enemy spawning, and shooting each other working perfectly. You could effectively kill each other, view a kill cam, and respawn. When I went to implement another very core feature of the Goo Vacuum game, the actual vacuuming of the enemies, I started to discover all the discrepancies of the Unity Networking Library. All of these have accumulated to become a huge problem.

Understanding

Understanding things is key. The largest hurdle that I faced that week was trying to understand the networking system that Unity had in place. I would read the documentation and for some reason not understand what it was saying. For the longest time I struggled to get features working because I simply didn’t understand. I understand the concepts of networking and what needs to be done to complete a feature, but every system is different and the attention that each requires to certain details is something that I must remember when working with new systems. For me that hardest part is trying to take something I understand conceptually and use that API that is provided even when I don’t completely understand the concepts provided to me. The problem wasn’t just the system, but it was the actually language used to describe the architecture.  I wasn’t familiar, and language is the way we communicate ideas.

I read countless articles and posts online about tutorials and guides on networking in unity, and people having problems doing certain problems. After I finally understand what had to be done.

Decision

The decision to go with the Goo Vacuum game was one of my own choice. As a programmer, I have a bit more power and sway with the team. I am the one to make things happen, I take art that describes and idea and make it usable. My team understood that if I didn’t want to do something they would essentially have to do what I say. In the end, I decided to go with the Goo Vacuum game because it would be better for the team as a whole. The only other contender was the Dragon Game, where that game would require little programming, but would require A LOT of design work from not just our designer, but the entire team, and the art to create the environments would be substantial. The Goo Vacuum game is a game that require quite a bit of programming in the beginning, and then later on will be down the artists and designers to create levels and other experiences. It’s just that the initial set up would be hard.

Senior Capstone: The Display

Hey Everyone,

We are going to challenge stage 1 on Friday. So that means we are going to show the few prototypes that we made. These prototypes can be played here:

Combo Arena

Dragon Game

Vacuum Game

 

In the end, if we pass stage 1, I imagine that I will be prototyping both the dragon game and the vacuum game. This last week was slower. I finished the prototypes and we worked together on gathering everything that we need to pass stage 1.

Senior Capstone: The Beginning

Hey Everyone,

I am excited to say that I am now in my final year of college at Champlain College in the Game Programming major. Through this semester I will be blogging weekly about my experiences in my Capstone course.

Capstone

As a game major at Champlain College, we are required to create a game as our capstone. Yes, we have to create a full game for our capstone. As I moved from my Junior year into my Senior year we were tasked to make teams that we wanted to be on for our game team for capstone. Basically each team is comprised of 4 members where each role is one of the main 4 in game development: Game Programmer, Game Artist, Game Designer, and Producer. As you might be able to guess, I am the programmer in the group. As far as the structure of the course, it is broken into five “stages”. In the early stages we are asked to come up with game concepts and prototypes, and as we move to the final stage we will be left with a playable vertical slice of a game.

Progress

In the first week I spent some time programming prototypes for our 3 game concepts that we came up with in the hopes of challenging stage 1 as soon as possible. Challenging the first stage is not an easy task. We have to give a 20 minute presentation to our course instructors which details all 3 of our ideas showing a prototype and describing technical details about it.

The Ideas

All of the ideas we’ve come up with are multiplayer games. Two of the games are meant to be played over a network and the other is meant to be played with 2 people on the same screen.

Combo Arena

Combo Arena focuses on a team based environment in a small open playing space. It will be contained in a type of arena. The teams will be sized as 2 players and the total teams playing at once will be a maximum of 3 teams. 2v2v2. With that being a total of 6 players being networked playing against each other. The main feature of being in teams of two is the ability to combine weapons with your teammate. Once combined the final weapon will be better in total than the individual value of the original weapons. Imagine a barrel of a gun, and the butt of the gun used at weapons. Once combined, they become an actual gun!

Goo Vacuum

In Goo Vacuum you play as a blobby, globby character on a team of up to 3 against a maximum of 3 teams. Each team has a respective “Goo Repository”. You must vacuum up your enemies by first weakening them with gunfire and then using the vacuum to pick them up. Once picked up you are carrying their “life” in your backpack. You must bring them back to your Goo Repository and once done your team gains a life. The point is the have the most lives as possible in the end.

Dragon Platformer

Imagine a game where you play as a dragon, and your friend plays with you as another dragon with different abilities. At the same time imagine yourself in a world that is cross between Trine and Castle Crashers. The dragons will work together using their special abilities to solve puzzles and proceed through each level.

Conclusion

My Favorite game is the dragon platformer. The other two games are networked and while developing a networked game is not necessarily the most difficult thing in the world, I would much rather work on a game that is not networked. Working in an engine like Unity3D will prove difficult to optimize for a networked game. If it was up to me, I wouldn’t waste time on handling networking and a bunch of other systems, I’d much rather work on graphics effects.