-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1222 lines (1164 loc) · 79 KB
/
index.html
File metadata and controls
1222 lines (1164 loc) · 79 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="Asciidoctor 0.1.4">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RunControl Dökümantasyon</title>
<link rel="icon" type="image/x-icon" href="firat.png">
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
audio, canvas, video { display: inline-block; }
audio:not([controls]) { display: none; height: 0; }
[hidden] { display: none; }
html { background: #fff; color: #000; font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body { margin: 0; }
a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }
h1 { font-size: 2em; margin: 0.67em 0; }
abbr[title] { border-bottom: 1px dotted; }
b, strong { font-weight: bold; }
dfn { font-style: italic; }
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
mark { background: #ff0; color: #000; }
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }
pre { white-space: pre-wrap; }
q { quotes: "\201C" "\201D" "\2018" "\2019"; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
img { border: 0; }
svg:not(:root) { overflow: hidden; }
figure { margin: 0; }
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
legend { border: 0; padding: 0; }
button, input, select, textarea { font-family: inherit; font-size: 100%; margin: 0; }
button, input { line-height: normal; }
button, select { text-transform: none; }
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; }
button[disabled], html input[disabled] { cursor: default; }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
textarea { overflow: auto; vertical-align: top; }
table { border-collapse: collapse; border-spacing: 0; }
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body { font-size: 100%; }
body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }
a:hover { cursor: pointer; }
a:focus { outline: none; }
img, object, embed { max-width: 100%; height: auto; }
object, embed { height: 100%; }
img { -ms-interpolation-mode: bicubic; }
#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
.left { float: left !important; }
.right { float: right !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.text-justify { text-align: justify !important; }
.hide { display: none; }
.antialiased, body { -webkit-font-smoothing: antialiased; }
img { display: inline-block; vertical-align: middle; }
textarea { height: auto; min-height: 50px; }
select { width: 100%; }
p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }
.subheader, #content #toctitle, .admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }
a { color: #005498; text-decoration: underline; line-height: inherit; }
a:hover, a:focus { color: #00467f; }
a img { border: none; }
p { font-family: inherit; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; text-rendering: optimizeLegibility; }
p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Georgia, "URW Bookman L", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; color: #ba3925; text-rendering: optimizeLegibility; margin-top: 1em; margin-bottom: 0.5em; line-height: 1.2125em; }
h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #e99b8f; line-height: 0; }
h1 { font-size: 2.125em; }
h2 { font-size: 1.6875em; }
h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }
h4 { font-size: 1.125em; }
h5 { font-size: 1.125em; }
h6 { font-size: 1em; }
hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }
em, i { font-style: italic; line-height: inherit; }
strong, b { font-weight: bold; line-height: inherit; }
small { font-size: 60%; line-height: inherit; }
code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; list-style-position: outside; font-family: inherit; }
ul, ol { margin-left: 1.5em; }
ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; }
ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
ul.square { list-style-type: square; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.no-bullet { list-style: none; }
ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }
dl dt { margin-bottom: 0.3125em; font-weight: bold; }
dl dd { margin-bottom: 1.25em; }
abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222222; border-bottom: 1px dotted #dddddd; cursor: help; }
abbr { text-transform: none; }
blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
blockquote cite { display: block; font-size: inherit; color: #555555; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #555555; }
blockquote, blockquote p { line-height: 1.6; color: #6f6f6f; }
.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
.vcard li { margin: 0; display: block; }
.vcard .fn { font-weight: bold; font-size: 0.9375em; }
.vevent .summary { font-weight: bold; }
.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }
@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
h1 { font-size: 2.75em; }
h2 { font-size: 2.3125em; }
h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
h4 { font-size: 1.4375em; } }
.print-only { display: none !important; }
@media print { * { background: transparent !important; color: #000 !important; box-shadow: none !important; text-shadow: none !important; }
a, a:visited { text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
@page { margin: 0.5cm; }
p, h2, h3, #toctitle, .sidebarblock > .content > .title { orphans: 3; widows: 3; }
h2, h3, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; }
.hide-on-print { display: none !important; }
.print-only { display: block !important; }
.hide-for-print { display: none !important; }
.show-for-print { display: inherit !important; } }
table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
table thead, table tfoot { background: whitesmoke; font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.6; }
.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
.clearfix:after, .float-group:after { clear: both; }
*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
kbd.keyseq { color: #555555; }
kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
kbd kbd:first-child { margin-left: 0; }
kbd kbd:last-child { margin-right: 0; }
.menuseq, .menu { color: #090909; }
p a > code:hover { color: #561309; }
#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
#header { margin-bottom: 2.5em; }
#header > h1 { color: black; font-weight: normal; border-bottom: 1px solid #dddddd; margin-bottom: -28px; padding-bottom: 32px; }
#header span { color: #6f6f6f; }
#header #revnumber { text-transform: capitalize; }
#header br { display: none; }
#header br + span { padding-left: 3px; }
#header br + span:before { content: "\2013 \0020"; }
#header br + span.author { padding-left: 0; }
#header br + span.author:before { content: ", "; }
#toc { border-bottom: 3px double #ebebeb; padding-bottom: 1.25em; }
#toc > ul { margin-left: 0.25em; }
#toc ul.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
#toc ul { list-style-type: none; }
#toctitle { color: #7a2518; }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; }
#toc.toc2 { position: fixed; width: 20em; left: 0; top: 0; border-right: 1px solid #ebebeb; border-bottom: 0; z-index: 1000; padding: 1em; height: 100%; overflow: auto; }
#toc.toc2 #toctitle { margin-top: 0; }
#toc.toc2 > ul { font-size: .95em; }
#toc.toc2 ul ul { margin-left: 0; padding-left: 1.25em; }
#toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
body.toc2.toc-right { padding-left: 0; padding-right: 20em; }
body.toc2.toc-right #toc.toc2 { border-right: 0; border-left: 1px solid #ebebeb; left: auto; right: 0; } }
#content #toc { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; border-width: 0; -webkit-border-radius: 4px; border-radius: 4px; }
#content #toc > :first-child { margin-top: 0; }
#content #toc > :last-child { margin-bottom: 0; }
#content #toc a { text-decoration: none; }
#content #toctitle { font-weight: bold; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-size: 1em; padding-left: 0.125em; }
#footer { max-width: 100%; background-color: #222222; padding: 1.25em; }
#footer-text { color: #dddddd; line-height: 1.44; }
.sect1 { padding-bottom: 1.25em; }
.sect1 + .sect1 { border-top: 3px double #ebebeb; }
#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; width: 1em; margin-left: -1em; display: block; text-decoration: none; visibility: hidden; text-align: center; font-weight: normal; }
#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: '\00A7'; font-size: .85em; vertical-align: text-top; display: block; margin-top: 0.05em; }
#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: #ba3925; text-decoration: none; }
#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #a53221; }
.imageblock, .literalblock, .listingblock, .verseblock, .videoblock { margin-bottom: 1.25em; }
.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
.admonitionblock > table { border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: none; }
.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 4px; border-radius: 4px; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; }
.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; }
.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #d9d9d9; box-shadow: 0 1px 8px #d9d9d9; }
.sidebarblock { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; -webkit-border-radius: 4px; border-radius: 4px; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; }
.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; }
.sidebarblock > .content > .title { color: #7a2518; margin-top: 0; line-height: 1.6; }
.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }
.literalblock > .content pre, .listingblock > .content pre { background: none; border-width: 1px 0; border-style: dotted; border-color: #bfbfbf; -webkit-border-radius: 4px; border-radius: 4px; padding: 0.75em 0.75em 0.5em 0.75em; word-wrap: break-word; }
.literalblock > .content pre.nowrap, .listingblock > .content pre.nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
.literalblock > .content pre > code, .listingblock > .content pre > code { display: block; }
@media only screen { .literalblock > .content pre, .listingblock > .content pre { font-size: 0.8em; } }
@media only screen and (min-width: 768px) { .literalblock > .content pre, .listingblock > .content pre { font-size: 0.9em; } }
@media only screen and (min-width: 1280px) { .literalblock > .content pre, .listingblock > .content pre { font-size: 1em; } }
.listingblock > .content { position: relative; }
.listingblock:hover code[class*=" language-"]:before { text-transform: uppercase; font-size: 0.9em; color: #999; position: absolute; top: 0.375em; right: 0.375em; }
.listingblock:hover code.asciidoc:before { content: "asciidoc"; }
.listingblock:hover code.clojure:before { content: "clojure"; }
.listingblock:hover code.css:before { content: "css"; }
.listingblock:hover code.groovy:before { content: "groovy"; }
.listingblock:hover code.html:before { content: "html"; }
.listingblock:hover code.java:before { content: "java"; }
.listingblock:hover code.javascript:before { content: "javascript"; }
.listingblock:hover code.python:before { content: "python"; }
.listingblock:hover code.ruby:before { content: "ruby"; }
.listingblock:hover code.scss:before { content: "scss"; }
.listingblock:hover code.xml:before { content: "xml"; }
.listingblock:hover code.yaml:before { content: "yaml"; }
.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }
.listingblock.terminal pre .command:not([data-prompt]):before { content: '$'; }
table.pyhltable { border: 0; margin-bottom: 0; }
table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; }
table.pyhltable td.code { padding-left: .75em; padding-right: 0; }
.highlight.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #dddddd; }
.highlight.pygments .lineno { display: inline-block; margin-right: .25em; }
table.pyhltable .linenodiv { background-color: transparent !important; padding-right: 0 !important; }
.quoteblock { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.5625em 0; border: 0; }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: -.25em; padding-bottom: 0.5625em; font-size: inherit; color: #555555; }
.quoteblock .attribution br { display: none; }
.quoteblock .attribution cite { display: block; margin-bottom: 0.625em; }
table thead th, table tfoot th { font-weight: bold; }
table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
p.tableblock.header { color: #222222; font-weight: bold; }
td > div.verse { white-space: pre; }
ol { margin-left: 1.75em; }
ul li ol { margin-left: 1.5em; }
dl dd { margin-left: 1.125em; }
dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }
ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; }
ul.unstyled, ol.unnumbered, ul.checklist, ul.none { list-style-type: none; }
ul.unstyled, ol.unnumbered, ul.checklist { margin-left: 0.625em; }
ul.checklist li > p:first-child > i[class^="icon-check"]:first-child, ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }
ul.checklist li > p:first-child > input[type="checkbox"]:first-child { position: relative; top: 1px; }
ul.inline { margin: 0 auto 0.625em auto; margin-left: -1.375em; margin-right: 0; padding: 0; list-style: none; overflow: hidden; }
ul.inline > li { list-style: none; float: left; margin-left: 1.375em; display: block; }
ul.inline > li > * { display: block; }
.unstyled dl dt { font-weight: normal; font-style: normal; }
ol.arabic { list-style-type: decimal; }
ol.decimal { list-style-type: decimal-leading-zero; }
ol.loweralpha { list-style-type: lower-alpha; }
ol.upperalpha { list-style-type: upper-alpha; }
ol.lowerroman { list-style-type: lower-roman; }
ol.upperroman { list-style-type: upper-roman; }
ol.lowergreek { list-style-type: lower-greek; }
.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
td.hdlist1 { padding-right: .8em; font-weight: bold; }
td.hdlist1, td.hdlist2 { vertical-align: top; }
.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
.colist > table tr > td:first-of-type { padding: 0 .8em; line-height: 1; }
.colist > table tr > td:last-of-type { padding: 0.25em 0; }
.qanda > ol > li > p > em:only-child { color: #00467f; }
.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }
.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }
a.image { text-decoration: none; }
span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; }
span.footnote a, span.footnoteref a { text-decoration: none; }
#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { padding: 0 0.375em; line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; }
#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }
.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }
div.unbreakable { page-break-inside: avoid; }
.big { font-size: larger; }
.small { font-size: smaller; }
.underline { text-decoration: underline; }
.overline { text-decoration: overline; }
.line-through { text-decoration: line-through; }
.aqua { color: #00bfbf; }
.aqua-background { background-color: #00fafa; }
.black { color: black; }
.black-background { background-color: black; }
.blue { color: #0000bf; }
.blue-background { background-color: #0000fa; }
.fuchsia { color: #bf00bf; }
.fuchsia-background { background-color: #fa00fa; }
.gray { color: #606060; }
.gray-background { background-color: #7d7d7d; }
.green { color: #006000; }
.green-background { background-color: #007d00; }
.lime { color: #00bf00; }
.lime-background { background-color: #00fa00; }
.maroon { color: #600000; }
.maroon-background { background-color: #7d0000; }
.navy { color: #000060; }
.navy-background { background-color: #00007d; }
.olive { color: #606000; }
.olive-background { background-color: #7d7d00; }
.purple { color: #600060; }
.purple-background { background-color: #7d007d; }
.red { color: #bf0000; }
.red-background { background-color: #fa0000; }
.silver { color: #909090; }
.silver-background { background-color: #bcbcbc; }
.teal { color: #006060; }
.teal-background { background-color: #007d7d; }
.white { color: #bfbfbf; }
.white-background { background-color: #fafafa; }
.yellow { color: #bfbf00; }
.yellow-background { background-color: #fafa00; }
span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
.admonitionblock td.icon [class^="icon-"]:before { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
.conum { display: inline-block; color: white !important; background-color: #222222; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; font-weight: bold; line-height: 20px; font-family: Arial, sans-serif; font-style: normal; position: relative; top: -2px; letter-spacing: -1px; }
.conum * { color: white !important; }
.conum + b { display: none; }
.conum:after { content: attr(data-value); }
.conum:not([data-value]):empty { display: none; }
.literalblock > .content > pre, .listingblock > .content > pre { -webkit-border-radius: 0; border-radius: 0; }
</style>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css">
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1><span class="image">
<img src="firat.png" alt="firat" width="10%">
</span>RunControl Dökümantasyon</h1>
<div id="toc" class="toc2">
<div id="toctitle">İçindekiler</div>
<ul class="sectlevel1">
<li><a href="#section-introduction-and-goals">1. Giriş ve Hedefler</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#_requirements_overview">1.1. Gereksinimlere Genel Bakış</a></li>
<li><a href="#_quality_goals">1.2. Kalite Hedefleri</a></li>
<li><a href="#_stakeholders">1.3. Paydaşlar</a></li>
</ul>
</li>
<li><a href="#section-architecture-constraints">2. Mimari Kısıtlamalar</a></li>
<li><a href="#section-system-scope-and-context">3. Sistem Kapsamı ve Bağlamı</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#_business_context">3.1. İş Bağlamı</a></li>
<li><a href="#_technical_context">3.2. Teknik Bağlam</a></li>
</ul>
</li>
<li><a href="#section-solution-strategy">4. Çözüm Stratejisi</a></li>
<li><a href="#section-building-block-view">5. Yapısal Blok Görünümü</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#_level_2">5.1. Seviye 1</a></li>
<li><a href="#_level_3">5.2. Seviye 2</a></li>
</ul>
</li>
<li><a href="#section-runtime-view">6. Çalışma Zamanı Görünümü</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#__runtime_scenario_1">6.1. <ÇalışmaZamanı Senaryosu 1></a></li>
<li><a href="#__runtime_scenario_2">6.2. <ÇalışmaZamanı Senaryosu 2></a></li>
</ul>
</li>
<li><a href="#section-deployment-view">7. Dağıtım Görünümü</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#_infrastructure_level_1">7.1. Altyapı Level 1</a></li>
</ul>
</li>
<li><a href="#section-concepts">8. Kesintisiz Kavramlar</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#__em_concept_1_em">8.1. <em><Konsept 1></em></a></li>
<li><a href="#__em_concept_2_em">8.2. <em><Konsept 2></em></a></li>
</ul>
</li>
<li><a href="#section-design-decisions">9. Mimari Kararlar</a></li>
<li><a href="#section-quality-scenarios">10. Kalite Gereksinimleri</a></li>
<li>
<ul class="sectlevel2">
<li><a href="#_quality_tree">10.1. Kalite Ağacı</a></li>
<li><a href="#_quality_scenarios">10.2. Kalite Senaryoları</a></li>
</ul>
</li>
<li><a href="#section-technical-risks">11. Riskler ve Teknik Borçlar</a></li>
<li><a href="#section-glossary">12. Sözlük</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<style>
.arc42help {font-size:small; width: 14px; height: 16px; overflow: hidden; position: absolute; right: 0; padding: 2px 0 3px 2px;}
.arc42help::before {content: "?";}
.arc42help:hover {width:auto; height: auto; z-index: 100; padding: 10px;}
.arc42help:hover::before {content: "";}
@media print {
.arc42help {display:none;}
}
</style>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="section-introduction-and-goals"><a class="anchor" href="#section-introduction-and-goals"></a>1. Giriş ve Hedefler</h2>
<div class="sectionbody">
<div class="content">
<div class="paragraph">
<p>RunControl, mobil platformlar için geliştirilen yenilikçi bir hyper-casual koşu oyunudur. Oyun,
geleneksel runner mekaniklerini matematiksel bulmacalarla birleştirerek benzersiz bir deneyim sunmayı amaçlar.
Oyuncular, engellerle dolu dinamik parkurlarda ilerlerken karşılarına çıkan matematiksel geçitleri doğru çözerek
takipçi sayılarını artırır ve zorlu parkurları aşmaya çalışır. Bu yapısıyla RunControl, sadece eğlence değil
aynı zamanda temel matematik becerilerini geliştirme fırsatı sunan eğitsel bir araç olarak da öne çıkar.</p>
<p>Projenin temel hedefi, oyunculara hızlı karar verme ve stratejik düşünme becerilerini geliştirebilecekleri
eğlenceli bir platform sunmaktır. Klasik runner oyunlarından farklı olarak matematiksel öğeler içeren bu yapı,
özellikle genç yaştaki oyuncuların bilişsel becerilerini desteklerken aynı zamanda onlara keyifli vakit geçirme
imkanı tanır. Oyun içindeki progresyon sistemi, oyuncuların başarı hissini artırmak üzere tasarlanmıştır;
her geçitten başarıyla geçiş, takipçi sayısını artırarak oyuncuya somut bir ilerleme hissi verir.</p>
<p>RunControl'un teknik hedefleri arasında düşük seviyeli cihazlarda bile sorunsuz çalışan optimize edilmiş
bir performans sunmak ve kullanıcı dostu bir arayüzle erişilebilir bir deneyim yaratmak yer alır. Oyun,
minimalist tasarımı ve sezgisel kontrolleri sayesinde geniş bir kitleye hitap ederken, arka planda
çalışan gelişmiş algoritmalarla matematiksel hesaplamaları anında işleyerek akıcı bir oyun deneyimi vaat eder.</p>
</div>
</div>
<div class="sect2">
<h3 id="_requirements_overview"><a class="anchor" href="#_requirements_overview"></a>1.1. Gereksinimlere Genel Bakış</h3>
<div class="content">
<div class="paragraph">
<p>RunControl oyununda tüm kullanıcılar şu temel işlevlere erişebilecek:</p>
<ul>
<li><b>Dinamik Parkur Mekaniği:</b> Oyuncular, rastgele oluşturulan engelli parkurlarda koşu yaparken aynı zamanda matematiksel geçitlerle karşılaşacak ve bu geçitleri doğru çözerek takipçi sayılarını artırabilecek.</li>
<li><b>Takipçi Yönetimi:</b> Başarılı geçit çözümleri sonucunda artan takipçi grubu, oyuncunun parkurdaki performansını doğrudan etkileyecek. Takipçi sayısı arttıkça engel aşma ve hız kazanma gibi avantajlar elde edilebilecek.</li>
<li><b>Kişiselleştirilebilir Karakterler:</b> Oyuncular, oyun içi kazanımlar veya küçük ödemelerle karakterlerinin görünümünü özelleştirebilecek ve özel yetenekler açabilecek.</li>
<li><b>Eğitsel İçerik:</b> Matematiksel geçitler, oyuncuların yaş seviyelerine uygun olarak farklı zorluk derecelerinde (toplama/çıkarma temel seviye, çarpma/bölme ileri seviye gibi) sunulacak.</li>
</ul>
<p><b>Projenin İlerleyen Aşamalarında:</b></p>
<ul>
<li><b>Zorluk Seviyeleri:</b> Oyuncuların matematiksel becerilerine göre otomatik ayarlanan adaptif zorluk sistemi eklenecek.</li>
<li><b>Özel Etkinlik Modları:</b> Limitli süreli özel seviyeler ve sezonluk etkinliklerle oyun çeşitliliği artırılacak.</li>
</ul>
</div>
<div class="paragraph">
<div class="paragraph">
<div class="title">User Story Diagramı</div>
<p><img src="userStoryRunControl.png" alt="usecase"> </p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_quality_goals"><a class="anchor" href="#_quality_goals"></a>1.2. Kalite Hedefleri</h3>
<div class="content">
<div class="paragraph">
<p>RunControl'un teknik mimarisi ve kullanıcı deneyimi, ISO/IEC 25010 standartlarına uygun şekilde belirlenen üç temel
kalite hedefi üzerine inşa edilmiştir.
Bu hedefler, oyunun başarısını doğrudan etkileyen kritik faktörleri kapsamaktadır:</p>
<ul>
<li><strong>Kullanılabilirlik (Usability):</strong> RunControl, hyper-casual oyun kategorisinin beklentilerini karşılayacak şekilde sezgisel ve erişilebilir bir deneyim sunmayı hedefler. Oyun mekanikleri, 3 saniye kuralına uygun olarak anında öğrenilebilir tasarlanmıştır. Minimalist arayüz, yaş gruplarına özel renk paletleri ve haptik geri bildirimlerle kullanıcı memnuniyeti artırılır. Özellikle matematiksel geçitlerdeki görsel ipuçları, oyuncuların hızlı karar vermesini kolaylaştırır.</li>
<li><strong>Performans (Performance):</strong> RunControl, tüm kullanıcılar için kesintisiz ve akıcı bir deneyim sunmayı
temel performans hedefi olarak belirlemiştir. Oyun, düşük seviyeli mobil cihazlarda (1GB RAM) bile sabit 60 FPS
performansı garanti edecek şekilde optimize edilmiştir. Bu performans, özellikle yoğun takipçi simülasyonları
sırasında kritik önem taşır; DOTS tabanlı fizik motoru sayesinde 100'den fazla takipçinin aynı anda simüle
edildiği sahnelerde bile gecikmesiz bir deneyim sunulur. Oyunun yükleme süreleri, Unity'nin Addressable
Assets sistemi kullanılarak 2 saniyenin altında tutulmuştur. Bu sayede kullanıcılar seviyeler arasında
kesinti yaşamadan hızlı geçiş yapabilir. Bellek yönetimi konusunda object pooling ve texture streaming
teknikleri kullanılarak RAM tüketimi 150MB'ın altında tutulur, bu da uzun oyun seanslarında bile cihazların
aşırı ısınmasını ve performans düşüşlerini engeller.</li>
<li><strong>Güvenilirlik (Reliability):</strong> RunControl, kullanıcıların oyun deneyimini kesintiye uğratmayacak
güvenilir bir altyapı sunar. Firebase Crashlytics entegrasyonu ile %99.9 çökmesiz oturum hedeflenir ve
gerçek zamanlı hata takibi yapılır. Kullanıcı ilerlemesinin güvenliği, PlayFab bulut kayıt sistemi ile sağlanır;
bu sayede cihaz değişikliklerinde veya beklenmedik kapanmalarda bile veri kaybı yaşanmaz. Oyun, ağ bağlantısının
olmadığı durumlarda bile temel oyun döngüsünü çalıştırabilecek şekilde tasarlanmıştır. Kullanıcılar offline modda
oyun oynamaya devam edebilir ve bağlantı yeniden sağlandığında ilerlemeleri otomatik olarak senkronize edilir.
Ayrıca, yanlış matematiksel işlemlerde "Geri Al" butonu ile kullanıcıların hatalarını düzeltme imkanı sunulur.
Adaptive difficulty sistemi sayesinde oyun, kullanıcının beceri seviyesine göre zorluğu dinamik olarak
ayarlayarak hem yeni başlayanlar hem de ileri seviye oyuncular için dengeli bir deneyim sunar.</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_stakeholders"><a class="anchor" href="#_stakeholders"></a>1.3. Paydaşlar</h3>
<div class="content">
<p>Aşağıdaki tabloda projede yer alacak paydaşlar yer almaktadır.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:40%;">
<col style="width:40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Rol</th>
<th class="tableblock halign-left valign-top">İsim</th>
<th class="tableblock halign-left valign-top">Beklentiler</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unity Geliştiricisi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Batuhan BAYIR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Temel oynanış programlaması, mimari tasarım, performans optimizasyonu ve teknik liderlik.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unity Geliştiricisi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mustafa TORTUK</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Arayüz sistemi uygulaması, giriş kontrolü ve para kazanma entegrasyonu.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Oyun Tasarımcısı</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enes GÜZEL</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Bölüm tasarımı, ilerleme sistemleri, matematiksel geçiş mekaniği ve oyuncu deneyimi dengesi.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3D Sanatçı</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mehmet Ali KODAŞ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Karakter modelleme, çevre varlıkları ve koşucu oyun için görsel efekt (VFX) oluşturma.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ses Tasarımcısı</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ahmet Utku KARAGÜLLE</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ses efektleri oluşturma, arka plan müziği besteleme ve Unity’de ses entegrasyonu.</p></td>
</tr>
<tr>
<td>Akademik Mentor</td>
<td>Prof. Dr.
FATİH ÖZKAYNAK</td>
<td>Projenin ilerleyişini kontrol etmek, kalite standartlarını gözetmek, projenin eğitim hedefleri ile uyumunu sağlamak.</td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="section-architecture-constraints"><a class="anchor" href="#section-architecture-constraints"></a>2. Mimari Kısıtlamalar</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Kısıtlama</th>
<th class="tableblock halign-left valign-top">Açıklama</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Platform Uyumluluğu</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
Oyun, Unity 2022 LTS kullanılarak geliştirilecek ve minimum Android 8.0 (API 26) ile iOS 12+ cihazlarda native performansla çalışacaktır. IL2CPP scripting backend kullanılacaktır.
</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Veri Yönetimi</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
Oyuncu progres verileri (skorlar, kilitlemeler) PlayFab Cloud Save ile şifrelenecek, lokal önbellek için SQLite kullanılacaktır. Addressable Assets ile dinamik içerik yönetimi sağlanacaktır.
</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Performans Hedefleri</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
Low-end cihazlarda (1GB RAM) 60 FPS hedeflenmektedir. DOTS Physics ve SRP Batcher kullanılarak 100+ karakterli sahneler optimize edilecektir. APK boyutu 50MB altında tutulacaktır.
</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Input Sistemi</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
Unity's New Input System ile çapraz platform kontrol desteği (Dokunmatik/Gamepad) sağlanacak, input lag 80ms altında tutulacaktır. Mobil cihazlarda tilt kontrol opsiyonu bulunacaktır.
</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Test Stratejisi</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
Unity Test Framework ile unit testler, UAT için Firebase Test Lab kullanılacaktır. Her feature branch için Android/iOS build otomasyonu kurulacaktır (CI/CD).
</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Sürüm Takvimi</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>
2 haftalık sprintler halinde geliştirme yapılacak, her sprint sonunda Alpha/Beta build'ler TestFlight/Google Play Beta'ya dağıtılacaktır. Final lansman öncesi 2 haftalık soft-launch dönemi olacaktır.
</em></p></td>
</tr>
</tbody>
</table>
<div class="content">
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="section-system-scope-and-context"><a class="anchor" href="#section-system-scope-and-context"></a>3. Sistem Kapsamı ve Bağlamı</h2>
<div class="sectionbody">
<div class="content">
<div class="paragraph">
<div class="section" id="sistem-kapsami">
<div class="title">Sistem Kapsamı</div>
<p>
RunControl, mobil platformlar için geliştirilen hyper-casual tarzda, matematik tabanlı bir koşu oyunudur.
Uygulamanın sistem kapsamı, oyuncuya sade ve sezgisel bir arayüz üzerinden dinamik, matematiksel kararlar gerektiren bir oyun deneyimi sunmayı hedefler.
Uygulama, düşük donanımlı cihazlarda dahi yüksek performansla çalışacak şekilde optimize edilmiştir. Sistem; oyun döngüsünü oluşturan temel mekanikler, kullanıcı progresyonu, veri senkronizasyonu ve kişiselleştirme özellikleri etrafında şekillenir.
</p>
<ul>
<li>
<b>Dinamik Parkur ve Oyun Döngüsü:</b> Oyuncular, procedural olarak oluşturulmuş parkurlarda koşarken matematiksel geçitlerle karşılaşırlar.
Bu geçitler, toplama, çıkarma, çarpma ve bölme gibi işlemler içerir ve doğru cevaplar oyuncunun takipçi sayısını artırır. Yanlış cevaplar ise takipçi kaybına veya yavaşlamaya neden olur.
</li>
<li>
<b>Takipçi Sistemi:</b> Oyuncunun parkur üzerindeki başarısı, sahip olduğu takipçi sayısı ile doğrudan ilişkilidir.
Takipçiler, engelleri aşmak, hızlanmak ya da alternatif rotalara yönelmek gibi avantajlar sağlar. Bu sistem, oyuna stratejik bir derinlik kazandırır.
</li>
<li>
<b>Kişiselleştirme ve Karakter Gelişimi:</b> Oyuncular, oyun içi başarılar veya mikro ödemeler yoluyla karakterlerinin görünümünü değiştirebilir ve özel yetenekler açabilir.
Karakter kostümleri, efektler ve animasyonlar Unity Animator Controller ve Addressable Asset yapısı üzerinden dinamik şekilde yönetilir.
</li>
<li>
<b>Adaptif Zorluk ve Eğitsel İçerik:</b> Oyundaki zorluk seviyesi, oyuncunun performans verilerine göre gerçek zamanlı olarak ayarlanır.
Bu sayede hem yeni başlayanlar hem de deneyimli oyuncular için sürekli dengeli ve motive edici bir deneyim sunulur.
Matematiksel geçitler yaş seviyelerine göre farklı kombinasyonlarla oluşturulur ve arka planda çalışan bir soru jeneratörü algoritması tarafından dinamik olarak üretilir.
</li>
<b>Etkinlik ve Sezon Sistemleri:</b> RunControl, belirli zaman aralıklarında sunulan özel temalı parkurlar ve sezonluk görevlerle sürekli güncel ve dinamik kalır.
Bu sistem, kullanıcı sadakatini artırırken oyuna uzun vadeli bağlılık sağlar.
</li>
</ul>
<p>
Genel olarak RunControl’un sistem kapsamı, kullanıcı dostu bir hyper-casual oyun deneyimiyle birlikte eğitsel içerik sunmayı ve
performans-odaklı, sürdürülebilir bir mobil oyun mimarisi oluşturmayı hedeflemektedir. Unity’nin C# dili, DOTS (Data-Oriented Tech Stack),
Addressables, Animator Controller ve Firebase gibi modern araç setleri ile geliştirilen bu yapı, günümüz mobil oyun ihtiyaçlarına tam uyum sağlar.
</p>
</div>
<div class="content">
<p><img src="ContextDiagramRunControl.png" alt="content"></p>
</div>
</div>
<div class="sect2">
<h3 id="_business_context"><a class="anchor" href="#_business_context"></a>3.1. İş Bağlamı</h3>
<div class="content">
<div class="content">
<p><img src="BusinessContextRunControl.png" alt="business_content"></p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_technical_context"><a class="anchor" href="#_technical_context"></a>3.2. Teknik Bağlam</h3>
<div class="content">
<p><img src="TechnicalContextRunControl.png" alt="technical_content"></p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="section-solution-strategy"><a class="anchor" href="#section-solution-strategy"></a>4. Çözüm Stratejisi</h2>
<div class="sectionbody">
<div class="content">
<div class="paragraph">
<div class="title">Çözüm Stratejisi</div>
<p>RunControl sistem mimarisini şekillendiren temel kararların ve çözüm stratejilerinin kısa bir özeti aşağıda sunulmuştur:</p>
<div class="ulist">
<div class="title">Teknoloji Kararları</div>
<ul>
<li>
<p><b>Mobil Uygulama Geliştirme:</b> Unity Engine kullanılarak, hem Android hem de iOS platformları için yüksek performanslı, görsel olarak zengin bir deneyim sunulmaktadır.</p>
</li>
<li>
<p><b>Veri Saklama ve Yönetimi:</b> Oyuncu verileri için Firebase Realtime Database ve yerel cache (PlayerPrefs) kombinasyonu tercih edilmiştir. Bu sayede çevrimdışı ve çevrimiçi senaryolar birlikte desteklenir.</p>
</li>
<li>
<p><b>Kimlik Doğrulama ve Hesap Yönetimi:</b> Firebase Authentication ile kolay ve güvenli oturum yönetimi sağlanmaktadır.</p>
</li>
<li>
<p><b>Oyun İçi Ekonomi ve Sıralama:</b> PlayFab altyapısı kullanılarak oyuncu sıralamaları, ödüller ve dijital mağaza yönetilmektedir.</p>
</li>
<li>
<p><b>Hata Takibi ve Analiz:</b> Unity Analytics ve Firebase Crashlytics ile kullanıcı davranışı ve olası hatalar detaylı şekilde izlenmektedir.</p>
</li>
</ul>
</div>
<div class="paragraph">
<div class="title">Sistem Yapısının Üst Düzey Ayrışması</div>
<p><b>Unity Tabanlı Modüler Mimari:</b> Sistem, takipçi simülasyonu, matematik motoru ve kullanıcı arayüzü gibi bileşenler arasında açık sorumluluk sınırları olacak şekilde modülerleştirilmiştir. DOTS/ECS altyapısı sayesinde yüksek performanslı paralel hesaplamalar yapılabilmektedir.</p>
</div>
<div class="paragraph">
<div class="title">Anahtar Kalite Hedeflerinin Gerçekleştirilmesi</div>
<div class="ulist">
<ul>
<li>
<p><b>Performans:</b> DOTS (Data-Oriented Tech Stack) ve Burst Compiler teknolojileriyle optimize edilmiş hesaplamalar sağlanarak mobil cihazlarda akıcı bir deneyim sunulmaktadır.</p>
</li>
<li>
<p><b>Güvenlik:</b> Oyuncu kimliği, ilerlemesi ve ekonomik verileri şifreli bağlantılar (HTTPS/TLS) ile güvenli şekilde aktarılmakta ve saklanmaktadır.</p>
</li>
<li>
<p><b>Kullanılabilirlik:</b> Unity UI Toolkit ile oluşturulan arayüz, kullanıcı dostu ve platforma özgü sezgisel bir deneyim sunmaktadır. Kullanıcı testleri sonucunda sürekli iyileştirmeler yapılmaktadır.</p>
</li>
</ul>
</div>
</div>
<div class="paragraph">
<div class="title">İlgili Organizasyon Kararları</div>
<div class="ulist">
<ul>
<li>
<p><b>Geliştirme Süreci:</b> Agile/Scrum metodolojisi benimsenmiş, kısa iterasyonlarla test ve geri bildirim odaklı ilerlenmektedir.</p>
</li>
<li>
<p><b>Görev Dağıtımı:</b> Unity geliştiricileri, backend bağlantıları, simülasyon sistemleri ve UI bileşenlerine göre uzmanlık alanlarına göre görev almaktadır. Teknik borç takibi düzenli yapılmaktadır.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect1">
<h2 id="section-building-block-view"><a class="anchor" href="#section-building-block-view"></a>5. Yapısal Blok Görünümü</h2>
<div class="sectionbody">
<div class="content">
<div class="imageblock">
<p><img src="BuildingBlockViewRunControl.png" alt="buildingblock"></p>
</div>
<div class="paragraph">
<p>RunControl projesinin temel yapısı, oyun deneyimini yöneten çekirdek simülasyon yapısı ile kullanıcı arayüzünü ve veri yönetimini entegre eden katmanlara ayrılmıştır. Sistem, sürdürülebilir modülerlik ve yüksek performans hedefiyle yapılandırılmıştır.</p>
</div>
<div class="paragraph">
<p>Bu yapının ön planında, oyuncu ile doğrudan etkileşimde bulunan UI bileşenleri ve bu bileşenlerle ilgili kullanıcı eylemlerini yöneten mantıksal kontroller yer almaktadır. UI davranışları, Unity'nin <code>Canvas</code> sistemine dayalı olarak, dinamik olarak yönetilir.</p>
</div>
<div class="paragraph">
<p>Bir diğer ana bileşen olan “Core Simulation Layer”, oyuncu davranışları, zamanlayıcılar, görev akışları ve takipçi yapıları gibi oyun mantığının temelini barındırır. Bu katman, Entity-Component-Systems (ECS) mimarisi ile yapılandırılmış olup, performans odaklı veri işleme sağlar.</p>
</div>
<div class="paragraph">
<p>Veri yönetimi, oyuncu ilerlemesini, ayarlarını ve oyun içi kayıtları yöneten bir <b>Data Layer</b> üzerinden gerçekleştirilir. Firebase veya yerel cache (örneğin PlayerPrefs veya JSON serialization) ile çalışan bu katman, veri güvenliğini ve sürekliliğini sağlar.</p>
</div>
<div class="paragraph">
<p>RunControl, Unity Analytics ve üçüncü parti servisler ile entegre olarak kullanıcı etkileşimlerini takip eder. Bu yapı, oyunun hem oynanış hem de teknik düzeyde optimize edilmesine olanak tanır. Kullanıcı gizliliği ise veri şifreleme ve yetkilendirme katmanları ile korunur.</p>
</div>
<!-- Seviye 1 -->
<div class="sect2">
<h3 id="_level_2"><a class="anchor" href="#_level_2"></a>5.1. Seviye 1</h3>
<div class="content">
<p>RunControl uygulamasının temel katmanıdır. Bu katmanda, simülasyon motoru, oyun döngüsü yönetimi, kullanıcı arayüzü ve arka plan veri senkronizasyonu gibi sistemin işleyişini yöneten ana yapılar bulunur. Örnek olarak:</p>
<ul>
<li><b>Simulation Engine:</b> Oyuncu hareketleri, görev akışları, takipçi davranışları gibi dinamik etkileşimleri yönetir.</li>
<li><b>UI Layer:</b> Unity UI Toolkit veya Canvas sistemi kullanılarak oluşturulmuş, kullanıcıya bilgi ve kontrol sunan arayüzdür.</li>
<li><b>Game Manager:</b> Senaryoları, sahne geçişlerini ve oyun durumlarını koordine eden kontrol merkezidir.</li>
<li><b>Service Layer:</b> Oyun içinde kullanılan dış servislerle (Firebase, PlayFab vb.) haberleşmeyi sağlar.</li>
</ul>
<p>Bu seviye, oyun deneyiminin akışını yönetir ve diğer katmanlarla sürekli veri alışverişinde bulunur.</p>
</div>
</div>
<!-- Seviye 2 -->
<div class="sect2">
<h3 id="_level_3"><a class="anchor" href="#_level_3"></a>5.2. Seviye 2</h3>
<div class="content">
<p>“Seviye 2”, birim düzeyde işlevsel bileşenleri temsil eder. Bu bileşenler, doğrudan kullanıcının etkileşime girdiği UI elementleri ve oyunun alt sistemlerine karşılık gelir. Örneğin:</p>
<ul>
<li><b>Görev Paneli:</b> Oyuncunun görev ilerlemesini izleyebildiği ve ödülleri alabileceği arayüz.</li>
<li><b>Takipçi Yönetimi:</b> Takipçilerin eklendiği, sıralandığı ve davranışlarının izlendiği alt sistem.</li>
<li><b>Giriş/Kayıt Arayüzü:</b> Kullanıcının oyuna erişimini sağlayan kimlik doğrulama ekranları.</li>
<li><b>Ayarlar:</b> Oyun içi ses, kontrol ve grafik ayarlarının yönetildiği kullanıcı arayüzü.</li>
</ul>
<p>Bu seviye, hem oyun içeriğini kişiselleştirmeyi hem de oyuncunun sistemle sezgisel bir şekilde etkileşim kurmasını sağlar. Seviye 1'deki altyapı ile sürekli veri alışverişi gerçekleştirerek senkronize çalışır.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="section-runtime-view"><a class="anchor" href="#section-runtime-view"></a>6. Çalışma Zamanı Görünümü</h2>
<div class="sectionbody">
<div class="content">
<p>Çalışma Zamanı Görünümü, bir yazılım sisteminin işlemesi sırasında bileşenler arasındaki etkileşimleri
ve işlevselliği gösteren bir mimari görünümdür.</p>
</div>
<div class="sect2">
<h3 id="__runtime_scenario_1"><a class="anchor" href="#__runtime_scenario_1"></a>6.1. <Çalışma Zamanı Senaryosu 1></h3>
<div class="content">
<div class="imageblock">
<img src="Runtime1RunControl.png" alt="runtime1">
</div>
<div class="navy">Karakter Düzenleme ve Ekipman Ekleme Senaryosu</div>
<p>Bu senaryoda, oyuncu karakterini düzenler. Oyuncu beğendiği itemleri kartına ekler,
bu itemleri satın alır ve karakterine giydirir.</p>
</div>
</div>
<div class="sect2">
<h3 id="__runtime_scenario_2"><a class="anchor" href="#__runtime_scenario_2"></a>6.2. <Çalışma Zamanı Senaryosu 2></h3>
<div class="content">
<div class="imageblock">
<img src="Runtime2RunControl.png" alt="runtime1">
</div>
<div class="navy">Bölüm Tamamlama ve Ödül Senaryosu</div>
<p>Bu senaryoda, oyuncu bir bölümü tamamlar, ödül kazanır ve bonus ödül almak için reklam izlemeyi seçer.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="section-deployment-view"><a class="anchor" href="#section-deployment-view"></a>7. Dağıtım Görünümü</h2>
<div class="sectionbody">
<div class="content">
<p>Dağıtım Görünümü, RunControl oyun sistemindeki yazılım bileşenlerinin fiziksel olarak nasıl dağıtıldığını ve birbirleriyle nasıl etkileşime girdiğini gösteren bir mimari diyagramdır. Bu görünüm, bileşenlerin dağıtıldığı donanım ve ağ yapılarını da içermektedir.</p>
</div>
<div class="sect2">
<h3 id="_infrastructure_level_1"><a class="anchor" href="#_infrastructure_level_1"></a>7.1. Altyapı Level 1</h3>
<div class="content">
<div class="imageblock">
<img src="deploymentRunControl.png" alt="deployement_runcontrol">
</div>
<div class="navy">Bu diyagramda şunlar gösterilmektedir:</div>
<ul>
<li>Mobil cihazlarda çalışan RunControl mobil uygulaması.</li>
<li>Kullanıcı isteklerini alan ve ilgili servislere yönlendiren yük dengeleyici.</li>
<li>Oyun verilerini ve etkileşimleri işleyen oyun sunucuları.</li>
<li>Kullanıcı ve oyun verilerini saklayan veritabanı sunucuları.</li>
<li>Opsiyonel olarak içerik dağıtım ağı (CDN), daha iyi erişilebilirlik ve performans için.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="section-concepts"><a class="anchor" href="#section-concepts"></a>8. Kesintisiz Kavramlar</h2>
<div class="sectionbody">
<div class="content">
<p>"Cross-Cutting Concepts" (Kesintisiz Kavramlar) bölümü, sistemin temel tasarım prensiplerini, kılavuz ilke
ve stratejilerini, genel tasarım desenlerini ve çeşitli bileşenler arasında ortak olan yapısal çözümleri kapsar.</p>
</div>
<div class="sect2">
<h3 id="__em_concept_1_em"><a class="anchor" href="#__em_concept_1_em"></a>8.1. <em><Konsept 1></em></h3>
<div class="content">
<div class="imageblock">
<img src="concept1RunControl.png" alt="concept1">
</div>
<h3 id="section-modularity"><a class="anchor" href="#section-modularity"></a>Modülerlik</h3>
<div class="sectionbody">
<div class="content">
<p>RunControl, bağımsız olarak geliştirilebilen, test edilebilen ve dağıtılabilen modüllerden oluşur. Bu modüller, her birinin belirli bir işlevi yerine getirdiği küçük parçalara bölünmüş yapıdadır. Modüler yapı, oyun içi özelliklerin bağımsız bir şekilde geliştirilmesini sağlar.</p>
<ul>
<li><b>Karakter Yönetimi Modülü:</b> Karakter özelleştirmesi, giydirme, item ekleme gibi işlemleri içerir.</li>
<li><b>Oyun Seviyesi Modülü:</b> Seviyelerin yönetimi, ilerleme durumu ve oyun içi etkileşimleri içerir.</li>
<li><b>Ödül Sistemi Modülü:</b> Oyuncunun tamamladığı bölümlere göre ödüller verir, bonuslar hesaplar.</li>
<li><b>Reklam Modülü:</b> Reklam izleyerek oyuncuya ekstra ödüller sağlar.</li>
</ul>
<p>Bu modüller arasındaki etkileşimler, arayüzler ve protokoller aracılığıyla sağlanır, böylece her bir modülün bağımsızlığını korur.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="__em_concept_2_em"><a class="anchor" href="#__em_concept_2_em"></a>8.2. <em><Konsept 2></em></h3>
<div class="content">
<div class="imageblock">
<img src="concept2RunControl.png" alt="concept1">
</div>
<h3 id="section-security-privacy"><a class="anchor" href="#section-security-privacy"></a>Güvenlik ve Gizlilik</h3>
<div class="sectionbody">
<div class="content">
<p>RunControl'da kullanıcı güvenliği ve veri gizliliği, tasarımın temel unsurlarından biridir. Oyuncu verileri ve oyun içi etkileşimler, aşağıdaki şekilde korunur:</p>
<ul>
<li><b>Veri Şifreleme:</b> Kullanıcı bilgileri, mobil cihazda şifrelenir. Bu şifrelenmiş veri, güvenli bir API üzerinden sunucuya iletilir.</li>
<li><b>Kimlik Doğrulama:</b> Kullanıcı oturum açmadan hiçbir işlem yapılamaz. Kimlik doğrulama, oyun sunucusu ve veritabanı arasında güvenli bağlantılarla gerçekleştirilir.</li>
<li><b>Veri Bütünlüğü:</b> Sunucuda, şifrelenmiş ve doğrulanmış veriler saklanır. Verilerin doğru ve güvenli bir şekilde sunucudan kullanıcıya aktarılması sağlanır.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="section-design-decisions"><a class="anchor" href="#section-design-decisions"></a>9. Mimari Kararlar</h2>
<div class="sectionbody">
<div class="content">
<table>
<tr>
<th>Mimari Kararlar</th>
<th>Motivasyon</th>
<th>Sonuçlar</th>
<th>Değerlendirme</th>
<th>Durum</th>
</tr>
<tr>
<td>Unity ile Geliştirme</td>
<td>Oyun geliştirme için en uygun platformdur, hızlı prototipleme ve çapraz platform desteği sağlar.</td>
<td>Unity ekosistemine hakim olmak gereklidir, oyun optimizasyonu ve platform uyumluluğu gereksinimleri vardır.</td>
<td>Unity, oyun geliştirmeyi hızlandırırken, güçlü araçlar ve geniş bir geliştirici topluluğuna sahiptir.</td>
<td>KA</td>
</tr>
<tr>
<td>Google Ads Entegrasyonu</td>
<td>Oyunculara reklam göstererek gelir elde edilir, kullanıcıya ekstra ödüller sunmak için reklam izleme mekanizmaları sağlanır.</td>
<td>Reklamları entegre etmek ve kullanıcı deneyimini bozmadan ödülleri yönetmek gereklidir.</td>
<td>Google Ads, reklam yönetimi konusunda güçlüdür, ancak oyuncu deneyimini dengelemek önemlidir.</td>
<td>KA</td>
</tr>
<tr>
<td>AR (Artırılmış Gerçeklik) Kullanımı</td>
<td>Oyuncuların karakter tasarımlarını ve öğelerini AR ortamında görselleştirmeleri için AR teknolojisi entegre edilir.</td>
<td>AR cihazları ve Unity AR Framework'ü ile uyumlu bir yapı geliştirmek gereklidir.</td>
<td>AR, kullanıcı deneyimini zenginleştirir ve yenilikçi bir özellik sağlar, ancak donanım uyumluluğu ve optimizasyon gerektirir.</td>
<td>KA</td>
</tr>
<tr>
<td>Veritabanı Kullanılmaması</td>
<td>Veri depolama gereksinimleri olmadığı için uygulama, oyuncu verilerini yerel cihazda tutar ve çevrimdışı çalışma imkanı sunar.</td>
<td>Verilerin cihazda tutulması, veritabanı yönetimini ortadan kaldırır ancak veri senkronizasyonu gereksiz olabilir.</td>