Video Game Development with the use of C# (Bachelor thesis)

Δαφνιώτης, Δημήτριος


This thesis titled “Video Game Development with the use of C#”, focuses on using the C# programming language and the Unity environment to create video games. These tools are relatively new (they first appeared in 2000 and 2005 respectively, although in their current form much later). The market addressed by these tools was previously shared between C++ applications with DirectX API or Java with OpenGL. The author of this work has begun this thesis using Java only to end up with overwhelming difficulties in portability and game enrichment with new elements. By exploring different choices and reading reviews about the various video game creation environments and tools, the author was exposed to these tools. This dissertation will cover not only the tools but also important details about them, such as why they are usefull in the objectives of this work and most importanltly how these different tools can be combined with each other. Analytically in the first chapter we will refer to the C# programming language in its history, the context in which it was developed and its basic features. In the second chapter we will discuss what is the Unity Engine and its history. In the third chapter we will analyze the interface of Unity and the basic capabilities it offers us for the objectives of this dissertation. We will also refer to Visual Studio and its basic features as this tool was used to write the code as well as its interaction with Unity. In the fourth chapter we will discuss how we can manage our game assets in a project such as the construction of a video game, how from one image we can make many sprites and animations within Unity, the different components used and the explanation of the code. We conclude this thesis with a brief outline of diverse possibilities to improve these video games as well as our findings from this project.
Institution and School/Department of submitter: Σχολή τεχνολογικών εφαρμογών/ Τμήμα Ηλεκτρονικών Μηχανικών
Subject classification: C# (Γλώσσα προγραμματισμού)
C# (Computer program language)
Βιντεοπαιχνίδια--Σχεδιασμός
Video games--Design
Keywords: γλώσσα προγραμματισμού C#;κατασκευή παιχνιδιών;βιντεοπαιχνίδια;εργαλεία;C # programming language;game development;video games;tools
Description: Πτυχιακή εργασία-Σχολή τεχνολογικών εφαρμογών/ Τμήμα Ηλεκτρονικών Μηχανικών,2018-9771
URI: http://195.251.240.227/jspui/handle/123456789/12092
Item type: bachelorThesis
General Description / Additional Comments: Πτυχιακή εργασία
Subject classification: C# (Γλώσσα προγραμματισμού)
C# (Computer program language)
Βιντεοπαιχνίδια--Σχεδιασμός
Video games--Design
Submission Date: 2020-09-15T22:21:01Z
Item language: el
Item access scheme: free
Institution and School/Department of submitter: Σχολή τεχνολογικών εφαρμογών/ Τμήμα Ηλεκτρονικών Μηχανικών
Publication date: 2018-06-07
Bibliographic citation: << Δαφνιώτης Δημήτριος>>, << Κατασκευή Παιχνιδιών σε γλώσσα C#>>, <<Σχολή τεχνολογικών εφαρμογών/ Τμήμα Ηλεκτρονικών Μηχανικών>>, << Α.Τ.Ε.Ι.Θ>>, <<2018>>
Abstract: Η πτυχιακή αυτή εργασία με τίτλο κατασκευή παιχνιδιών σε γλώσσα C#, επικεντρώνεται όπως φαίνεται και από τον τίτλο της στην χρήση της γλώσσας προγραμματισμού C# και του περιβάλλοντος Unity για την δημιουργία βιντεοπαιχνιδιών. Τα εργαλεία αυτά είναι σχετικά καινούργια (εμφανίστηκαν πρώτη φορά το 2000 και 2005 αντίστοιχα αν και στην τωρινή τους μορφή πολύ αργότερα.) Η αγορά στην οποία απευθύνονται μοιράζονταν πριν ανάμεσα σε εφαργμογές C++ με DirectX API ή από Java με OpenGL. Μάλιστα ο συγγραφέας της εργασίας αυτής ξεκίνησε την πτυχιακή του με Java, μόνο για να καταλήξει μετά από μικρό χρονικό διάστημα σε υπέρμετρες δυσκολίες portability και εμπλουτισμού παιχνιδιών με νέα στοιχεία. Ερευνώντας διαφορετικές επιλογές και διαβάζοντας κριτικές για τα διάφορα περιβάλλοντα και εργαλεία υποστήριξης δημιουργίας βιντεοπαιχνιδιών ο συγγραφέας ήρθε σε επαφή με τα εργαλεία αυτά. Στην πτυχιακή αυτή θα αναφερθούν όχι μόνο τα εργαλεία αλλά και λεπτομέρειες για αυτά, όπως το γιατί είναι χρήσιμα στους στόχους αυτής της εργασίας και το κυριότερο πως τα διαφορετικά αυτά εργαλεία μπορούν να συνδυαστούν μεταξύ τους. Αναλυτικά στο πρώτο κεφάλαιο θα αναφερθούμε στην γλώσσα προγραμματισμού C# στην ιστορία της, στο πλαίσιο το οποίο αναπτύχθηκε καθώς και τα βασικά χαρακτηριστικά της. Στο δεύτερο κεφάλαιο θα αναφερθούμε στο τι είναι το Unity Engine και στην ιστορία του. Στο τρίτο κεφάλαιο θα γίνει η ανάλυση του interface της Unity και των βασικές δυνατοτήτων που μας προσφέρει για τους στόχους αυτής της πτυχιακής. Επίσης θα αναφερθούμε στο Visual Studio και τις βασικές του δυνατότητες καθώς αυτό το εργαλείο χρησιμοποιήθηκε για να γραφτεί ο κώδικας όπως και την αλληλεπίδραση Visual Studio με Unity. Στο τέταρτο κεφάλαιο θα αναφερθούμε στο πως μπορούμε να διαχειριστούμε τα assets μας σε ένα τέτοιο project όπως την κατασκευή ενός βιντεοπαιχνιδιού, πως από μία εικόνα μπορούμε να φτιάξουμε πολλά sprites και animation μέσα στην Unity, τα διαφορετικά components που χρησιμοποιήθηκαν και η εξήγηση του κώδικα. Τέλος θα αναφερθούμε πως μπορούμε να βελτιώσουμε τα βιντεοπαιχνίδια και τα συμπεράσματα μας από αυτό το project.
This thesis titled “Video Game Development with the use of C#”, focuses on using the C# programming language and the Unity environment to create video games. These tools are relatively new (they first appeared in 2000 and 2005 respectively, although in their current form much later). The market addressed by these tools was previously shared between C++ applications with DirectX API or Java with OpenGL. The author of this work has begun this thesis using Java only to end up with overwhelming difficulties in portability and game enrichment with new elements. By exploring different choices and reading reviews about the various video game creation environments and tools, the author was exposed to these tools. This dissertation will cover not only the tools but also important details about them, such as why they are usefull in the objectives of this work and most importanltly how these different tools can be combined with each other. Analytically in the first chapter we will refer to the C# programming language in its history, the context in which it was developed and its basic features. In the second chapter we will discuss what is the Unity Engine and its history. In the third chapter we will analyze the interface of Unity and the basic capabilities it offers us for the objectives of this dissertation. We will also refer to Visual Studio and its basic features as this tool was used to write the code as well as its interaction with Unity. In the fourth chapter we will discuss how we can manage our game assets in a project such as the construction of a video game, how from one image we can make many sprites and animations within Unity, the different components used and the explanation of the code. We conclude this thesis with a brief outline of diverse possibilities to improve these video games as well as our findings from this project.
Table of contents: Περίληψη 5 Κεφάλαιο 1 C# 8 1.1 Ιστορία της C#(C sharp) και η ανάπτυξη της 8 1.2 Διακριτικά χαρακτηριστικά της C# 9 1.2.1 Portability (Φορητότητα) 9 1.2.2 Typing 10 1.2.3 Metaprogramming 10 1.2.4 Μέθοδοι και functions(λειτουργίες) 10 1.2.5 Πρόσβαση Μνήμης (Memory Access) 11 1.2.6 Πολυμορφισμός (Polymorphism) 12 1.2.7 Language Integrated Query – LINQ 12 1.2.8 Λειτουργικός προγραμματισμός(Functional programming) 12 1.3 To συντακτικό (syntax) της C# 13 1.4 Τα σχέδια και οι στόχοι της C# για το μέλλον 13 1.5 Τι είναι το .NΕΤ Framework 14 1.6 Επεξήγηση συμαντικών όρων 15 Κεφάλαιο 2 Unity Game Engine 18 2.1 Τι είναι το Unity Game Engine 18 2.2 Game Engine 18 2.2.1 Τι είναι μία μηχανή παιχνιδιού (Game Engine) 19 2.2.2 Τι προσφέρει η Unity Game Engine 19 2.2.3 Σκοπώς των μηχανών παιχνιδιών 19 2.3 Τι είναι το Cross-platform 20 2.4 Application Programming Interface (API) 20 2.4.1 Τι είναι τα API 20 2.4.2 Σκοπός των API 21 2.4.3 Επεξήγηση των API που στοχεύχει η Unity 21 2.5 Ιστορία της Unity και η ανάπτυξη της 22 2.5.1 Licensing 23 2.6 Επεξήγηση συμαντικών όρων 24 Κεφάλαιο 3 Βασικά Εργαλεία για την ανάπτυξη ενός παιχνιδιού στην Unity Engine 27 3.1 Interface της Unity 28 3.2 Project Window 29 3.3 The Scene View 29 3.4 The Game View 30 3.5 Παράθυρο Ιεραρχίας (Hierarchy Window) 31 3.6 The Inspector Window or Inspector 32 3.7 Microsoft Visual Studio 34 3.8 Βασικά χαρακτηριστικά του Visual Studio 35 3.8.1 Code Editor 35 3.8.2 Debugger 36 3.9 Visual Studio Tools και αλληλεπίδραση με Unity 36 3.10 Επεξήγηση συμαντικών όρων 38 Κεφάλαιο 4 Δημιουργία Βιντεοπαιχνιδιών στην Unity 40 4.1 Διαχείρηση των Assets 40 4.2 Χωρισμός sprite και δημιουργία animation 41 4.2.1 Διαδικασία εξαγωγής Sprite από μια εικόνα 42 4.2.2 Δημιουργία Animation 44 4.3 Components που χρησιμοποιήθηκαν 50 4.4 Game Jack The Giant: Κώδικας και επεξήγησή του 50 4.4.1 Διάγραμμα Ροής Main Menu Scene 50 4.4.2 Διάγραμμα ροής Option Menu Scene 52 4.4.3 Διάγραμμα Ροής Highscore Scene 52 4.4.4 Διάγραμμα ροής Gameplay Scene 53 4.5 Game Flappy Bird: Κώδικας και επεξήγησή του 58 4.5.1 Διάγραμμα Ροής Main Menu scene 58 4.5.2 Διάγραμμα Ροής Gameplay scene 58 Επίλογος 63 APPENDIX Α Jack the giant Code 65 APPENDIX B Flappy Bird Code 82 Μεταφρασμένη, στην Ελληνική γλώσσα βιβλιογραφία 90 Bibliography 90
Advisor name: Τζέκης, Παναγιώτης
Examining committee: Τζέκης, Παναγιώτης
Publishing department/division: Σχολή τεχνολογικών εφαρμογών/ Τμήμα Ηλεκτρονικών Μηχανικών
Publishing institution: teithe
Number of pages: 90
Appears in Collections:Πτυχιακές Εργασίες

Files in This Item:
File Description SizeFormat 
ΠΕ ΔΑΦΝΙΩΤΗΣ ΔΗΜΗΤΡΙΟΣ 511126.pdfΠτυχιακή εργασία2.91 MBAdobe PDFView/Open



 Please use this identifier to cite or link to this item:
http://195.251.240.227/jspui/handle/123456789/12092
  This item is a favorite for 0 people.

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.