Wednesday, September 11, 2013

Exploring Scotland - Around Dundee

Just over a year has passed since I moved to Scotland, and it's been a while since I've talked about my adventures in my new home. In fact, I planned to do a lot more of this kind of blogging when I first arrived, but got distracted with other things. Now that I've just finished three weeks of running around the country with my parents doing tourist things, I'll spend a few posts reflecting on what we did and saw here.

We'll start in Dundee, the city I live and attend university in. While it's the fourth largest city in Scotland, Dundee is pretty small for a city. It's architecture, compared to some of the other places here, is pretty but not amazing. But to someone from the US, it's still fantastic to look at. I've met a lot of Scots who are confused by our fascination with old buildings and castles - but you have to understand, Scottish readers: some of the buildings here are older than our ENTIRE COUNTRY. We don't get a feeling of that gravitas, that weight of history, in many places in the US.



Some of the Dundee buildings and scenery

The family poses with Desparate Dan!
Anyway, we had a lot of fun exploring Dundee. I tried to cover all the main attractions, as well as a few of my favourite local places. First, we visited the high street and the fun statues there, including Desperate Dan. Dundee is famous for Desperate Dan, a character in a comic called the Dandy, produced in Dundee. Comics are part of Dundee's journalism industry, one of the "three Js" that made up Dundee's industry in the late 19th and early 20th centuries.

Food and Drink


Strawberry Daiquiris at Rancho Pancho
We visited a TON of restaurants while we were here. I took everyone to my favourites - Tonic, Nandos, Rancho Pancho, and more. Scotland isn't known for it's food (aside from the mysterious Haggis) but I know I've found lots of places that make my taste buds dance. Tonic is my all-time favourite, with a truly ridiculous number of burger choices, all of them amazing. My go-to choice is the Texan Hat, a burger with beef patty, Scottish bacon (which is WAY better than American bacon), cheese, hash brown, and barbecue sauce. SO TASTY!

The outdoor seating at Duke's Corner
was a big hit!
We also made sure to check out a lot of pubs, as my parents like to try different beers and wanted to taste as many Scottish varieties as they could while they were here. Duke's Corner, Tickety Boos, and more were investigated. I'm not a beer drinker myself, but I did enjoy trying different types of ciders - for my American audience, UK cider is by default alcoholic, and served cold. My favourite brand is Rekorderlig, a Swedish cider with many tasty fruit flavours. More commonly available, and still tasty, is Kopparberg.

Music


My dad moves in to tip the Trombonist
 As I may have mentioned before, my father is a blues musician. consequently, I was delighted to show them the active street busking scene in Dundee. On a dry day you can see a busker every block or so on the high street. Most are guitarists, fiddlers, and harmonica players, but there are a few exceptions, including trombone players and accordion players. The mix of music on every corner makes the city feel alive.

Dad busks near the dragons statue
After seeing some of the buskers, my dad decided to try it out himself. He brought his steel body resonator guitar from the US, which, along with his slide playing style, attracted quite a lot of attention. The guitar is quit shiny, and also a lot louder than a normal guitar, since it was developed to amplify sound before electronic sound amplification was common. While Dad didn't make a fortune playing, he had a lot of fun, met a bunch of other street musicians, got info on local open mic nights, and made enough money to buy a few beers and to tip other street musicians we passed by,

Jam session at the end of a crazy and
wonderful night at Clarks
As I mentioned, one of the fruits of his street busking was knowledge of where the local open mic nights were. One such establishment was a little pub called Clarks. We went there on one of the last nights of my parents' stay, and I have to say it was probably the best time we had for the entire visit. Clarks has an amazing atmosphere - it really felt like a ton of musically minded people all getting together to appreciate each-other's craft. Dad was one of the first to play, and met with an extremely warm and welcoming reception. People loved the blues style (it was a folk music themed night so he fit right in), and the novelty of him being American and his very shiny guitar helped too. They invited him to stay until the end when many musicians got together and jammed on stage. During the jam, they did one of my Dad's songs, which is a call back style song that the audience participates in. Everyone in the bar was singing, clapping, stomping their feet, and my Dad had a whole band of musicians behind him. I could tell it really made the trip for him, and it was damn fun for me too! I got to see a lot of new talent that I want to hear more of, and I plan to head back to Clarks regularly from now on.

Seeing the Sites

The family poses in front of the Discovery
In addition to investigating the local music and food scenes, we did a lot of tourist stuff too. Dundee is known for the ship the Discovery, the first ship to do prolonged research in the Antarctic. It was great fun crawling around the old vessel, and my Dad is really into ships too so it was perfect for him. The ship is old, from the beginning of the 20th century, and was powered both by steam and sails. It was interesting to compare it to my experience on the OMSI submarine back in the states.

One of the biggest sites to see in Dundee is the Law. Law means "hill", so the people who say "Law Hill" are being redundant. Basically, it's the highest point in Dundee and looks out over the entire city. It's a beautiful site and was well worth the cab fare to get up there.

Panoramic of the Law - the view was breathtaking


We pose on top of the Law

We decided to walk down from the Law, and I'm really happy we did. We found this very long corridor of stairs squeezed between old fences, gardens, and buildings, and it was a truly lovely walk.

At the bottom of these stairs was Dudhope castle. Fairly small and pretty modern as far as Scottish castles go, Dudhope was still a lovely site from the outside. It's a private castle so it's not open for exploration, but we got a nice picture from the gate.


The trip down from the Law was as fun as the hill view

The last major tourist attraction we visited in Dundee was the McManus Museum at the centre of town. It's a lovely museum with a mix of art, industrial history, and natural history/wildlife. It was a lot of fun, and is a really nice looking building for photo ops!

Pose in front of the McManus Museum

To Be Continued...

That's it for my Dundee adventures, but I'll have several more blog posts detailing my exploration of Edinburgh, Inverness / Loch Ness, Aberdeen, and several small towns and castles along the east coast of Scotland. Look forward to it!





Saturday, September 7, 2013

Plannit: Post-Project Reflection


My, it has been a while! If you are wondering where I've been all summer, I've been participating in the Dare to be Digital competition at University of Abertay, Dundee. It has been a fantastic, crazy, wonderful experience, and while I am happy to have a break now that it's over (albeit a very short one, more on that later), I will miss the intense and rewarding work and all the great people who participated.

This post will cover my general reflections on the project, but we've also been keeping weekly video blogs on the Dare website, so go check them out!

The Premise

Plannit is a game made in Unity, targeting Android mobile devices. It started out a very different game than the one we showed at Proto Play. Originally, the game was an asymmetrical multiplayer title in which one player controlled the environment while the other controlled the character. The players would work together to drain the lava out of the centre of a planet and into their spaceship.

Here's the initial pitch video:



The first thing to go from this premise was the lava. We soon realized two things. First, liquid physics on a mobile device is not easy and no simple plugin existed for the kind of liquid we needed. Second, this goal was actually extremely convoluted to explain to a player, and in particular for mobile devices, that's no good. We decided to scrap the lava idea entirely and instead have players pick up crystals - several optional small ones and one required large one.

The second thing we changed was the multiplayer aspect of the game. We always planned to include a single player mode, for testing purposes and because some people may not have someone else to play with. However, we soon found that even playing on the same screen, the cooperative multiplayer was frustrating rather than fun. We briefly entertained the idea of a competitive multiplayer mode, but soon realized we'd be making two different games if we went this route. In the end, it would be best for the game in the time allotted to focus on single player.

Here's the final trailer showcasing footage from the game:


Development Challenges

We faced three main challenges during the development of Plannit, and all of them were due to the innovative nature of the game.

