Biogenesis

Fight – Collect – Upgrade


Leave a comment

2D Animations

So games have a lot of animations. Kinda goes with the territory. One thing our project needed at some point was a few polished animations, and until recently, we’ve not had the capability to do so. All that changed with a couple of days of work, when the 2D animation component was created.

Unity has some easy methods built-in to assist with animations, the main task though was to take those functions and abstract them so that the artists could understand them. Using Unity’s systems, I created two different abstract systems for animations, one designed for power, the other designed for simplicity.

The first system was designed to give an animator a great degree of flexibility when designing animations. The system consists of an object in code called Spritesheet, which is designed to take in a texture (.jpg file, .png file, etc.) of the entire sheet itself, the number of rows and colums that the spritesheet will be equally divided into, and a series of AnimationInfo objects (which will be discussed later).

machine_power

The system will automatically divide the spritesheet into the specified number of rows and columns and allow the user to select sprites by giving the number of the row and column in which the sprite resides. This abstraction allows the user to interact with the spritesheet as if it was a spreadsheet in Excel or similar, where each cell holds a part of the sprite. This allows the game to load in only a single spritesheet for all of a character’s animations.

The AnimationInfo structure holds information about a SINGLE step in an animation. It holds values for the row, the column, and the amount of time in seconds (you can use a decimal number for this) for that particular sprite to display. The way this is used for complete animations is by linking them together. For example, the animation data for the NES character Mega Man’s running animation (which was chosen for its simplicity) can be illustrated as follows:

anim_example

This allows the spritesheet to use only three columns and one row, despite the animation being four sprites long. The system of using metadata allows you to keep filesizes down while simultaneously boosting usability.

Additionally, the Spritesheet class can take in information for multiple animations. So for example, you could have animation information for idling, running, firing, etc. They’d all call on the same sprite sheet for their data, and switching between animations is fast and easy.

The simple version of this system takes things even further and is used for simple single animations. This allows the user to specify:
a spritesheet as usual
the number of columns (assuming the sheet is only a row large)
a series of numbers specifying the order of sprites to use
a series of numbers specifying how long each sprite is to be displayed

This simplified system will simply loop through the order of sprites, displaying it for the amount of time specified. The Mega Man example in this case would look like this:
columns = 3
order = 0 1 2 1
times = 0.4 0.4 0.4 0.4

This is by far the simplest way to utilize the system for simple animations. However it’s still worth knowing that the system was also designed to support more complex sprite animations as well.


Leave a comment

New release, new look!

We recently hit a huge milestone: a finished beta release! Feature-complete, playable goodness. We still have lots of tweaks and improvements we’d like to do as we get feedback from our playtesters. One of the major things we’ve been focusing on improving are our creatures! There were a number of inconsistencies in style,  perspective, and proportion between the sprites that lead to many a strange combination. Without further ado, here are the results of our revisions!

Fish - Swark

Fish – Swark

The fish has lost some of his frills, but gained a mean streak.

Reptile - Crocturtle

Reptile – Crocturtle

Our reptile underwent the most revisions. Now significantly more beefy and a tad more spiky, we hope his redesign reflects his abilities in-game.

Mammal - Tiger Wox

Mammal – Tiger Wox

A little less fuzz, a lot more attitude. We wanted to make sure the mammal would not be regarded as “the cute one”.

Avian - Pecrow

Avian – Pecrow

Not much to say here. Our beloved bird had little to improve on.

Insect - Rhinopion

Insect – Rhinopion


Many players considered the insect the least interesting entry in our roster. We hope the updated look has solved that!


Leave a comment

Introducing Multiplayer!

Hello everyone!

I come here to share some exciting news!

We now have a new feature in our game that is going to change how the players play the game. Before, we have players play against the computer. Since this is a turn based strategy game, we wondered, “hmmm, why not allow a player to play against another player?” So we’d figured that we make that feature a reality, and we just did it! Aside from a few bugs that needed fixing, we can actually have a player vs. player online match!

Our first online match! Shea vs. Robert! Who will win?

Our first online match! Shea vs. Robert! Who will win?


1 Comment

Sprint 1 Wrap-up

The first two weeks of our last stretch of development have flown by, and some new features are well on their way.

Perhaps most impressively, we’ve decided to add networking to Biogenesis. We felt that much of the fun of the game’s prototype came from playing against another person. We didn’t want to lose that experience, so Shea has been hard at work implementing networking. In this case being a turn-based game is extremely advantageous, as we don’t have to transfer data as quickly or accurately as in a real-time game. We hope to have it wrapped up by the end of our second sprint. The AI has also undergone quite a bit of development, and the AI team can now employ specific strategies against the player team.

Our game is incomplete in a few major places. The visual, audio, and player interactions are all suffering from a lack of refinement. Luckily our new teacher, John Romero, has been able to impart some sage advice upon us. He has pushed us to improve the visual and audio aspects of our game. One of the things we’ve focused on is redoing the tile system. We had tried creating transition tiles to blend the areas between two different tile types, but we were still not satisfied with the result. Rene came up with a brilliant improvement: sinking the water tiles so they actually resemble a lake. 

newties

The tile images themselves still need some tweaking, but look how nice that water is! It gives our game a little extra shine in an otherwise flat space.

 

Our creatures have also been undergoing some massive changes. On the left, the new design. On the right, the current sprite. The change came about due to some promotional art that made the creatures look a lot tougher – it was an instant hit!

new_reptile        Reptile - Crocurtle

Reptile – Crocurtle

 


Leave a comment

AI in Biogenesis

This is the part of computer gaming that most people both think a lot about and don’t think a lot about. By that I mean that everyone will mention exception Ai in a game, saying such things as “It seems like the AI is learning from by actions on what to do.” or like “They set up an ambush for me, this must be top of the line behaviors!” What most people don’t talk about, is how the system is actually setup. Consider the fact about Pacman. Many first time players playing Pacman will make remarks that the ghosts are setting up ambushes or leading the players into a trap. In truth, the ghosts are simply follow a simple rule of which turn to take. Though seemly simple, this AI creates a great user experience. This is the goal we had when creating Biogenesis’s AI, simple enough yet a great experience.

To break down the AI we have three tiers as follows:

  1. Group Behaviors – The planning of all the creatures
  2. Creature Behaviors – How each creature carries out its part
  3. Pathplanning/Actions – How the creature moves around

Group Behavior

This is the part of AI that works as the name says. It focuses on the group as a whole. Imagine this as a fellow player who is combatting you. Like an actual human player, he forms strategies, and weighs costs in certain strategies.

How is this done? For the group, we utilize a system call goal-oriented behaviors. This means that to find the best strategies, the AI calculates its goals based of custom methods made by us. Once it has its goals in order it then assess its strategies to see which one satisfies its goals the best. Once this is accomplished, the group entity then conveys this information to the team, which leads us to the creature level.

Creature Behaviors

At this point each creature has been given a task to full fill, but how does it carry it out on its turn? To do this we go to the creature level. At this point the creature follows a system called a Finite State Machine (FSM). This contains a list of states that the creatures transition into. For instance the group behavior might tell a Avian to look for DNA so the creature first goes to the move to DNA state. Once it gets to the DNA, the creature goes to the use DNA state. The creature runs this until the group behavior modifies the state machine for the creature to use,

Movement and Actions

So now the creatures have the state and along with it the action to perform. This is the final and bottom most tier, movement. To accomplish movement is done using traditional pathfinding technique of A*. However, because we have different types of creatures, certain tiles cost more or less depending on creatures. For instance if you are a mammal and cannot cross water tiles, then the cost of the water tile is infinite, however being a fish makes the water tiles cost normally but then grass tiles are slightly discouraged because of the damage over time on staying out of water.

Performing actions are also done at this point. To do things such as using DNA effectively and attacking, use various learning plans and analysis to make the best decision.

Conclusion

In all we hope the AI for Biogenesis provides an interesting and entertaining challenge for players. The end goal will be for players to believe that the AI does something or remembers something that it actually does not.


Leave a comment

Sessions, Expo, and Parties: Great Times at Game Developers Conference! (Part 2)

Day 3:

