01/FEB/2015 Meeting activities

This is the list of activities prepared for the meeting. The meeting schedule is as follows:
 * 13:00 - 13:45: Meeting with Sandy Louchart and Hans-Wolfgang Loidl . They will be coming around to speak to us about what the department can do to better support the society.
 * 13:45 - 14:15: Discussion about gamedev . Discussion on the topic set for this week.
 * 14:15 - 15:15: Activity no.1 . Everyone chooses a subject area which interests them, teams up with everyone else and follows the activity coordinated by the activity moderator.
 * 15:15 - 16:15: Activity no.2 . Everyone chooses a subject area which interests them, teams up with everyone else and follows the activity coordinated by the activity moderator. This can be in a different area than the previous activity.

Discussion about gamedev
Think about the way you play games. In a bad game, you often find yourself not being engaged. The game designer wants you to progress through the game the way it's intended. However, if a game is not engaging, you can easily find yourself not caring and start goofing around. Think about why you play the game the way it's intended. And think about how the designer can enforce this. Use your favourite games and game moments as examples.

One example of a memorable moment that can be clearly analysed:

http://i.ytimg.com/vi/mdjLBYxAcUI/maxresdefault.jpg

Metal Gear Solid 4, going through the "microwave" room. All that the player needs to do is move forwards. If the player does not do this, the game completely breaks immersion. Therefore, the game designer really wants the player to move. A sense of urgency is created by dramatic music and dialogue firstly. However, and more imporantly, the screen is split into two panels, the second one showing all of your friends losing their battles. Since the player becomes attached to the characters throughout the game, seeing them overwhelmed gives a strong emotional response, an urgency to advance and help them. While going throughout the room, the player character, who is old and tired, experiences continuous pain and starts moving slower and slower, eventually ending up crawling with what little strength he has. Because of the attachment to the character, the player does not want to see him suffer, and therefore tries to advance as quickly as they can.

Learn Unity (Moderator: looking for volunteer)
Most of the activites assume you already know Unity. If you don't, you can start learning by making your first game: http://catlikecoding.com/unity/tutorials/runner/

If you don't have any experience with these types of software, and you are confused about what's going on and what you're doing, here are a few tutorials that go over the interface and basic concepts:
 * http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/editor-basics - video tutorial going through the interface and basic concepts in depth


 * http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/gameobjects - video tutorial explaining what GameObjects are in a bit more depth


 * http://docs.unity3d.com/Manual/LearningtheInterface.html - documentation describing the interface

Reading
Read this article: http://www.gamasutra.com/view/feature/131736/beginning_level_design_part_1.php

Practice
Download the SuperJetroid2D demo project and open it in Unity. Play the scene titled "Level 1". The goal is to get the artifact hidden in the room and then escape through the exit. Use the arrow keys to control the character. The character also has a limited air supply. When it runs out, the player dies. You can fine tune how much air the player has within the "Meter" gameobject.

Check out how the different types of enemies work. Coins don't do anything in the game at the moment.

Designing levels in Unity
To start designing your own levels, you can duplicate the scene titled "Level1" and call it "Level2" or something similar. Then you can delete most of the components there. Fundamentally, you need to arrange the level space by duplicating sprites inside the Background gameobject. You can move them in alignment while holding the "ctrl" key. All of your level should be covered in background tiles. Now start laying out Foreground tiles to shape your level into corridors. Foreground tiles are the ones that the player can't go through. Fundamentally, make sure you have an Exit, a Meter, a Player and an Artifact. You need to link the Artifact to the Exit. If you use switches, you need to link them to doors. Lay out some traps and some enemies throughout the level. That's it, you're now designing your own level!

Designing levels on paper
When you get to grips with the mechanics/game components available to you, you can simply sketch out the level as well, if you don't feel like implementing it in Unity.

Activities:

 * 1) Design an introductory level that is supposed to teach the player the basic mechanics
 * 2) Design a difficult level that tests the player's timing

Learn Art/Animation (Moderator: looking for volunteer)
If you want to, try and find some good drawing tutorials. Share them with everyone else as well.

