-
Notifications
You must be signed in to change notification settings - Fork 0
/
tankgame.html
105 lines (56 loc) · 3.8 KB
/
tankgame.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ThomasB Porfolio</title>
<link rel="stylesheet" href="styles/global.css">
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
</head>
<body>
<div class="page-deadspace">
<div id="nav-placeholder"></div>
<div id="page-content">
<div id="about-block" class="block"></div>
<div id="info-block" class="block">
<h2 id="info-title">Tank Game</h2>
<div id="info-right-column">
<img class="info-block-img" src="/images/TankGame.webp" alt="Tank Game Image">
<p class="info-column-category">Title:</p><p class="info-column-text">Tank Game</p>
<p class="info-column-category">Engine:</p><p class="info-column-text">Godot</p>
<p class="info-column-category">Programmer(s):</p><p class="info-column-text">Thomas Ballantyne</p>
<p class="info-column-category">Platform:</p><p class="info-column-text">Microsoft Windows</p>
<br>
</div>
<h3 class="info-sub-title">About Game<hr class="info-hr"></h3>
<p class="info-body-text">Game networking prototype build in godot. Gameplay elements are programmed in godot scripting language, while networking is using gdnative(c++) and winsock.</p>
<p class="info-body-text">You control a tank which can shoot projectiles that bounce of walls and explodes when it collides with other projects, tanks, and destroyable blocks.</p>
<h3 class="info-sub-title">Contribution<hr class="info-hr"></h3>
<p class="info-body-text">This game was completed as part of a networking module. A requirement of this was to use a low-level networking library to handle the multiplayer. However, the built in godot networking was too high level.</p>
<p class="info-body-text">To get around this I used GDNative, which allows for c++ code and libaries to be used in godot. All the gameplay and information in the recieved packets were then handled within godot using GDScript.</p>
<p class="info-body-text">Networking techniques were used to produced the most stable and polished experience possible. This was achived by appropriatly using udp and tcp, as well as, interpolation and packet reordering.</p>
<h3 class="info-sub-title">Gallery<hr class="info-hr"></h3>
<div style="display: flex; justify-content: center;">
<img class="info-img" src="/images/TGImage1.webp" alt="Evolution Cycle Image 1">
<img class="info-img" src="/images/TGImage2.webp" alt="Evolution Cycle Image 2">
<img class="info-img" src="/images/TGImage3.webp" alt="Evolution Cycle Image 3">
</div>
<h3 class="info-sub-title">Links<hr class="info-hr"></h3>
<div style="display: flex; justify-content: center;">
<button id="tg-exe-btn" class="info-block-button"><img src="../images/Exe.webp" alt="Executable" title="Executable" class="social-block-icon"><p class="social-block-text">Executable</p></button>
<button id="tg-source-btn" class="info-block-button"><img src="../images/SourceCode.webp" alt="Source Code" title="Source Code" class="social-block-icon"><p class="social-block-text">Source Code</p></button>
</div>
</div>
<div id="social-block" class="block"></div>
</div>
</div>
<script>
$(function(){
$("#nav-placeholder").load("/objects/header.html");
$("#about-block").load("/objects/about.html");
$("#social-block").load("/objects/social.html");
});
</script>
<script src="scripts/infoLinks.js"></script>
</body>
</html>