This is when the real GDC begins. The first two days were all about sessions. Today, the conference opened the Expo floor where different companies from the US as well as the world had their booths set up to show off their company and/or their products. Along with that, IGF and Career Pavilion has their sections reserved in the Expo floor. Needless to say, I spent the rest of my time at GDC going to the Expo floor and checking out what that place has to offer. I had my first round of checking out Career Pavilion for any job openings, checking out companies, and checking out GDC play outside Expo where lots of other independent game studios were showcasing their games. I also checked IGF briefly just to see the games that I saw from the IGS talks.

During my past years at the Expo floor, the companies had some interesting stuff to show, but this year, I was impressed on how far we have come in terms of technology advancement. Neurosky definately had me and all of UCSC Computer Game Design majors’ attention. They manage to implement technology that can read brainwaves and make neat demos out of it. They had robotic cat ears that move, they had a video game demo made where you can throw or lift objects with your mind (whhaaaaaaat??), and they made a remote control helicopter, all of which can controlled based on how focused you are or how calm your mind is. As an individual who is more intrigued by alternative controls for games, I was all over that booth like a fat kid in a candy store. I talked to everyone who was a part of that booth, got some interesting info(including a way to obtain supplies to make games with this technology), and a piece of flair from one of the booth girls that got me free beer at the booth. Thanks to that booth, I am making plans on developing games with their tools in the future.

This lady can throw trucks with her mind thanks to Neurosky!

This lady can throw trucks with her mind thanks to Neurosky!

Every 3rd night of GDC marks the annual IGF and Game Developer’s Choice awards. I never took up the opportunity to go to the event in the past, so this was my first time going. It is really neat seeing on how far independent games has evolved over the years. FTL got Excellence in Design in IGF awards and got the Best Debut award in Game Developers Choice awards (whaat???). Cart Life won a few awards in IGF, including Best Game. However, Cart List didn’t sweep IGF like Journey did for Game Developer’s Choice awards. Journey won every award that it was nominated for (6 awards!), including Best Game. Robert, Cassidy, and I left Game Developer’s Choice a little early because we had to grab dinner and start our evening of jumping from party to party.

Day 4:

Day 2 of Expo exploration. The expo is so big you can’t even check out every company in a single day. I spent most of my second day there just bugging
companies for jobs and grabbing free goodies for my family. I also decided to spend some time at GDC Play checking out more games. I never would have expected that some people who run their booths at GDC Play would use that to recruit people for internships or smaller jobs. But thats the thing that happens there I guess. After grabbing some lunch, I decided to take a crack at the Valve booth to see if they are open for jobs. After talking to one of the representatives, I was asked to attend one of their sessions on their hiring process of job applicants. So I did. Turns out that their sessions is definately eye opening. All I can say without giving too much away is that they are very different in terms of hiring and if you choose to apply, you just need to show that you are capable of showing what you can do for Valve. As soon as the Valve talk comes to an end, thats when my final and non-forgettable night of GDC began.

Right after I walked out of the talk, I headed straight to the Brutal Legend art book release party. Little did I know that I had to wait in two seperate lines: One to purchase the art book or any pieces of the game art, and another to have your recent purchase(s) signed by Tim Schafer and some of the artists. I decided to buy the book to enjoy the game art and to give Tim Schafer and the artists plenty of space to do whatever they want with their autographs. Waiting to purchase the art book didn’t take long. Waiting at the second line, on the other hand, took quite a while. Chatting with my classmates, making new friends, and catching the sighting of Team Meat (Super Meat Boy) and Johnathan Blow (Braid) made the wait well worth it. It was really cool to see Tim Schafer and his quirky side that a lot of people enjoy so much. I also enjoyed looking at what the artists put down along with their signatures. From a quick draw of Brutal Legend’s protagonist to a 12 finger hand making the devil horns sign, they made the artbook well worth the money spent.

Tim Schafer, why are you flicking my ear lobe?

Tim Schafer, why are you flicking my ear lobe?

After getting signatures and grabbing dinner at Tokyo Express, my friend, Drew, wanted to go to a after party/concert where Skrillex is performing. I never got into Skrillex, but I decided to tag along just to enjoy my final night. That plan got ruined when we saw that the General Admission was long and the line for the people who MAY end up in the General Admission line was even longer. We are about to call in a night before we had a group of people come up to us to ask us if we could get them in. After telling them that we are just regular people and we couldn’t get in either, they changed plans and they wanted to go back to a party hosted by Blizzard. We were invited to come along with them. Needless to say, we joined them. My friend and I ended up sharing a cab with a CEO from a game company from London.

