Academic year 2015-16
Electronic Games
Degree: | Code: | Type: |
Bachelor's Degree in Computer Science | 21446 | Optional subject |
Bachelor's Degree in Telematics Engineering | 22620 | Optional subject |
Bachelor's Degree in Audiovisual Systems Engineering | 22684 | Optional subject |
ECTS credits: | 4 | Workload: | 100 hours | Trimester: | 3rd |
Department: | Dept. of Information and Communication Technologies |
Coordinator: | Javier Agenjo |
Teaching staff: | Javier Agenjo Asensio |
Language: | Castellano |
Timetable: | |
Building: | Communication campus - Poblenou |
We will work the technologic and creative process of developing a videogame. Students will have to code a 3D videogame in C++ from scratch, with special effort in performance and visual quality, applying software engineering methods.
Some of the most important points of the course:
The 3D Engine using OpenGL, load and parsing of resources, scene tree, collisions system, artificial intelligence, user interaction, audio playback, user interface, physics and particle systems.
At the end of the course the student will had developed a complete game in 3D.
During the development the student will learn coding technics for real-time applications, code optimization, dynamic memory management, design patterns, access to the hardware and advanced graphics technics using GPUs.
Besides learning how to code propper C++ applications without performance issues.
To know how to code in C++
Basic knowledge of Infography, Algebra and Trigonometry.
On the first class we will form groups with by two students.
Each week every group will code and integrate in their own projects the concepts explained at class.
Once every week the teacher will supervise every proyect separatly, to ensure an adequate progress.
There will be three deliverables along the course, every one of them with some specific blocks associated, for a better supervision of the progress. This deliverables wont affect the final grade unless they dont contain the minium requested.
Last day of the course students will showcase their projects in front of the class and deliver a small report.
The project will be evaluated according to the next criteria:
- Completness: the project contains every concept explained in class (50% of the grade).
- Integration: the elements coexist inside the system in the right way (30% of the grade).
- Quality: students took care of small details to ensure the quality of the final product (10%)
The course requires the development of a full videogame, the knowledge learnt are divided in the next blocks:
1. Introduction to game development
2. Access to graphics hardware and user input (OpenGL and SDL)
3. Load and parsing of meshes and textures
4. Scene graph (nodes and cameras)
5. Artificial Intelligence
6. Basic optimizations (culling, collisions)
7. Game's logic and controllers
8. User interface and audio
9. Particle systems and billboarding
10. Shaders and game polishing
In every theory session we will teach algorithms related to how to develop a game's engine, both from a conceptual point of view and technical point of view.
Students will have one week to implement this algorithms into their own personal project, checking that they integrated accordingly with the work already done.
SO this is a incremental and continuous process that forces the student to work not only the algorithm aspects but the software engineering aspects, due to the scope of the project.
During the seminars students will show the current state of their project to the teacher and this will supervise if the progress is adequate, to avoid situations where students get left behind incapable of following the rythm of the course.
Students will have two weeks after the last class to finish the proyect and give it their personal touch.
GameProgrammingGems 1, 2 i 3 de Mark DeLoura