First, we had a lot of trouble with our digging mechanic. Modifying the level environment on the fly meant changing the collision body of the level (so that physics would work) along with the graphical representation of the level. We went through many iterations of brute-force collision attempts, but none of them worked very well and many looked quite ugly. Finally we came across the Unity plugin 2D Collider Gen, by PixelCloud Games. While the plugin was not designed for run-time mesh modification, it did exactly what we wanted - modified the collision mesh for an object based on the 2D sprite of that object. What followed was a tough but extremely rewarding process of learning to use the plugin for run time modification, with constant support from the plugin developer. It was a great experience, and it was wonderful having so much help from the dev.

Things weren't all rosy yet, however. Once we could represent the levels in the game, we still had to design them. While our image based system made the turnaround for getting levels into the game quite quick, the design process took far longer. Our game allows the player a huge amount of freedom when it comes to moving around and interacting with the level - but it turns out this makes puzzles very difficult to design. The player is able to rotate the level freely in a 360 degree manner, and to dig through the environment itself, modifying the world around him or her on the fly. It took the team quite a while to get a level design process down and get six solid levels into the game. It was also surprisingly challenging to gauge difficulty of the levels - as a puzzle game, the solution is always obvious to those who know it.

Finally, once the levels were designed, the player had to move around them. We had a lot of trouble fine tuning our controls, and tested several different control methods. It's actually very difficult to explain in words how the two methods of tilt/rotation controls worked. In the first, the perspective is fixed to the device, and tilting the device causes the world to rotate constantly, until the device is upright again. In this method, the device is only ever tilted up to 90 degrees to the left or right. This is the method we ended up going with because the player never has to re-position his or her hands. The second method we investigated was a one-to-one rotation, where the perspective was fixed to the player in the real world, and the device was a controller for the planet's rotation in a one-to-one fashion - so turning the device upside-down means the planet turned upside-down. While this allowed for more precision, it meant re-positioning of hands was necessary, and also resulted in a less smooth looking rotation. The choice was a very difficult one, but after a lot of testing we chose the first method.

Moving Forward

While we didn't win any awards at Proto Play, the team is extremely proud of our final product. Its strong visual and audio style and innovative gameplay means that it could be successful. We're currently looking into options for publishing the game, but if nothing pans out we plan to self publish. However, the team is taking a short hiatus until January while several team members (myself included) finish our dissertations.

Dare was the best experience of my career so far. It was intense, but I learned a vast, unquantifiable amount during those short nine weeks - not just about programming (though man did I learn a lot about that too!) but also about working in a team, organization, communication, design, business... the list goes on. The hands on experience, the mentoring, the feedback from the public - it was all priceless. If you are in the UK or one of the participating Dare countries, please, do yourself a favour and apply for this program.

Orbit Games thanks you for everything!

In Other News

A quick aside from my reflection on Plannit - as you may have noticed, I've actually been away for more than nine weeks. That's because the last three weeks, my parents have been visiting from the United States! They've headed home now, but I'll be posting some stories of our adventures here on the blog in the coming weeks. Look forward to it!

Sunday, June 9, 2013

Pollinator, Flower Defence: Post-Project Reflection



It's been too long since I talked about my game for the Abertay Game Development Society: Pollinator, Flower Defence. The game was in a demo-able state for the last month and a half, seeing as we brought a build to the GDS showcase at the end of April. However, it wasn't running properly outside of the editor - we were having huge problems with the animated sprites scaling to gigantic proportions.

I'm glad to say this has now been fixed (albeit with a slightly hacky fix) and we now have a web version of the game available for everyone to try out! The game is located on my dropbox for now, since it's still just a prototype. If we continue work on it, we may try hosting it somewhere more permanent.

The Premise

For those who haven't been following this project: Pollinator, Flower Defence is a tower defence game in which you play as a group of bees defending their hive from attacking ants and beetles. It twists the genre slightly since you can freely move your bees from flower to flower - however they cannot attack while being moved and do not generate pollen or seeds while being moved. Additionally, players can build two separate "parts" for each tower - the flower (blocks movement, provides place for bee) and the bee itself (attacks, can be moved between flowers, generates resources from flower).


Difficulties

Developing this game was not without it's problems. First was simply the lack of time to devote to the project. We had a very small team (one programmer, one designer, one artist) and we all had our other coursework to work on. Additionally, two of the team members were going through Dare applications as well. Because of this, many of our grand plans couldn't be implemented - but luckily we recognized this from the very beginning and planned for modular development where we started with a minimum playable game and added more features time permitting.

On the technical side of things, I had more trouble than I was expecting using the Orthello 2D framework. It does everything I needed it to do, but sometimes it doesn't do it in the most intuitive fashion. We also had some serious issues with it's animated sprites resizing themselves to giants, which ultimately was fixed using rather hacky Update() size changes - not my best work, but a quick and dirty fix that did the job.

Design wise, the project did suffer from the lack of additional features. The two resource design (pollen and seeds) would have been interesting if there were more things to spend said resources on. As it is, it's actually quite boring because basically you just want to spend all your resources as fast as possible and there's no interesting choices between building flowers vs. building bees since their resources are de-coupled. The seed/pollen mechanic may also have been more fun if we'd gotten in the pollination feature - bees would carry pollen between flowers when moved, and only then produce seeds (or increase rate of production, at least).

There are also a few informational parts of the game we just didn't have time for, such as a how to play screen or tutorial, prices for the bees/flowers, and a credits screen. These are fairly easy to make and may be added in the near future.

Future Plans

