General information


Subject type: Mandatory

Coordinator: Juan José Pons López

Trimester: Second term

Credits: 4

Teaching staff: 

Ramon Santamaria Pena

Academic year: 2025

Teaching course: 2

Languages ​​of instruction


  • Catalan
  • Spanish

The materials can be provided in Catalan as well as in Spanish or English. 

Competencies / Learning Outcomes


Specific skills
  • V6. Develop video games in high-level programming languages ​​in graphics engines based on specifications.

Presentation of the subject


The course introduces students to 2D game programming. The main tool used is Unity, although the course focuses more on the key concepts of game development than on the specific tool used to implement the exercises and practices.

Through the development of 4 group projects, the main concepts are theoretically introduced with examples and exercises in class. Once explained, students dedicate themselves to applying these concepts in their projects, with the support of the teacher during the sessions.

Games must be delivered on time and in the appropriate format.

The exam consists of practically implementing the concepts worked on in class.

Contents


Introduction to the subject: 2D Games

Introduction to Programming Patterns

  • Sequencing Patterns: Game Loop
  • Sequencing Patterns: Update Method

Project 01: 2D Platform Game

  • Player Movement: Input System
  • Design Patterns: Singleton
  • Design Patterns: Observer
  • Player Physics: Jump
    • Horizontal Movement
    • Vertical Movement
    • Personalized Physicals
  • Optimization Patterns: Object Pooling

Project 02: Top-down Infiltration Game

  • Enemy Logic (AI)
  • Design Patterns: State (FSM) - State Machine
  • Player Detection: Distance, Field of View, Obstacles
  • Enemy Movement: Patrol (Waypoints)
  • Design Patterns: Command - Undo / Redo

Project 03: Item Shop Game

  • Introduction to UI and Menu Systems
  • Techniques with Unity: Scriptable Objects
  • Inventory System Implementation
  • Localization and Internationalization (I18N)

Project 04: 2D Procedural Maze Game

  • Introduction to Procedural Generation
  • Procedural Algorithms in General Labyrinths
  • Maze generation from 2D image
  • Collision Detection and Resolution

Activities and evaluation system


The grade of each student will be calculated following the following percentages:

A1. Practical Video Game Project: 2D Platforms (12.5% final grade)

A2. Practical Video Game Project: Top-down infiltration game (12.5% final grade)

A3. Practical Video Game Project: Item Shop (12.5% final grade)

A4. Practical Video Game Project: 2D Procedural Maze (12.5% final grade)

A5. Final test (50% final mark)

Considerations:

  • Assessment: A minimum grade of 5 must be obtained in the final exam to pass the subject. If the student does not achieve this minimum grade, they will not be able to pass the subject even if the average of the practical activities is sufficient.
  • Assessment: You must obtain a grade higher than a 5 a in the average of the practices to approve the asignatura.
  • Assessment: The maximum grade that can be obtained in the extraordinary call will be 5.
  • Recovery: Only students who have participated in the final exam and have not obtained the minimum grade can opt for retake. The grade of the retake exam replaces only the grade of the ordinary exam. This grade must be higher than 5.
  • Submission of work: Any activity submitted late or not submitted without justification (court summons or medical matter) will be graded with a 0. 
  • Health: Attendance at practical or laboratory classes is mandatory, as they are essential for the correct follow-up of the subject. Failure to attend, without adequate medical or legal justification, will result in the non-evaluation of the corresponding practical activities, which may affect the final grade.
  • Plagiarism: The identification of plagiarism in any activity is considered a serious offense and may result in a failing grade. In the event that plagiarism is detected, the degree coordination will be notified so that the corresponding measures can be taken.
  • Use of Artificial Intelligence:
    • The use of generative artificial intelligences (IAGs) must be limited to those aspects that are not fundamental in the context of the subject. They can be used, critically, as a mechanism to resolve doubts about the subject and/or to improve the writing of deliverable documents and/or as an aid in the generation of auxiliary code that is outside the scope of the subject topics. In the second case (improvement of the writing) the participation of IAG in the writing must be made explicit in the document. In the last case (code generation) it will be essential to mention its nature as “generated by IAG” by explaining the model used and the prompt supplied, even if it has been subsequently personalized and/or modified.
    • IAGs may not be used to generate programming code, not even in the form of fragments, when this code is within the scope of the subject topics and/or has an assessable nature. This prohibition remains even if the code is subsequently personalized and/or modified. In the event of doubts regarding the legitimacy or not of the use of IAGs, it is necessary to contact, a priori, the teaching staff of the subject.

Bibliography


Basic

Web tutorial for games creation tools with the Unity engine (http://unity3d.com/es/learn)

http://gameprogrammingpatterns.com/

Complementary

Gamma, E., Helm, R., Johnson, R. and Vlissides, J.

Design patterns: Elements of reusable object-oriented software

1995 - Addison-Wesley - Reading, Mass.

https://unity3d.college/