SPI1004 Game programming

    • Course code
      SPI1004
    • Number of credits
      15
    • Teaching semester
      2027 Spring
    • Language of instruction and examination
      English
    • Campus
      Hamar
    • Required prerequisite knowledge

      SPI1002 Introduction to Game, SPI1003 Fundamental Game Design for programmers

Course content
  • Pointers (smart and shared pointers), memory allocation and control
  • Delegates, interfaces, templates
  • Engine colliders, timers, conditions, controls
  • Version control, asset import

Learning outcome

Upon passing the course, students have achieved the following learning outcomes:

Knowledge

The student

  • understand core principles of engine programming, including colliders, timers, and conditional systems
  • can demonstrate understanding of memory management concepts, including static/dynamic memory and smart pointers (unique, shared)
  • Can integrate assets into a project and make use of version control tools
Skills

The student

  • can apply smart pointers and memory management strategies to ensure safe and efficient resource handling
  • can implement delegates, interfaces, and templates to create modular and extensible engine code
  • can design and integrate basic engine systems such as colliders for physics detection, timers for scheduling, and condition checks for logic flow
  • can use version control tools for branching, merging, and collaborative workflows
  • can import, organize, and manage game assets within an engine environment
General competence

The student

  • can work independently and collaboratively on engine development tasks using professional coding and collaboration practices
  • can critically evaluate coding approaches in terms of efficiency, maintainability, and scalability
  • can communicate technical solutions clearly, both orally and in writing, to peers and non-specialists
Working and teaching methods

The students work both individual and in groups to solve given assignments.  Teaching is mostly done through pre-recorded videos or presented reading material. Learning is done primarily through learning activities in class, individual or in groups.

Each topic is introduced with study materials such as texts, pre-recorded video-lectures and online tutorials and minor assignments to be completed through self-study either individually or in groups prior to class. In class, there are student learning activities in the form of individual and group-based assignments, as well as group discussions, critique, pitches, and workshops.

Supervision will be conducted both at an individual level and in groups or project teams. This is to ensure that each student has the specific teaching resources and guidance needed in the collaborative projects and productions where “problem-based-learning” is used.

Compulsory activities
  • 1 individual assignment
  • 1 group assignment
  • Attendance in all organised activities
Examination
Form of assessmentGrading scaleGroupingDuration of assessmentSupport materialsProportionComments
Portfolio examination
ECTS - A-F
Form of assessment

For group assignments and exams, all participants in the group are collectively responsible for all content in the assignment / product / presentation.

Faculty
Faculty for Film, TV and Games
Department
Department of Game Development - The Game School
Area of study
Matematisk-naturvitenskapelige fag/informatikk
Programme of study
Bachelor in Game Technology
Course level
Foundation courses, level I (100-LN)