General information


Subject type: Mandatory

Coordinator: Juan José Pons López

Trimester: Third term

Credits: 4

Teaching staff: 

Marco Antonio Rodríguez Fernández

Academic year: 2025

Teaching course: 1

Languages ​​of instruction


  • Catalan
  • Spanish

The subject's classes will be held mainly in Catalan, although the bibliography, documentation and supporting materials will mostly be in English.

 

Competencies / Learning Outcomes


Specific skills
  • E7. Develop video games in interpreted languages ​​to prototype gameplay, user experience and balance.

  • E9. Design and develop 2D animation short films.

General competencies
  • G2. Solve complex problems in their field of work, by applying their knowledge, developing arguments and procedures, and using creative and innovative ideas.

  • G3. Gather and interpret relevant data (usually within their area of ​​study) to make judgments that include reflection on relevant social, scientific, or ethical issues.

Transversal competences
  • T1. Communicate in a third language, preferably English, with an appropriate level of oral and written communication and in accordance with the needs of graduates.

  • T2. Work as a member of an interdisciplinary team either as an additional member or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments and taking into account available resources.

Presentation of the subject


The new designer profile needs to acquire notions of programming, math, and physics to adapt to these new video game development requirements.

At the beginning of the subject of Programming II, students are already able to solve certain problems with the use of control structures and to store information in variables and data containers (taught in Fundamentals of Programming), and they also have clear concepts of encapsulation, polymorphism, and messaging between different objects in the object-oriented paradigm (taught in Programming I). The vehicular language between the programming subjects has been C # and not to defocus to the students, it must continue being it in the other programming subjects of the first year.

Programming II is the students' first approach to programming applied to video games. While the goal of the degree is to train designers capable of programming mechanics and most likely to do so on video game engines such as Unity3D or Unreal Engine, the learning should focus on forging a foundation of solving design problems through algorithms rather than learning a specific tool or engine. For this reason, in this subject the students will work with a graphic library and build from scratch the necessary game structures and a simple game engine.

The classroom (physical or virtual) is a safe space, free of sexist, racist, homophobic, transphobic and discriminatory attitudes, either towards students or teachers. We trust that together we can create a safe space where we can make mistakes and learn without having to suffer the prejudices of others.

Contents


1. Advanced programming

1.1 Structured programming vs object orientation

1.2 Lambda functions

1.3 Generic functions

2. Graphic programming

2.1.Concepts

2.1.1 2D rendering 

2.1.2 Game loop: draw and update

2.2. SFML library

2.2.1. Inputs: active polling and event handling

2.2.2. sprites

2.2.3. Sound and text 

3. Basic programming with motor 

3.1. Engine-game-actor structure

3.2. actors

3.2.1. Movement: rotation, direction, speed and acceleration

3.2.2. Interpolations

3.3. HUD

4. Programming of tools and behaviors

4.1. Engine tools

4.1.1 Scene: actor management

4.1.2. Timers and Spawners

4.1.3. Tilemaps

4.1.4. Viewports and Views

4.1.5 Sources

4.2. Behaviors

4.2.1. collisions

4.2.2. Steering

4.2.3th FSM

Activities and evaluation system


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

A1. Exercises to do in class or at home: 14%

A2. Laboratory practice 1: 12%

A3. Laboratory practice 2: 12%

A4. Laboratory practice 3: 12%

A5. Final Exam: 50% 

Final grade = A1 0,14 + A2 0,12 + A3 0,12 + A4 0,12 + A5 0,5

Considerations:

  • It is necessary to obtain a grade equal to or higher than 5 in the final exam to be able to pass the subject.

  • An activity not delivered or delivered late counts as a 0.

  • It is the responsibility of the student to prevent plagiarism in all its forms. In the case of detecting plagiarism, regardless of its scope, in any activity it will correspond to having a grade of 0. In addition, the teacher will inform the head of studies of the situation so that applicable measures can be taken in the matter of sanctioning regime.

  • Attendance at laboratory practices is mandatory.
  • The resit exam only recovers the final exam grade. The student with an NP in the final exam will not be able to take the resit exam.

  • Given the fundamental nature of this subject, the student is required not only to provide solutions to certain problems, but also to be able to generate them autonomously, without any external help. For this reason, the use of generative artificial intelligences (IAG) to resolve the problems posed in the subject —whether in exercises, practices or tests— is counterproductive, is strictly prohibited and will be considered a case of plagiarism fraud. In this sense, the use of IAG to generate programming code is not allowed, not even in the form of fragments, even if this code is subsequently modified or customized.

Any form of academic fraud will be sanctioned in accordance with the center's assessment regulations. If signs of fraud are detected, including the improper use of generative artificial intelligence tools, the subject's teaching staff may call the student for an individual interview with the aim of verifying their authorship.

 

Bibliography


Basic

Moreira, A., Haller, J., & Hansson, HV (2013). SFML game development. Packt Publishing

Complementary

Buckland, M. (2005). Programming game AI by example. Jones & Bartlett Learning.