Showing posts with label dissertation. Show all posts
Showing posts with label dissertation. Show all posts

Sunday, January 19, 2014

Dissertation Complete - So Long, Uni!

At long last, after NINE YEARS of university (over half for a degree I'm not using), I am finally done! Friday, I submitted my dissertation. Assuming marking goes well, I am now a "Master" of Computer Game Technology. Now to move on to bigger and better things!

I may have been a little excited when it came back from the printer....

What does that mean for me, and for the blog? Well, firstly, I'll now be working full time at Ninja Kiwi Europe, maker of the mobile versions of the extremely popular Bloons games. I've been part time there since September, and it's an awesome place. I'm happy to be able to work there full time now.

However, that doesn't mean I'm abandoning my personal projects. In fact, I'm starting off my new professional life with a bang at the Global Game Jam, with an awesome team of Abertay students and recent grads. Most of us worked together at the TIGA Game Hack, and we're excited to work together again. It should be a ton of fun, and I'll definitely be updating here and on my Twitter (@Jiyambi) as we go.

After the game jam, I'll be focusing on making games with my partner Roy Stevens. Our first project is a mobile game called Bubble Market, made as part of the Abertay Game Development Society. Bubble Market will be programmed in February, with an alpha ready by the end of March and beta at the end of April. I'll be calling for testers during those times, so keep an eye out. Expect to see it on Google Play and possibly other Android app stores in May!

Also in February we will be pitching six game ideas internally. The chosen idea will be moved into pre-production, and work will begin on it as Bubble Market is completed. For this game, we are hoping to find an artist or two to help us out, but Roy is also taking some time to focus on his artwork so either way, we should have a nice set of skills for development.

As for the blog, I will continue using this as a space for development updates and reflections. I also plan to write a few how-to posts. The first of these will be posted shortly, and will cover using Github for Windows (the desktop program) with Bitbucket (the git repository). This has been requested by some of the Abertay Game Development Society folks and I think it could be a big help to student game development teams.

When I look back at when I started this blog, compared to where I am today, I see an amazing journey. It's invigorating to see the progress I've made, and so much more exciting to think about where I'll go from here. Look forward to it!

Tuesday, December 10, 2013

Tenebrous - Open For Testing


The time has come! As I mentioned previously, I need people to play the game I created for my dissertation, Tenebrous, in order to gather data for said dissertation. If you'd like to help out, please read the following instructions carefully, and you have my sincerest thanks!

NOTE: Unfortunately, the game is currently only available on Windows.

UPDATE: People have been asking about the deadline. I have a demo Thursday 19th of December, so I would like to receive some responses before then so I can show off some results, but anytime before 31st December would be grand.

How To Help

  1. Download the game from https://drive.google.com/file/d/0B7n0P-XMWZ_Yd1Y5Z0ZDdUdSM2c (~50 MB). Unzip the folder. Keep track of where you put this folder, you will launch the game from here and this is where you will find the logs you need to send me.
  2. Read the How To Play section below before playing - there is no in-game tutorial or even a list of controls. Rough prototypes for the win!
  3. Play through the game as much as you like.
  4. Create a zip file of all your logs, located in the logs folder (in the folder you downloaded above). Send this zip file with your logs to sarah.ann.herzog@gmail.com.
  5. Go to https://docs.google.com/forms/d/1QEBzITmxkK-TjlmRfrK5cCYGDZ8D5v6EZdsrCQYYxAo/viewform to take a very short survey about your experience with the game. Remember to input your name when requested if you would like to be included in the Tenebrous credits when it is released.
  6. Feel proud that you contributed to research for the good of games!

IMPORTANT: I need TWO THINGS from you:

  1. Email me your logs from the logs folder inside the game folder after you play
  2. Complete the online survey (results are sent automatically). 

Please don't forget either of those!

How To Play

Goal of the Game: You are lost and alone in a hostile, darkness-covered forest. You must reach the safety of a nearby holy house (follow the purple arrow!) before your magical light runs out. Be careful, as the creatures of the darkness are attracted to light and will drain yours if they touch you! Luckily, you are a holy warrior and have a few tricks up your sleeve, but don't be foolhardy: These monsters cannot be defeated by the likes of you, only delayed and avoided.

Controls:
  • Movement - WASD / Arrow Keys.
  • Sneak - H. Use this to dim your light, preventing enemies from noticing you.
  • Boost - J. Use some of your light to continuously boost your speed. Great for escaping enemies.
  • Distract - K. Drop a gem filled with some of your light behind you. Enemies will target it instead of you, allowing you to escape. You can also pick it back up if you need to, but it will lose light over time so you won't get 100% of your light back.
  • Flare - L. Hold in this button to charge up and release a bright flare, stunning nearby enemies but using a large chunk of your light.
Terrain:

 There are four types of terrain:

  • Clear land. This is denoted by a neutral gray colour and has no effect on movement or light.
  • Forest. This is black, and cannot be moved through.
  • Swamp. This is light blue, and slows the player.
  • Miasma. This is purple, and drains your light.


Enemies:

Pulsar - A simple enemy which stays in once place and sends out a pulse of darkness, pulling in creatures of light and damaging them.


Bomb - This enemy is slow moving, but can be deadly if it should catch you. It will explode when in bright light, leaving a patch of miasma that will damage anything inside it.


Hopper - A dangerous foe who moves in quick hops, but must take time to change direction and can be outmanoeuvred.

Power-Ups:


Light Gem - A helpful gem filled with holy power, boosting your magical light. Will attract monsters.

Thank You For Participating!

If you have any questions, feel free to contact me at sarah.ann.herzog@gmail.com. I really appreciate your help, I wouldn't be able to complete my dissertation without you!

Update: What Am I Logging?

I realized I should let you all know what information I am logging:
  • Game time
  • Game inputs (movement and abilities)
  • Picking up light gems
  • Being injured by enemies
  • Player's light value over time
  • Player's position relative to the start and to the objective over time
  • Active enemies and enemies targeting the player
  • Active light gems

Wednesday, December 4, 2013

Tenebrous - Calling All Gamers!


As you may know, I'm currently working on a game for my dissertation. This post will tell you a bit about the game, what I hope to learn from it, and how you can help!

Game Overview


The game is called Tenebrous, and is a top-down action/horror game in which you must reach a safe haven before running out of magical light. The darkness itself is your enemy - your light drains naturally over time, and is drained much more quickly if you come into contact with monsters or miasma, a purple substance created by said monsters. To aid you in your quest, you have four light-based powers:

  • Sneak - dim your light and move slowly to sneak past monsters (they only target you if they are within your light range). Be cautious - moving more slowly means your light is drained more to get the same distance!
  • Boost - expel some of your light behind you to move forward at a brisk pace.
  • Flare - charge up and then release a brilliant flare, stunning nearby enemies and revealing the surrounding terrain briefly. Uses a large amount of light to activate.
  • Distract - drop a gem filled with your light. Enemies will prioritise this gem and ignore you while it is there. However, it will slowly lose the light that was given to it, eventually disappearing. The good news is, you can pick it back up to regain some of you light if you are quick!
Armed with these abilities, you must navigate a twisting, procedurally generated forest filled with swampy ground that slows you and malevolent miasma which drains your light as you pass through. You will be attacked by three different types of monster: The pulsar, a stationary creature which sends out a pulse and pulls you in towards it, dealing damage to you as you touch it; The bomb, moving slowly towards you and exploding as it gets close; and the hopper, a fast moving creature that must stop to re-orient itself before continuing pursuit.

Research Goal


What is the point of all this? Why is it worthy of a dissertation? The project and research subject was inspired by Left for Dead and Warframe - both games with procedurally generated gameplay experiences, in which enemies are spawned in based on the current intensity of gameplay. This is a very interesting idea because it means that player experiences can be crafted to match the quality of pacing achieved in hand-scripted levels, but in endless, procedural levels. 

Rather than attempting to recreate exactly what Valve and Digital Extremes had already done in Left for Dead and Warframe, I decided to view this concept through the lens of my previous career in engineering. The intensity the player experiences via the game's pacing can be thought of as an output from a controller, and the input is the threats the game creates for the player to interact with. The controller's job is to judge what quantity of threat to provide to achieve a target intensity.

To that end, I have created a PID (proportional integral differential) controller which keeps track of the intensity the player is experiencing (based on their actions, movements, damage taken, enemies targeting them, etc), the target intensity (this would be controlled and tuned by a designer, a very simple model has been chosen for this project), and from these generates a target threat output and spawns enemies to meet that threat output.

TLDR: The project spawns enemies based on the amount of action the player is experiencing, with the goal of making a well-paced game procedurally.

How You Can Help


In order to measure how well this project succeeded, I need people to play the game and send me their logs! There will also be a short survey once you complete the game. The gameplay is not designed for long play - I expect there to be roughly 5 minutes of gameplay followed by 5 minutes of survey. Combined with downloading the game and uploading your log, I expect it should only take around 15 minutes of your time total. I'd really appreciate the help, and when the game is released, you can have your name in the credits!

If you are interested in testing, please send me an email at sarah.ann.herzog@gmail.com. I'll be contacting everyone on my list on Monday 9th of October with details on how to download the game and how to send me your logs.

Thank you so much for your help!

Monday, March 25, 2013

Dissertation - A New Idea

Previously, I posted here that I was interested in continuing my AI project from last semester as my dissertation for my master's degree. I am still considering this, but today I read an article that really sparked my imagination and interest.

The article covers a talk given today at GDC 2013. You can read it here on Develop. The main point of the talk was that Warframe developer Digital Extremes used AI strategic mapping (Tac and Influence maps) to determine enemy spawn frequency and locations in procedurally generated levels. This seems like an area with lots of interesting possibilities, and would go very nicely with my procedurally generated level backgrounds in my Solar Sojourn project.

I'll be talking to some of my advisers tomorrow about this idea, as well as my previous idea for a fuzzy logic controller plugin generator. I'll definitely share more information as soon as I make a decision!

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.