Ultimately, this was a great initial project for the team. While we do hope to come back to the game and improve it (I really love a lot of the mechanics and interesting enemies Roy had designed that didn't make it in), I'm not really sure we'll have time for this. I have so many awesome projects in the pipeline now that this may be the last we see of Pollinator. This game will always have a special place in my heart because its first incarnation was the first video game I ever created. But I think it may be time to close this chapter and look forward to new and exciting things.

If any updates do make it in, I'll definitely write about them here! For now, farewell my buzzy bees. It was great fun!

You can play Pollinator, Flower Defence here: https://dl.dropboxusercontent.com/u/11838203/Pollinator/Portfolio_Web.html

Monday, June 3, 2013

Creating a PS2 Game: Post-Project Reflection

It's been a while since I've talked about my PS2 project for my consoles class at Abertay. Now that the project is finished, I'd like to look back and see what I've accomplished, what I could have done better, and where I'd like to go from here.

Title Screen for Pyroteknix

The Premise

As I mentioned in my design blog post for this game, I wanted to create a game all about putting on a fireworks show. I decided in the end to name the game Pyroteknix. In this game, the player controls a cannon which can shoot fireworks into the night sky. More specifically, they control a crosshair which the cannon rotates to point to, and which fireworks will target and explode on.

Gameplay for Pyroteknix
An audience watches the show below. Each audience member has a mood (indicated by their facial expression), which contributes to the points gained by each firework. A firework gains points for each audience member which sees it (based on the firework's x position on the screen and it's range), modified by the audience member's mood. The audience members' moods drop naturally over time, but are increased by seeing a firework. Therefore it's important to spread the fireworks out across the sky to keep all audience members in high spirits. If any audience members get upset, they will leave. If all audience members leave, the player loses.

In addition, each firework has a cost associated with it. The player is given a set budget at the beginning of the show, so they must space out the fireworks over time. The show has a set time limit, counting down and displayed to the player throughout the show. The player must balance keeping the audience happy, gaining points, and not letting their budget run out.

Technical Details

Working with the PS2 was an interesting experience. We could not use an IDE, so it was back to Notepad++ and a linux-based g++ compiler. In a way, this was refreshing - I really like Notepad++. But, I'd found I'd grown very fond of tab-complete for my class methods and data members, and missed that quite a lot. Additionally, working with the makefile setup we were given was frustrating, but I lacked the makefile know-how to fix the situation. Essentially, the makefile wouldn't detect .h file changes, and wouldn't recompile based on them, but wouldn't throw errors for things referencing stuff changed in the .h file, and so I got horrible crashes for no apparent reason. This also resulted in a need to reboot the PS2, which took around five minutes each time. Compiling was also quite slow, which was frustrating.

Another huge technical frustration came from working with the vector unit code. This was all assembly level stuff, which for those not code-inclined means very low-level stuff where you are literally moving memory around inside the processor to do calculations. It is NOT my kind of programming, and it was like pulling teeth. I thought what I wanted to do (a cel shading style) would be easy, but despite working on it for a full day I never figured it out, and ended up giving up on the vector unit code altogether. I still managed a very good mark on the project due to my other clever use of the system and a very nice framework.

Now on to technical successes. I was able to re-use the framework I've been using in my DirectX project, since I completely encapsulated all the graphics stuff. This was really useful and let me get a lot done very quickly, and looked quite professional to boot. It included support for screens, game objects, and particle systems. Since particle systems were very important for this game, I spent a lot of time making sure they looked nice and billboarded correctly. I wasn't 100% happy with the results but I think they were well enough for the time period allotted for this project.

I was also able to manage the display of graphics in such a way that optimized the texture buffer use so it was changed as little as possible, while still encapsulating all the graphics code. In addition, I had to edit a lot of the provided framework's graphics synthesizer instructions to allow for transparency and 2-D image rendering.

Finally, I was able to get in some decent effects to really pull off the cannon firing. I added sound effects for the cannon fire itself as well as a whistling as the firework went up. I also added both a screen flash (simply rendering a white texture over the scene for one frame) and a rumble feedback when the cannon fires. This made the game feel much more visceral and was great feedback for the player.

Future Plans

While I feel like what I managed to do with the restrictions imposed by the time frame and platform was pretty good, I would have liked to do a lot more with the project. Different kinds of fireworks, combos, audience requests, higher audience expectations later in the show (finale), and some kind of overdrive mode where you can shoot fireworks off for free - these would all be awesome features to add. I think this game concept is actually pretty strong and hasn't really been done much that I've seen, and I'd like to bring the concept to a mobile platform. I think it would suit touch controls very well, and it's shiny, fun style would do well with a mobile audience.

I'm not sure when I'll have time to work on this, but it's definitely going in my bank of "things I'd like to make". I'd call the project as it is a successful proof of concept and a great learning experience.

Monday, May 27, 2013

PUNCH: Post-Project Reflection

PUNCH (Punching Ungentlemanly No-gooders and Cleaning House) was a game created as a group project for my university this year. The game is a four player smash-'em-up using Xbox controllers where players must break the furniture in the house to gather coins. The first to five coins wins. Players can also temporarily stun each other, making player interactions more interesting.

You can see a video demonstrating gameplay below. Unfortunately, only one player was available to make the video so it doesn't quite capture the manic, fast-paced feel of the game. Additionally, the rest of the art assets and the power-up mechanic didn't make it into the build used for the video. It's possible we'll get an updated video later on, and if so, I'll post it here.

PUNCH prototype gameplay.

The engine used to create the game was Havok. I have to say, it was the absolute worst experience with an engine I've had to date. Nothing was intuitive, the documentation was hard to navigate and often altogether wrong, and the game ran significantly different outside the editor as opposed to inside. It was a mess, and our team could have accomplished so very much more if we hadn't been constantly fighting with the engine. Given the choice, I will never work with Havok again, especially when there are amazing free alternatives that flat out work better, such as Unity.

This was the largest team I've ever worked with on a game. At first things were a bit rocky, as we forged ahead without nearly enough planning and communication. Coding standards, a planned program structure, and a better estimation of everyone's strengths from the beginning would have been very useful. We also had a rather imbalanced team, with seven programmers and only one artist, designer, and producer each. Better use of online communication and version control, and sitting closer together in the lab in general would have helped a lot as well. But this is the environment to make mistakes in, so I'm happy we made them and learned from them. By the end of the project we were operating much better together as a team.

Overall, while I found this project extremely frustrating, I feel we learned a lot and produced a fun, if simple, game in the end.

Monday, May 20, 2013

Plannit - Officially Accepted into Dare to be Digital 2013

Aaaaaand that's my coursework done, and a good relaxing weekend without work. Now back to blogging and everything else. Sorry for the hiatus, my wonderful readers!

Some of you might have missed the news that I tweeted last week: My team, Orbit Games, and our game Plannit, have officially been accepted into this year's Dare to be Digital competition!

What is Dare to be Digital?


Anyone in the UK gaming industry has probably heard of Dare to be Digital, but I know some of my readers are from overseas or outside the industry, so I'll summarize. Dare to be Digital is a huge, prestigious competition held over the summer at Abertay University. 12 teams from around the UK and 3 international teams, each of five students, compete head to head to develop a game over 9 weeks. Even getting in to the competition is difficult, and requires an application, pitch video, and interview. Teams are accepted based on the quality and feasibility of their game idea as well as the strength of their team.

During the competition, teams work together in an "office" at Abertay University. Teams are expected to work at least 9-5, every day of the week, so it's similar to a real games job. In return, we will receive free accommodation and a weekly stipend for living expenses. In addition, industry mentors are available to advise teams over the course of development. At the end of the competition, games are made available to the public during a hugely popular event called ProtoPlay, which is now three days long due to popular demand and overcrowding. This event is free and open to the public, but is also attended by all sorts of industry personnel.

At the end of ProtoPlay, three teams are chosen as winners based on the criteria of innovation and creativity, market potential, and use of technology. These winners are are then nominated for a BAFTA - basically a video game Oscar. They get to visit London for a massively fancy, televised award ceremony and rub shoulders with the likes of (using some of last year's guests as an example) Game Newel, the creators of Journey, and many other industry greats depending on who has been invited to the ceremonies that year.

What will Orbit Games be doing?


Orbit Games is creating a mobile Android game called Plannit, in which players take control of a team of astronauts and travel to unstable planets, drilling to their cores and draining out the dangerous lava inside them, thus saving settlements on the surface. The game involves two distinct control methods: Turning the mobile device to change the game's gravity; and platforming using touch controls. We originally conceived of the game as a multiplayer, cooperative experience on two handsets, with one player controlling the gravity and another controlling the platforming character. However, feedback during our interview caused us to consider the possibility of a single-player and competitive version of the concept where on player controls both gravity and platformer, and competes with friends for score. We are still open to both ideas and will be experimenting once we have a basic prototype.

You can see our pitch video below:


The competition starts on the 10th of June, but we'll be bringing you updates before that since we are allowed 40 hours to work on the game prior to the competition start date. The team is just fantastically excited about this opportunity, and thrilled to have something so awesome to work on over the summer. I'll still be progressing on some side projects as well, so stay tuned for more information about those in the coming days.

Thanks for reading!

Wednesday, May 1, 2013

Crunch Time!

I promised some cool blog posts this week. However, I've gone into panic mode for coursework, so I'm off the radar until it's done. Sorry :(

When I get back, expect to hear:


  • Post-Project reflection for Pollinator
  • Progress to date for Solar Sojourn
  • Discussion of my DirectX 11 font engine for Solar Sojourn (request via Twitter!)
  • How-To: Billboarding! (since it took me FOREVER to figure this out)
  • Post-project reflection for my PS2 fireworks game
  • Update on my dissertation progress (post proposal)
  • Post-project reflection for my Havok group project
  • Discussion of my Dare app results (interview next Thursday!)
  • Overview of what I'm playing these days (birthday presents Skyrim, Pokemon Conquest, Don't Starve, Sim City, and more! I'm spoiled.)
Sorry to go on hiatus like this, but it's needed. See you all in a few weeks!