The fundamental thing about doing art, is that you have to be sketching a lot to become good at it.

One thing to understand about character design, is that they are essentially made up of components resembling beans.

You can use this for reference: http://profspevack.com/archive/animation/tech_support/images/character_dev/character_shapes.jpg

Characters' proportions are usually defined by their head count: http://www.zebtoonz.com/index_htm_files/527.jpg The more "heads tall" the character is, the more of an adult they are.

If you are struggling with facial expressions and eyes, here are a few references for you to use:

https://andrewduffycca.files.wordpress.com/2010/01/50_facial_expressions_and_how_to_draw_them-20071207-075359.jpg or just google "character expressions" and you'll get plenty of other references.

http://3.bp.blogspot.com/-Rz3TgIIBsDg/Tphml7Fty8I/AAAAAAAAAVo/P1nvGry8wkg/s640/Manga+Eyes+%25281%2529.jpg or just google "character eyes" and you'll get plenty of other references. You can do the same thing for character mouths and such.

Always draw guidelines as to where the eyes should be, as well as the middle of the face, as such: http://curkovicartunits.pbworks.com/f/character%20angles.jpg

Don't try to draw your character in one go. Rather, sketch the body shape, then sketch the arms, etc. Once you are happy with the overall shape and body proportions, start adding a little bit of detail to it and refine it. Try to add some features that make the character more unique, make him stand out and suggest something about his personality.

Once you are happy with your rough sketch, it's time to bring it into the computer. Take a picture of it, or, ideally, scan it in. Open it up in a program such as Inkscape and create a new layer on top. Now use the path tool to draw the contours of your character. If you will want to animate it later, you want to "ink" in different body parts on different layers.

Learning Inkscape
If you have never used a vector graphics package such as Inkscape, you can learn the basic user interface here: https://inkscape.org/en/learn/tutorials/

Most important for this part of your character is the tutorial on Paths: https://inkscape.org/doc/advanced/tutorial-advanced.html but I do recommend going through all of them.

Activities

 * 1) Sketch a moody, confidence-lacking knight. Digitize your drawing if you have time.
 * 2) Sketch a mysterious, cunning detective. Digitize your drawing if you have time.

Reading
Supplementary article to read: http://www.gamasutra.com/view/feature/4091/anatomy_of_a_game_mechanic.php?print=1

Pen & Paper
Discuss and think about how you would implement the mechanic. Draw diagrams on pen and paper.

Putting it to practice
You can use the SuperJetroid demo as an area to work in for this (see Level Design section for a description of SuperJetroid). If you don't feel like coding, team up with other people and work on a single computer.

Activities

 * 1) Combining items. In this mechanic, the player can select two (or more) items and combine them to create a new item out of the two. It is up to you how you implement it. You can take references from Minecraft, Terraria, Dead Rising or any other game you fancy.
 * 2) Displaying dialogues. In this mechanic, some dialogue is displayed on the screen when the player triggers some sort of event. This is almost fundamental to any game that will tell a story, so it is a useful one to know. The dialogue might be stopping the action or not. One example would be the Final Fantasy type of dialogue:https://lh5.ggpht.com/K_dRFbI4YIeDUg4oEi-qMwpKW9y8fVKJ_DgiAvjKTcDXvJcBPljL_Rc1oPYUQ0YEaQ=h900and another would be Bastion, where the player can advance even while the dialogue is running http://i.ytimg.com/vi/b5sLkWZpMg4/maxresdefault.jpg. You can also think about whether the dialogue should be skippable or not, include a picture thumbnail of the speaker, etc. Think about how you should store the dialogue written in advance, potentially in an external file? Google around and see what you find.

Learn C# (Moderator: looking for volunteer)
If you know Java, then just start programming in C# and watch compiler errors to adjust your syntax (if needed). C# is more or less identical to Java, so you shouldn't struggle too much.

If you don't know Java/any programming language, you might want to go through this course on Lynda.com: http://www.lynda.com/Visual-Studio-2010-tutorials/C-Essential-Training/83789-2.html