So we arrived to the Blizzard party. There was one problem. This was an invite only party, your name has to be on the list, and neither me, Drew, or the CEO were on the list (we lost the group who went in the other cab). The CEO tried talking our way into the party. Drew and I were a bit skeptical at first, but we knew it, the lady was registering the CEO and then us for the event. Before we knew it, we walked in to find open bars, dessert and food tables, and pinball and game arcade machines! There were plenty of developers who made AAA commercial games like Halo 4 and Blizzard games at that party. I even met Derrick Acosta from Mega64. It was pleasing to see that he really liked the Biogenesis demo that I showed him! I also met the Blizzard Producer as well. I wished that I would have showed him our demo and networked with more people, but I still had blast at that party!

Day 5:

Final Day of GDC. For what I have done for the past couple of days, I could have spent that day resting at my aunt’s house but I had some loose ends I wanted to take care of before I do that. The first thing I did there was I checked out IGF and play some of their games. I ended up playing FTL: Faster Than Light, Intrusion 2, and Incredipede, which they are decent games to say the least. All I can say is that after playing FTL, the game definately deserved the awards that it won (Excellence in Design and Audience Award). I checked out other games like Zineth, Kentucky Route Zero, and Super Space _____. Even though that I never got to play those (because the wait was too long), they seem like they were interesting games. After IGF, I went and give a quick walk around to check out companies and grab to see what could be useful for Biogenesis development as well as what could be useful for me in the future. Out of a lot of booths I looked at briefly, I found a booth that has a AI debugger tool. That is definately something that could be useful for me at least, if not useful for our AI development in Biogenesis. After going through the booths, checking out some playing some video games, and bugging a couple more companies for jobs, I finally decided to retire a little early and end my fun week at GDC.

Postmortem:

At the time of this writing, I just got over the cold that I got from wearing myself out from walking around GDC constantly for 5 days. Because of that, I also spent half of the following weekend sleeping in bed back home. Was that all worth the 5 days? Yuuup, totally worth it! Even though that I missed out on a few things, this year was definately the best year I had so far. I have learned a lot from going there by going to sessions and hearing about things from other people that I made connections with. Socializing with people who are as motivated to get in the industry as I am or people who are as passionate about the technologies and games as I am made me glad that I am pursuing this path into the gaming industry. Never had I been so motivated to come up with ideas for my future projects or to play around with my ideas that have yet to be in development. After my graduation, I am hoping I can get started on making a game or two on my own so I can help sharpen my programming and game development skills. and help propel me into the gaming industry. In the meantime, I need to save up some money so I can buy the Summits, Tutorials, and Bootcamps pass for next years GDC so I can get into the AI summit talks!

 


Leave a comment

Sessions, Expo, and Parties: Great Times at Game Developers Conference! (Part 1)

gdc13_logo

GDC is the event that every game developer looks forward to. We get gifts of networking with other people, free swag from booths on the expo floor, some potential connections for job offers, some knowledge from tutorials, and last but not least, the GDC afterparties! The entire event falls on our spring break, so Double Shot Games members and other team members from UCSC have something to be even more thankful for!

I bought the Indie Summit Pass for my trip. It was my 3rd GDC, so I wanted to have a pass that allowed me to access more of GDC than I had in my previous trips. Last time I went to GDC (about 2010), I bought the Expo pass which allowed me to go 3 of the 5 days of the event. The year before that, I bought the Student Pass which allowed me to go for the final day of the conference. The Indie Summit Pass gave me access to the summits from Independent Games Summit along with everything else that Expo pass gave me, which was a nice step up. Also, did I mention that this pass allowed me to go to GDC for all 5 days? Now that’s what I call a spring break!

The weekend prior to the event was rather eventful. On top of visiting with my family, I have to figure out the logistics of my trip, such as planning for my first two days of the conference, RSVPing to the after parties, and even research famous faces of commercial and indie game development. On top of that, I had to figure out the travel logistics such as directions because I made plans to stay with my aunt at a town 20 minutes away from SF and I plan on riding the BART to the conference every day. During the weekend of my preparations, I also had to attend to making a working demo of Biogenesis to show of to people of the GDC. Thankfully, I was able to take care of that and finish up with preparations just in time to grab dinner and spend some last minutes with my family before departure to start my adventure in the gaming scene.

Day 1:

This is the day where I had to get up super early. Why? Because I need to get to the Moscone Center early so I could register myself and start my week! So I went there and did just that, got my GDC papers, GDC bag, and now I’m ready to rock and roll. After grabbing my morning coffee and chatting with my friends, I had to go my way in order to go to Developer Days with Intel. Developer Days are basically a day long workshops where you get to play around with nice tools and make something out of it. This is the only day that I went to a Developer Day. I only went there for half of it because I lost focus halfway through and couldn’t pay attention (maybe because I didn’t have enough caffeine in my system?). On the bright side though, I got a nice interactive gesture camera where it can detect hand gestures and faces. I also learned how to implement the interface based off that input in Unity. Too bad that I can’t bring that knowledge over to help build Biogenesis but maybe I could create something with it in the future, right?

After I left Intel’s Developer Days, I went to the Independent Games Summit sessions and sat through a few of the remaining sessions with some of my friends. The last session of that day was definitely the most invoking session that I have attended so far. This talk is titled “Obsessive-Compulsive Development: Retro/Grade Postmortem . Matt Gilgenbach, the speaker, is clinically diagnosed with OCD. His whole talk was about how is OCD led him to implement the little bitty details of Retro/Grade and made them pretty, which resulted in the game not performing well in the market. He told how his obsessive attention to detail put him through hours of labor and took him away from what mattered to him, including his fiancee/wife. I never been in a talk where a person is so honest about the results of his game, let alone someone’s OCD that mended the outcome of the game.

After the Retro/Grade talk followed by dinner at Mel’s with friends, I went to a party hosted by Backflip studios at a venue which is a block away from Moscone Center. This was my first GDC party that I have ever been to. If there is anything I learned from this, is that parties are a great way to network with different people (you’ll see why later). Cassidy and I met a few people. We had interesting conversations with other people who are interested in either game development or anything that relates to games in general. Our night ended a little prematurely due to the fact that the live music became too loud for our comfort. So Cassidy and I ended up parting ways and ending our first day of GDC.

Day 2:

Im glad that I got to sleep in a little bit this morning. Just a tad bit too much though. I slept through my alarm and ended up missing the first Independent Games Summit talk of the day and walked in a bit late to the second. Oops. At least I was able to enjoy my second day. On that day, I ended up going to the rest of the Independent Game Summit talks. They had some interesting stories. Charlie Cleveland (one of the creators of Natural Selection 2) talked about how the Natural Selection community helped the team made Natural Selection 2 possible despite the overwhelming odds that were against the team.  The team for FTL: Faster Than Light, an IGF Finalist, talked about designing without a pitch. This is very interesting seeing their process of making a game which you are put in a role as a captain of a star ship which was inspired by Sci-Fi TV shows like Star Trek and Firefly.

Last but not least, the Indie Soapbox session had a collection of Indie talks. Renaud Bedard from Polytron Corporation (Fez) started off the soapbox and talked about the dread of the Fez aftermath, even with Phil Fish in the audience. Out of 9 other talks, the one that stuck with me the most was Colin Northway’s talk, which his game is one of the games at IGF. His slides are actually a slide show of his travels with his wife and their development of Incredipede. His first words, “This is my wife at our release party of Incredipede” followed by a picture of his wife smoking a fat cigar on a boat at a lake is definitely going to stick with me for a long while. Now I’m inspired to travel and make a game on my own. Maybe I can find someone to do the same with me. For now, I’ll enjoy the nice open bar that they had set up right outside the Indie Soapbox talk and talk to anyone who’s also enjoying free drinks and food.

Come check in tomorrow for the final part of my GDC escapade! Here is a little sneak peak of the remaining days of GDC.

2013-03-29 13.49.25 2013-03-29 13.50.12