3D Games Programming 390-FG1-2PGR3D
Profile of studies general academic
Form of studies: full-time
Type of subject: compulsory, module 4 Practical and specialist education
Field and discipline of science: Field of science and natural sciences, Discipline of physics
Year of study/semester: 2nd year, 1st semester, 1st cycle studies
Prerequisites: completion of the following courses is required: Operating Systems, Object-Oriented Programming, 3D Modeling
Number of teaching hours: laboratories 45 hours
Teaching methods: laboratory work, discussion, consultations, student's own work at home
ECTS points: 3.00
Student workload balance: participation in laboratories: 1.8 ECTS, own work at home: 1.2 ECTS
Quantitative indicators: student workload related to classes requiring direct teacher participation: 1.8 ECTS, student workload related to practical classes: 1.8 ECTS
CLASS TOPICS
1. The GODOT environment in three spatial dimensions - based on a 3D project. Editor: Project, Hierarchy, Inspector, Scene panels. Window layouts in the environment - custom and predefined. Moving around the scene (perspective view, orthogonal view, views from different sides - using the scene helper. Coordinate system - local and global. Basic scene objects, modifications (translation, rotation, scaling), nested objects (parent-child relationship, breaking relationships). Changing object and prefabricated object properties. Transform object - parameters and methods. Adding a physics engine to objects - Rigidbody object. Overview of object parameters. Programming character movement on the scene - keyboard support, first scripts. Adding object collision detection objects - Box Collider, Capsule Collider, etc. Interaction of character collisions with scene elements. Object detection by Raycast. Auxiliary raycasting visualization in GODOT (enabling gizmos for the Scene).
3) Creating an object to manage the entire project. Creating a user interface. Game level completion board. Adding graphics and buttons to the player's screen - handling button press events. Welcome and end screens. Scaling the interface to the screen proportions. Sound effects in GODOT - 2D and 3D music. Free portals with ready-made sound effects. Music parameters. Particle system and creation of visual effects - fire, smoke, fireball. Creating enemy artificial intelligence - moving around the scene, avoiding obstacles.
4) 3D game design - FPS/TPS. Moving the character with the mouse and WSAD keys. 3D object animations in GODOT. Creating a board from the GODOT editor. Loading models from Blender (including animations). Using MixAmo to animate characters and integrate with the GODOT environment.
5) Terrain creation - terrain parameters (map size, height). Sculpting the height map - tools offered by GODOT. Terrain texturing - creating a world with high mountains, hills, valleys, and plains - texturing using freely available graphics repositories.
6) Programming enemy artificial intelligence - patrol, look around, and attack modes. Enemy detection of the player. Shooting at objects in FPS and TPS modes. Determining the position of the mouse on the screen and in the virtual game. Shooting fireballs by the hero and enemies. Adding random effects from the particle system.
Type of course
Mode
Requirements
Prerequisites (description)
Course coordinators
Assessment criteria
Students work during classes and earn points - 10 points for class participation (negative points are also possible), but not every activity is scored (the instructor determines the scope of scored tasks). Students can increase their score by independently expanding on class projects at home according to the instructor's instructions (additional 10 points). At the end of the class, a final project must be presented (20 points). The project can be done individually or in a group of two or three (the size of the group is determined by the instructor depending on the number of students in the year). Students with three or more absences will not receive a credit.
Students have the right to use AI (artificial intelligence) systems in their homework, but only as an aid in solving a given task and not as a complete solution to a given problem. Fragments of program code should be supplemented with information that they are generated with the help of AI (e.g., in a comment).
The pass is obtained on the basis of percentages. Grading table:
0.00%.. 50.00% fail
... 60.00% satisfactionary
... 70.00% satisfactionary+
... 80.00% good
... 90.00% very good
... 100.00% excellent
Bibliography
[1] Godot Engine Game Development in 24 Hours, Sams Teach Yourself, Ariel Manzur, George Marques
[2] Godot Engine Game Development Projects: Build five cross-platform 2D and 3D games with Godot 3.0, Chris Bradfield, Packt Publishing Ltd, June 29, 2018
[3] https://docs.godotengine.org/en/3.1/ -- official website for documentation and tutorials
[4] http://kidscancode.org/blog/2017/06/godot_101_13/ Chris Bradfield's website, text version and YouTube videos
[5] https://www.youtube.com/watch?v=6G3NP5O9VsQ YouTube videos on UI creation
Supplementary:
[1] Unity in Action / Joseph Hocking; Helion Publishing
[2] Unity and C#: the basics of game programming / Ewa Ross, Jacek Ross, Helion publishing house
[3] Unity: a game designer's guide: 24 hours to your own game! / Mike Geig, Helion publishing house
[4] Practical game development with Unity and Blender / Alan Thorn, Helion publishing house
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: