Tuesday, March 12, 2013

Monster Merchant - Laying Groundwork


The last week has been a struggle. A struggle NOT to work on Monster Merchant. With the project finally gaining momentum, it's all I want to do, and sadly many other projects currently take precedence. That said, I've found time to devote to the magical world of monsters, and I'll relate the results here.

Game Overview

The game can be described in one sentence: In Monster Merchant, you catch, breed, raise, and train the monsters which populate the traditional dungeons of fantasy role-playing games. 

Gameplay consists of three main things: Filling orders and managing relationship with dungeon overlords; breeding new monsters by mutatation and egg fuzing; and going out into the wild, battling wild monsters and catching them and raiding their nests for eggs. There will also be a crafting system using monster parts, harvested from wild monsters killed in battle.

Game Design Document

After a lot of deliberation, I've finally completed enough of the design document that I'm willing to move into code work. It's far from finished, but the core mechanics are clearly set out, even including some vital algorithms for how monster breeding works. A few example traits and abilities have been laid out, monster characteristics decided on, and combat system has been described. Many more traits and abilities will be needed for the final version, the combat system needs to be more clearly fleshed out and heavily tuned, and the story is skeletal at best. But the core way that monsters and monster breeding works is done, and that's the first thing I want to get into the game.

Coding Has Begun!

With the design document in hand, I opened up Unity and created a new project. A monster can now be created and specified easily within the editor. I deliberated for a while on how to create Traits - in editor, in XML, or as sub classes of a parent Trait class. I finally decided on the latter. I think it will make future expansion much easier. All I need to do is create the new trait class and attach it to a trait library, and it becomes immediately available to the game. This should allow easy additions later in the project, or with DLC.

I also am going through Unity's GUI tutorial, mocking up a GUI for monster stat display.

Getting Started with Art Assets

Roy has started working on a simple monster to use as a placeholder in the GUI screen, and has begun thinking about how to do the modular monster models. It's really exciting. I drew up some (absolutely terrible) concepts of how the monsters vary based on their traits. Here's an example showing different body types for a dragon monster:

Team Building

In addition to the coding, design, and art work, I've also done some work bringing the team for the project together. Communicating our progress, setting up a private Bitbucket page, and creating the lovely banner you see at the top of the page are some of these activities. At the moment, the core team consists of myself doing programming, design, and management; Roy doing design, writing, and art; and Angelina on sound. I also have a large number of volunteers interested in playtesting, writing, and fiddling with numbers. Unfortunately, the game requires a significant amount of 3D art assets, and complex animations for the modular monsters, and Roy may not be able to do all this himself, so we may need to seek another 3D artist and/or technical animator.

Overall, the project is finally moving forward and I'm extremely excited for the future!

Monday, March 11, 2013

Game In Scotland 2013

Friday I attended this year's Game in Scotland career fair. It was a great experience, pulling together students, industry veterans, and company representatives from all through Scotland. Wandering through the stalls and talking to employers was actually really fun. I got to learn about many companies I previously knew only by name, and see first hand what kind of openings were out there for when I graduate.

The biggest thing I had impressed on me from this career fair is that good programmers are sorely needed in the industry. Previously, I was terrified that I wouldn't be able to get a job after graduation and would have to go back to America. Now, after having promising chats with multiple companies and interview requests from two (Tag and Climax games), I'm feeling much more confident that I'll be able to find not only a job, but a job I truly enjoy when I'm done with university.

Friday, March 8, 2013

Creating a PS2 Game - The Beginning


Similar to last semester, this semester I'll be blogging about the development process for my coursework at Abertay. One of my modules this term is Console Development, in which we learn about developing for specific hardware and input devices. For the coursework, we'll be creating a game for the Playstation 2.

The requirements of the coursework are fairly simple: Create a 3D application which accepts user input via the control pad and processes graphics using Vector Unit 1 in the Playstation hardware. The application doesn't even need to be a game, but I think I would like to make it one if I can. Higher marks will be given based on how well the application takes advantage of the Playstation hardware.

