Εισαγωγή
Το μάθημα ακολουθεί μια πρακτική και εξελικτική προσέγγιση, ξεκινώντας από βασικές αρχές της μηχανής Unity, της γλώσσας C#, και του σχεδιασμού παιχνιδιών μέσω Game Design Documents. Οι μαθητές θα δουλέψουν σε πραγματικά projects, υλοποιώντας μηχανισμούς όπως collision, score systems, AI, physics, και δημιουργία εχθρών, ενώ θα εξοικειωθούν με εργαλεία όπως το Blender για μοντελοποίηση 3D αντικειμένων και το GitHub για version control. Στόχος είναι κάθε μαθητής να δημιουργήσει το δικό του πλήρως λειτουργικό παιχνίδι, έτοιμο για εξαγωγή σε υπολογιστή ή κινητή συσκευή, αποκτώντας τόσο τεχνικές όσο και δημιουργικές δεξιότητες. Κατά την διάρκεια του προγράμματος, θα χρησιμοποιήσουμε διάφορα εργαλεία τεχνητής νοημοσύνης (ΑΙ), τα οποία θα μας βοηθήσουν στην εξοικείωση των πιο σύγχρονων τεχνολογιών.
Πρόγραμμα μαθήματος
1Lesson 1. C# Revision
The first classes will be devoted to revision of the material. After a longer break, it is worth recalling the basics, which were reworked during the previous semesters.
2Lesson 2. Intruduction to Unity3D. UFO Game part I
During the second lesson the Unity 3D engine will be used. Students will get acquainted with the interface of the program, learn the basic elements of which the game consists. They will start a simple project of a UFO game where they will write a script, thanks to which they will move the spaceship around the board.
3Lesson 3. Intruduction to Unity3D. UFO Game part II
The third class will be a continuation of the previous ones. They will apply new elements related to 2D physics, so that the ship will not run away from the board but will also be able to earn points and display them.
4Lesson 4. Starting Infinite Runner Implementation part I
Time for the project for the rest of the semester. This lesson will be devoted to Game Design Document to show how important it is to design games accurately at the very beginning.
5Lesson 5. Starting Infinite Runner Implementation part II.
During the next classes, time will be devoted to preparing a prototype of the game. Pupils will put their first materials on the game objects. They will also create a script that will allow the character to jump in the air and make the so-called double jump.
6Lesson 6. Scrolling the world, counting the score.
It's time to prepare the level for moving on or actually moving it. The script written during these classes will allow for a little cheating. It's the world that will move towards the player creating the illusion that it's him or her who is running on it. We will also start counting our points.
7Lesson 7. Obstacles, randomly generated world blocks
What is this game where you do nothing but run? We'll add obstacles that we'll have to avoid and the ability to control the difficulty level. The game can't be boring after all.
8Lesson 8. Ending and restarting the game
In the game, it happens that something goes wrong. That's why during these classes, students learn how to reload scenes to restart the level in case of a something goes wrong.
9Lesson 9. Player animation and world graphics
We give character to the project. These classes will be devoted to the appearance of levels, heroes or traps. Graphics and animations prepared beforehand will be added to implement them.
10Lesson 10. Coin, platformy i najlepszy wynik
Pieniądze rządzą światem. Dodane zostaną więc do gry by móc zdobywać kasę oraz dodamy zapis najlepszego wyniku, by wraz z kolejnymi próbami starać się pobić swój rekord. Dodamy też platformy, by gra nie działa się tylko na jednym poziomie.
11Lesson 11. Immortality and magnet
PowerUP... Today immortality will be programmed. At least temporary. We will prepare the collectibles, obtaining them during the game will have additional effects for our hero.
12Lesson 12. Advanced UI and game menu
Let us finally build a decent world. Or at least let it build itself. With the help of a few prepared prefabs our charts will be generated randomly. Thanks to that each game will be unique.
13Lesson 13. Upgrade store
We will be working on the interface and menus for the last time. Somehow the game has to start, from somewhere we need to know how many points we have. We will also add music that will accompany us in the game.
14Lesson 14. Game sound, building the game, Unity Ads
It's time for the final touches. Correction of bugs, defects and a cherry on the cake. Export to computer and Android. The most important issues will be discussed and finally we export to boast our game to others.
15Lesson 15. Space Invaders
In this class, we will prepare a Space Invaders game, or rather its basic version where we
have to protect ourselves against the arrival of the alien fleet.
16Lesson 16. Space Invaders. Continuation
We are expanding our project with an additional enemy and shields.
17Lesson 17. Pacman
In the next two lessons, we will create the classic retro game Pacman. The first
lesson will focus on creating the basics of Pacman's movement, eating dots and
winning.
18Lesson 18. Pacman. Continuation
In today's lesson we will finish the Pacman project that we started in the previous
lesson. Today's lesson will focus on creating the AI and restarting the game.
19Lesson 19. Game Design and Version Control
In the first lesson we will establish the gameplay and mechanics of the game. We will go
over differences between 2D and 3D games. We will also prepare the Game Design
Document. The students will learn what version control is using GitHub and Plastic SCM.
20Lesson 20. Player Controller
Today, the students will create a player controller using an internal Unity
CharacterController component. They will also make a camera script through which they
will be able to see the game world.
21Lesson 21. Terrains, GameManager, Tiem and Pause
The students will prepare a couple special mechanics. They will program a counter which
will count how much time is left to find the finish. They will also create a mechanic for
pausing the game and ending it so winning or losing.
22Lesson 22. Pickups
Today we will create pickups which are objects which apply certain effects to the player
after they pick them up.
23Lesson 23. Portal part I
In this class we will create a portal which will allow the player to quickly move between
different parts of the labyrinth.
24Lesson 24. Portal part II
The next classes will be a continuation of the portals. We will create scripts that will allow a smooth transition between the portals, and we will also create several security features to make the portal work properly.
25Lesson 25. Basics of 3D Graphics
Time for 3D graphics! Literally. In this class, the students will learn the basics of Blender
3D. They will also get to know what 3D models consist of. They will prepare the first model
for our game.
26Lesson 26. Creating Pickups and Exporting Them to Unity part 1
This topic is also spread over two lessons. In the first lesson, the students, using the
basics from previous classes and the teacher's help, will create their own pickup versions.
27Lesson 27. Creating Pickups and Exporting Them to Unity part 2
In this lesson, students will export them to .FBX files and upload them to Unity, as well
as create scripts for them.
28Lesson 28. Animation Basics and Riddle
Now that we have pickups, we can add animations. Students will set their models in
motion. They will also create a trap mechanism as well as a door opening mechanism with
a key.
29Lesson 29. Labyrinth Creation and Level Design part I
In class, students will create a generator that will generate various labyrinths based on
prefabs and images. The students will prepare their own levels and add their own
elements to them.
30Lesson 30. Labyrinth Creation and Level Design part II
The students will prepare their own levels and add their own
elements to them.
31Lesson 31. Materials, Post-processing, Music, and Sounds
We can make our finished level even more attractive. This class will be devoted to
materials to add color to the objects. Then, post-processes will be discussed, thanks to
which students will be able to completely change the so-called flow of the game. Finally,
music and sounds will be introduced.
32Lesson 32. UI and Finishing Touches
The last lesson will be devoted to the game interface. Two-dimensional graphics will be
introduced to inform the player about the time remaining, whether they are under the
influence of a pickup or whether they finally reached the finish line. A simple Main Menu
will also be created. And finally, we will export our game to be able to show off to friends.
33Lesson 33. Arkanoid
We will prepare the basics of the Arkanoid game. We will program the arena, the movement of the footbridge and the movement of the ball. We will also prepare the first bricks for breaking.
34Lesson 34. Arkanoid. Continuation
We continue working on the Arkanoid game. We will add block generation and different
levels.
35Lesson 35. Bomberman
In the next two classes, we will create a classic Bomberman game in the form of a 3D game for 2 people in local multiplayer (on one computer). The first lesson will focus on creating basic mechanics such as moving, placing bombs and destroying walls as well as deciding on winning, in the second lesson we will add Powerups and add more polish to the game.
36Lesson 36. Bomberman. Continuation
During the lesson, we will finish the Bomberman project - we will add pickups that can increase the character's statistics, such as the number of bombs placed, range of destruction or movement speed. Additionally, we will add the ability to display these statistics.