My current idea to fulfill this coursework is a game in which the player controls a cannon shooting down things in the sky. This covers user input, as the player will be aiming the cannon using the analogue sticks and firing using one of the buttons. Vibration will be used to give user feedback when the cannon fires and any mid-air explosions, making them feel powerful. The project will involve loading and rendering 3D models, determining collisions (though this can be VERY rough and simulate everything as spheres), and possibly allow the player to move to avoid projectiles.

For graphics, I'm very interested in the cel-shaded style, and may attempt to create the game using it. I plan  on using a cel-shaded style for another of my upcoming games, and this would be a good excuse to learn about it and show my abilities to make something different than the other students. If I choose this, the theme would have to match it - something silly and fun, perhaps shooting "party bombs" with confetti particle effects, or flowers, or something.

This is just the beginnings of the idea, and I don't want to settle on anything too soon. Next week, if I still like the sound of it, I'll start planning the tasks I'll need to complete the game.

Wednesday, March 6, 2013

Dissertation - Formulating Ideas

At the end of this semester I will be submitting a proposal for my MSc dissertation. The dissertation will be a semester long project during which I will have no other coursework, and will be working full time researching a game programming topic. I will be expected to present new and useful findings that better the game industry knowledge as a whole, with the understanding that this is not a PhD and I only have one semester in which to complete the research.

Today, I've at last settled on a possible research topic. As regular readers will remember, last semester I created a fuzzy logic controller and genetic algorithm optimization using HTML5 JavaScript. My lecturer Dr. David King seemed interested in developing the project further, but I wasn't sure how to go about doing that. After our meeting today, however, I think I have found a way that combines many of my programming interests into one project.

Fuzzy controller input membership functions for last semester's project

I'll frame the topic first as a product: An online tool that game developers can use to create fuzzy control systems for their games and automatically generate a plugin that is ready to use. Optionally, it can also generate a genetic algorithm optimization method for them - however, since this requires knowledge of the game implementation, this would be more difficult to implement - but also more interesting and potentially rewarding.

However, this is not just a semester long project - it is a research dissertation. I have to be able to phrase my topic in terms of an investigation, or research question. I'm still figuring out how to do that, but one possibility is: "Can a modular FIS tool be created to suit an arbitrary game's development needs, and if so, how useful is it to the development process?" Measurables include: How effective the FIS generated by the project are (do they work); how easy the interface is to use (survey); and how easy the generated plugins/modules are to use in the final game (survey). Things that would be needed to show this include: the tool itself (HTML/JavaScript); and one or more game applications that use the generated plugins, if possible some games that weren't created by me. I may be able to get Dr. King to make the tool available to next year's AI module for MSc students to get some feedback and help them understand FIS controllers, and may also release the tool to the Abertay Game Development Society in return for feedback and use of their game in my dissertation demonstration.

My next task is to research and see if this has been done in any form previously. I'll also need to do general background research into fuzzy controllers  genetic algorithms, writing plugins and tool programming, and user interface design. Once the base research has been done, I'll write my proposal and get started.

While I'm a little concerned that this project may not qualify as research, and more just making something, I'm hoping it can be massaged into meeting the assignment requirements. It is a great combination of my interests, in AI, tool programming, and user interface/interaction. I may be creating something that is immediately useful to fellow students and developers. I'm quite excited and looking forward to developing the idea further.

Friday, March 1, 2013

Pollinator, Flower Defense - Detailed Enemy Design





We've been working like busy bees on the Pollinator project for the Abertay Game Development Society. While we still don't have a fully playable prototype, we've made a lot of progress on enemy, bee, and flower designs. In addition, our wonderful artist Piia has produced some gorgeous concept art, as well as as some initial enemy art.

In case you missed the game description, Pollinator, Flower Defense is a tower defense game in which you play as bees defending their hives. Previously we had planned for the main enemies to be wasps, but we've since changed that to ants. This makes more sense for a lot of reasons - first, it differentiates the heroes and enemies more. Second, it makes more sense for ants to be blocked by flowers, since they are land creatures.

In the last week, our designer has been generating all sorts of interesting enemy designs.

  • Worker Ant - Straight-To-Target: Plows on towards the hive, mostly for scouting rather than actual offense.
  • Soldier Ant - Creature Attacker: Attacks friendly creatures that move against the creep wave.
  • Winged Ants - Flyers: Weak flyers that bypass flowers.
  • Stag Beetles - Tank: Slow to move but packs a punch and can take a beating. Hive destroyers.
  • Rhino Beetles - Flying Tank: Very slow to move but packs a punch and can take a beating. Can fly over flowers. Extremely dangerous. Hive destroyers.
  • Millipedes - Iron Defenders: Protects other creeps with long carapace body. Creatures attacking creeps under the millipede or the millipede itself will do less damage.
  • Hairy Caterpillar - Spiky Defenders: Protects other creeps with long spiked body. Creatures attacking creeps under the caterpillar or the caterpillar itself will be damaged.
  • Cricket - Speed Boost: Increases the speed of nearby creeps with its violin music.
  • Kamikaze Ants/Pea Aphids - Suicide:  Rushes through defenses and explodes at targets.
  • Grasshopper - HexSkipper: Hops quickly between hexes instead of regular creep movement. Skips one hex then pauses before the next leap. Can leap over flowers except Wallflowers.
  • Water-Skimmer - Non-Slowed: The pads on the feet of these insects prevent them from being slowed by honey or sap.
  • Dung Beetle - High Defense Wave Leader/Protector: Moves at the head of the line of creeps, taking attacks with its large ball of waste. Melee attackers will be slowed when striking the dung ball. Speeds up when ball is destroyed, though has low health.
He's also been working on bee, flower, and tech designs - but those will be the subject of a later post.

I'm quite excited at how well development is going. I'll be posting a video of a playable prototype as soon as we have one ready, hopefully in the next week.

Wednesday, February 27, 2013

Blitz Open Day


I just got back in to Dundee today after traveling down to Leamington Spa in England for Blitz Open Day. It was an absolute blast! I highly recommend the experience to anyone currently at University and planning to go into the games industry.

The day was packed full of awesome stuff, all basically designed to educate students about the industry and Blitz in particular. Going into the weekend, I must admit that while I would have been happy to work at Blitz simply because they are a game company, I wasn't particularly enthusiastic about them as a studio. That has definitely changed! The culture and opportunities that Blitz represents are intriguing to me. First, they have many teams working on different games, so there's a lot of variety going on at any given time. Second, they create their own engine, giving an opportunity to try tool programming. They even have an R&D department for cutting edge research. Finally, the company allows it's employees to work on their own games on their own time - many other companies make you sign away your right to any IP you create while employed there, but not Blitz! One of the programmers I spoke to had just released her own game. Blitz even has an indie store where they will publish your games. In addition to all this, Blitz seems very focused on education, both for their employees and to better the industry in general.

After learning how awesome Blitz is as a company, I got to speak in small groups with several Blitz employees about the industry and breaking in. It was a great opportunity to discuss what needs to go into a portfolio, CV, and interview, as well as what to expect when actually working in the industry. After the open day, we went out for drinks with Philip Oliver (one of the founders of Blitz) and several employees. The other open day students eventually went home, but since I was staying in a hotel in town, I didn't have to. The developers invited me to second bar, where more Blitz folks and some indie devs were hanging out. It was a great night full of meeting new and interesting people and chatting with folks already in the industry. I had a blast!

I can't stress enough how awesome this event was, and I'd definitely recommend anyone currently in university for game development in the UK to try to go next year. You'll need to apply before January to get a place, so keep an eye on Blitz's website for when applications open up.

Thursday, February 21, 2013

PS4, Travel, Bleh

There was a big thing tonight. It involved the PS4. I watched it. I want to talk about it, but I'm tired and still sick and need to travel tomorrow.

Blog posts may or may not happen while I'm in England visiting Blitz Games. That's tomorrow, Friday, and Saturday. I'm super excited!

Now sleep. G'night all!