Πριν από μερικές εβδομάδες διοργανώσαμε Έφτιαξαν ένα δωμάτιο γεμάτο με έξυπνες συσκευές και ξεκίνησαν μια μετάδοση στο YouTube από αυτό. Οι παίκτες μπορούσαν να ελέγχουν συσκευές IoT από την ιστοσελίδα του παιχνιδιού. Ο στόχος ήταν να βρουν ένα όπλο κρυμμένο στο δωμάτιο (ένα ισχυρό δείκτη λέιζερ), να το χακάρουν και να βραχυκυκλώσουν το δωμάτιο.
Για να προσθέσουμε λίγη ένταση, τοποθετήσαμε έναν καταστροφέα εγγράφων στο δωμάτιο και τον γεμίσαμε με 200 ρούβλια: ο καταστροφέας εγγράφων έτρωγε ένα χαρτονόμισμα ανά ώρα. Αν κέρδιζες το παιχνίδι, μπορούσες να σταματήσεις τον καταστροφέα εγγράφων και να πάρεις όλα τα υπόλοιπα χρήματα.
Σας το έχουμε ήδη πει Και έργο. Ήρθε η ώρα να μιλήσουμε για το υλικό και πώς συναρμολογήθηκε.

Υπήρχαν πολλά αιτήματα για να δείξουμε τη στιγμή του καθαρισμού του δωματίου - δείχνουμε πώς το αποσυναρμολογούμε
Αρχιτεκτονική Σιδήρου: Διαχείριση Δωματίων
Ξεκινήσαμε να σχεδιάζουμε τη λύση υλικού όταν το σενάριο ήταν ήδη περίπου σαφές, το backend ήταν έτοιμο και είχαμε ένα άδειο δωμάτιο έτοιμο για την εγκατάσταση του εξοπλισμού.
Θυμούμενοι το παλιό αστείο «Το S στο IoT σημαίνει Ασφάλεια», αποφασίσαμε ότι αυτή τη φορά στο σενάριο του παιχνιδιού οι παίκτες αλληλεπιδρούν μόνο με το frontend και το backend του ιστότοπου, αλλά δεν έχουν την ευκαιρία να έχουν άμεση πρόσβαση στο υλικό.
Αυτό έγινε για λόγους ασφάλειας και ψυχαγωγίας: αν οι παίκτες είχαν άμεση πρόσβαση στο υλικό, θα ήταν πολύ πιο δύσκολο να απομονώσουν ασφαλείς και δυνητικά επικίνδυνες ενέργειες, όπως η γρήγορη προώθηση ενός shredder ή ο έλεγχος πυροτεχνημάτων.
Πριν ξεκινήσουμε τον σχεδιασμό, διατυπώσαμε αρκετές αρχές για τον έλεγχο των συσκευών παιχνιδιών, οι οποίες αποτέλεσαν τη βάση για τον σχεδιασμό:
Μην χρησιμοποιείτε ασύρματες λύσεις
Ολόκληρος ο χώρος παιχνιδιών βρίσκεται σε ένα ενιαίο πλαίσιο, κάθε γωνιά του οποίου είναι προσβάσιμη. Δεν υπήρχε πραγματική ανάγκη για ασύρματες συνδέσεις, και αυτές απλώς θα γίνονταν ένα ακόμη σημείο αποτυχίας.
Μην χρησιμοποιείτε ειδικές συσκευές έξυπνου σπιτιού
Κυρίως για λόγους ευελιξίας στην προσαρμογή. Είναι σαφές ότι μπορούμε να προσαρμόσουμε πολλές εκδόσεις συστημάτων έξυπνου σπιτιού σε κουτί με έτοιμο πίνακα διαχείρισης και έλεγχο για την εργασία μας, αλλά το κόστος εργασίας θα ήταν συγκρίσιμο με τη δημιουργία της δικής μας απλής λύσης.
Επιπλέον, ήταν απαραίτητο να επινοηθούν συσκευές που θα έδειχναν ξεκάθαρα ότι οι παίκτες ήταν αυτοί που άλλαζαν την κατάστασή του: ενεργοποιώντας/απενεργοποιώντας το ή ρυθμίζοντας ένα συγκεκριμένο φως στα γράμματα SOKOL.
Συναρμολογήσαμε όλα τα εξαρτήματα από άμεσα διαθέσιμο υλικό που μπορεί να αγοραστεί σε συνηθισμένα καταστήματα ηλεκτρονικών ειδών: μεταξύ των παραδόσεων πίτσας και Diet Coke, οι κούριερ της Chip & Deep και της Leroy έφταναν συνεχώς στο χώρο.
Η επιλογή να συναρμολογήσουμε τα πάντα μόνοι μας απλοποίησε την αποσφαλμάτωση. Η επεκτασιμότητα, ωστόσο, απαιτούσε μεγαλύτερη προσοχή κατά την εγκατάσταση.
Όλα τα ρελέ και το arudino δεν πρέπει να είναι ορατά στο πλαίσιο
Αποφασίσαμε να συγκεντρώσουμε όλα τα ελεγχόμενα στοιχεία σε ένα μέρος και να τα κρύψουμε πίσω από την κάμερα, ώστε να μπορούμε να παρακολουθούμε τη λειτουργικότητά τους και, εάν χρειαστεί, να απομακρυνθούμε προσεκτικά από το οπτικό πεδίο της κάμερας και να αντικαταστήσουμε μια ελαττωματική μονάδα.

Στο τέλος, όλα κρύφτηκαν κάτω από το τραπέζι και η κάμερα εγκαταστάθηκε έτσι ώστε να μην φαίνεται τίποτα κάτω από το τραπέζι. Αυτό ήταν το «τυφλό σημείο» μας για να φτάσει ο μηχανικός μέχρι εκεί.
Ως αποτέλεσμα, καταλήξαμε ουσιαστικά με μία έξυπνη συσκευή: λάμβανε την κατάσταση καθενός από τα μέρη της από το backend και την άλλαζε με την κατάλληλη εντολή.
Από άποψη υλικού, αυτή η συσκευή έλεγχε 6 στοιχεία:
- Αρκετές επιτραπέζιες λάμπες, έχουν λειτουργία on/off και ελέγχονται από τους παίκτες
- Γράμματα στον τοίχο, μπορούν να αλλάξουν το χρώμα τους με την εντολή των παικτών
- Ανεμιστήρες που περιστρέφονται και ανοίγουν τον πίνακα παρουσιάσεων όταν ο διακομιστής είναι υπό φορτίο
- Έλεγχος με λέιζερ μέσω PWM
- Ο Τεμαχιστής που Έφαγε Χρήματα σύμφωνα με το Πρόγραμμα
- Μια μηχανή καπνού που έσβησε πριν από κάθε βολή λέιζερ.

Δοκιμή μηχανής καπνού με λέιζερ
Αργότερα, προστέθηκε ένα φως σκηνής, το οποίο βρισκόταν πίσω από το πλαίσιο και ελέγχονταν ακριβώς όπως τα φώτα από το σημείο 1. Το φως σκηνής λειτουργούσε σε δύο περιπτώσεις: φώτιζε το λέιζερ όταν του τροφοδοτούνταν ρεύμα και φώτιζε το βάρος πριν εκτοξευθεί το λέιζερ σε λειτουργία μάχης.
Τι ήταν αυτή η έξυπνη συσκευή;

Σε όλη τη διαδρομή, ο Γιούρα, ο τεχνικός μας, προσπαθούσε να μην περιπλέξει τα πράγματα και να βρει την πιο απλή και μινιμαλιστική λύση.
Υποτίθεται ότι το VPS θα εκτελούσε απλώς ένα σενάριο που λαμβάνει json με την κατάσταση των συσκευών και το στέλνει στο Arduino που είναι συνδεδεμένο μέσω USB.
Οι ακόλουθες θύρες συνδέθηκαν:
- 16 κανονικά ρελέ (αυτά ήταν που έκαναν τον ήχο κλικ που ακούσατε στο βίντεο. Τα επιλέξαμε κυρίως λόγω αυτού του ήχου)
- 4 ρελέ στερεάς κατάστασης για τον έλεγχο καναλιών PWM, όπως ανεμιστήρες,
- Ξεχωριστή έξοδος PWM για λέιζερ
- έξοδος που παράγει σήμα στην ταινία LED
Ακολουθεί ένα παράδειγμα εντολής json που ήρθε στο ρελέ από τον διακομιστή
{"power":false,"speed":0,"period":null,"deviceIdentifier":"FAN"}Και αυτό είναι ένα παράδειγμα της λειτουργίας με την οποία η ομάδα έφτασε στον Αρουντίνο
def callback(ch, method, properties, body):
request = json.loads(body.decode("utf-8"))
print(request, end="n")
send_to_serial(body)Για να παρακολουθήσουμε τη στιγμή που το λέιζερ τελικά καίει το σχοινί και το βάρος πετάει μέσα στο ενυδρείο, φτιάξαμε ένα μικρό κουμπί που ενεργοποίησε την πτώση του βάρους και έστελνε ένα σήμα στο σύστημα.

Κουμπί παρακολούθησης κίνησης βάρους
Σε αυτό το σήμα, έπρεπε να ανάψουν βόμβες καπνού φτιαγμένες από μπάλες πινγκ πονγκ. Τοποθετήσαμε 4 βόμβες καπνού απευθείας στο περίβλημα του σερβιτόρου και συνδέσαμε ένα νήμα από νικέλιο σε αυτές, το οποίο έπρεπε να θερμανθεί και να λειτουργήσει ως ασφάλεια.

Θήκη με βόμβες καπνού και κινεζική γιρλάντα

Arduino
Σύμφωνα με το αρχικό σχέδιο, πραγματοποιήθηκαν δύο ενέργειες στο Arduino.
Αρχικά, όταν λαμβανόταν ένα νέο αίτημα, το αίτημα αναλύονταν χρησιμοποιώντας τη βιβλιοθήκη ArduinoJson. Στη συνέχεια, σε κάθε ελεγχόμενη συσκευή αντιστοιχίζονταν δύο από τις ιδιότητές της:
- κατάσταση λειτουργίας "ενεργοποίηση" ή "απενεργοποίηση" (προεπιλεγμένη κατάσταση)
- η περίοδος για την οποία είναι ενεργοποιημένη η συσκευή - ο χρόνος σε μικροδευτερόλεπτα από την έναρξη της πλακέτας, όταν είναι καιρός να την απενεργοποιήσετε, δηλαδή να φέρετε την κατάσταση στο πρότυπο
Η τελευταία φορά ορίστηκε κατά τη λήψη της αντίστοιχης παραμέτρου σε JSON, αλλά μπορούσε να παραλειφθεί, στη συνέχεια η τιμή ορίστηκε σε 0 και δεν πραγματοποιήθηκε μηδενισμός.
Η δεύτερη ενέργεια που εκτελούσε το Arduino σε κάθε κύκλο ήταν η ενημέρωση των καταστάσεων, δηλαδή ο έλεγχος αν υπήρχε ανάγκη να ενεργοποιηθεί κάτι ή αν ήταν ώρα να απενεργοποιηθεί κάποια συσκευή.
Δείκτης λέιζερ - το ίδιο Megatron 3000

Αυτή είναι μια κανονική μονάδα κοπής και σήμανσης με λέιζερ χειροκίνητης εστίασης LSMVR450-3000MF 3000mW 450nm.
Γράμματα Γεράκι
Κατασκευάστηκαν πολύ απλά - απλώς αντιγράψαμε τα γράμματα από το λογότυπο, τα κόψαμε από χαρτόνι και μετά τα κολλήσαμε με ταινία LED. Για να το κάνουμε αυτό, έπρεπε να κολλήσουμε τα κομμάτια της ταινίας μεταξύ τους, με 4 επαφές σε κάθε ραφή, αλλά το αποτέλεσμα άξιζε τον κόπο. Ο σχεδιαστής μας, ο Πάσα, έδειξε θαύματα δεξιοτεχνίας, έχοντας κάνει αυτό σε λιγότερο από λίγες ώρες.

Πρώτες δοκιμές της συσκευής IoT και τελευταίες πινελιές
Κάναμε τις πρώτες δοκιμές και ταυτόχρονα λάβαμε νέες εργασίες. Το θέμα είναι ότι στη μέση της διαδικασίας, ένας πραγματικός παραγωγός ταινιών και εικονολήπτης από το VGIK, ο Ilya Serov, εντάχθηκε στην ομάδα - κατασκεύασε το καρέ, πρόσθεσε επιπλέον κινηματογραφικό φωτισμό και άλλαξε ελαφρώς το σενάριο του παιχνιδιού, ώστε η πλοκή να είναι πιο συναισθηματική και η εικόνα πιο δραματική και θεατρική.
Αυτό αύξησε σημαντικά την ποιότητα, αλλά εμφανίστηκαν στοιχεία που έπρεπε επίσης να συνδεθούν με το ρελέ και να καταγραφεί ο αλγόριθμος λειτουργίας.
Ένα άλλο πρόβλημα ήταν το λέιζερ: κάναμε κάποια πειράματα με διαφορετικούς τύπους σχοινιών και λέιζερ διαφορετικής ισχύος. Για τη δοκιμή, απλώς κρεμάσαμε το βάρος κάθετα στο σχοινί.
Όταν έτρεχε με δοκιμαστικό token, η ισχύς που ρυθμιζόταν μέσω του PWM ήταν μικρότερη από 10% και δεν προκαλούσε ζημιά στο σχοινί ακόμη και με μεγάλη έκθεση.
Για τη λειτουργία μάχης, το λέιζερ αποεστιάστηκε σε ένα σημείο διαμέτρου περίπου 10 mm και διέσχισε με σιγουριά το σχοινί με το φορτίο από απόσταση περίπου ενός μέτρου.

Έτσι, το λέιζερ λειτούργησε άψογα στις δοκιμές.
Όταν αρχίσαμε να δοκιμάζουμε τα πάντα στο δωμάτιο σε ένα κρεμαστό βάρος, αποδείχθηκε ότι δεν είναι τόσο εύκολο να στερεώσουμε με ασφάλεια το λέιζερ. Στη συνέχεια, όταν το σχοινί καίγεται, λιώνει, τεντώνεται και μετατοπίζεται από την αρχική εστίαση.

Αλλά δεν λειτουργούσε πια έτσι: το σχοινί μετακινήθηκε
Ο Ιλία μετακίνησε το λέιζερ στο αντίθετο άκρο του δωματίου από το σχοινί, έτσι ώστε η δέσμη λέιζερ να διασχίζει ολόκληρη τη σκηνή και να φαίνεται ωραία στο κάδρο, γεγονός που διπλασίασε την απόσταση.
Έχοντας πραγματοποιήσει αρκετά ακόμη πειράματα με το κάψιμο του σχοινιού ήδη στη μάχη, αποφασίσαμε να μην δελεάσουμε τη μοίρα και να ασφαλίσουμε το κόψιμο του σχοινιού με ένα σύρμα από νικέλιο. Αυτό κατέστρεψε το νήμα 120 δευτερόλεπτα μετά την ενεργοποίηση του λέιζερ σε λειτουργία μάχης. Αυτό, καθώς και το κλείσιμο του καλωδίου και η ανάφλεξη των βομβών καπνού όταν ενεργοποιείται η επαφή αποσύνδεσης, αποφασίσαμε να το ενσωματώσουμε απευθείας στο υλικό του μικροελεγκτή.

Το νήμα που τελικά έκαψε το σχοινί εκτός οθόνης
Έτσι, εμφανίστηκε μια τρίτη εργασία που έλυσε το Arduino - να υπολογίσει τις ακολουθίες που σχετίζονται με την εκτέλεση αυτών των εντολών.
Αποφασίσαμε επίσης να αναθέσουμε στο Arduino την ευθύνη της καταμέτρησης χρημάτων στην τηλεόραση και της εκκίνησης του shredder. Αρχικά, υποτίθεται ότι το backend θα το έκανε αυτό και το τρέχον υπόλοιπο θα ήταν ορατό στον ιστότοπο, και στην τηλεόραση θα εμφανίζαμε σχόλια από το YouTube ως ένα επιπλέον διαδραστικό στοιχείο, υπονοώντας στους θεατές ότι τα γεγονότα στο δωμάτιο συμβαίνουν σε πραγματικό χρόνο.
Αλλά κατά τη διάρκεια της δοκιμαστικής εκτέλεσης, ο Ilya παρακολούθησε τη σκηνή και πρότεινε να εμφανιστεί η ισορροπία του παιχνιδιού στη μεγαλύτερη οθόνη: πόσα χρήματα έχουν απομείνει, πόσα έχουν καταναλωθεί και μια αντίστροφη μέτρηση μέχρι την επόμενη εκτόξευση του shredder.
Συνδέσαμε το Arduino με την τρέχουσα ώρα: κάθε ολόκληρη ώρα ξεκινούσε ο καταστροφέας. Η εικόνα στην τηλεόραση παρεχόταν με τη βοήθεια του Raspberry, το οποίο εκείνη τη στιγμή λάμβανε ήδη αιτήματα από τον διακομιστή και τα έστελνε στο Arduino για εκτέλεση. Οι εικόνες με νομισματικούς δείκτες σχεδιάζονταν καλώντας την εταιρεία βοηθητικών προγραμμάτων της κονσόλας, κάτι σαν αυτό.
image = subprocess.Popen(["fim", "-q", "-r", "1920×1080", fim_str]), где fim_str
Και διαμορφώθηκε με βάση το απαιτούμενο ποσό ή χρόνο.
Δημιουργήσαμε τις εικόνες εκ των προτέρων: απλώς τραβήξαμε ένα έτοιμο βίντεο με χρονοδιακόπτη και εξάγαμε 200 εικόνες.
Αυτοί είναι οι μηχανισμοί που είχαν προγραμματιστεί στο σταυρό. Μέχρι να ξεκινήσει η τελική αντίστροφη μέτρηση, όλοι οδηγήσαμε προς το σημείο, οπλιστήκαμε με πυροσβεστήρες και καθίσαμε να περιμένουμε τη φωτιά (η οποία φούντωνε με πλήρη ισχύ μόνο μέσα στη διχόνοια)
Πώς να κάνετε μια μετάδοση που διαρκεί μια εβδομάδα: Επιλογή κάμερας
Για την αποστολή, χρειαζόμασταν μια συνεχή μετάδοση στο YouTube για 7 ημέρες - τόσο καιρό είχαμε σχεδιάσει για τη μέγιστη διάρκεια του παιχνιδιού. Υπήρχαν δύο πράγματα που θα μπορούσαν να μας εμποδίσουν:
- Υπερθέρμανση της κάμερας από συνεχή λειτουργία
- Διακοπή σύνδεσης στο διαδίκτυο
Η κάμερα έπρεπε να παρέχει τουλάχιστον εικόνα Full HD για να κάνει το παιχνίδι και την παρακολούθηση του δωματίου άνετο.
Αρχικά, εξετάσαμε κάμερες web που κατασκευάζονται για streamers. Μειώναμε τον προϋπολογισμό μας, οπότε δεν θέλαμε να αγοράσουμε κάμερα, και όπως αποδείχθηκε, δεν τις νοικιάζουν. Εκείνη τη στιγμή, ως εκ θαύματος βρήκαμε μια κάμερα Xbox Kinect να βρίσκεται γύρω από το σπίτι μου, την τοποθετήσαμε στο δωμάτιο και ξεκινήσαμε μια δοκιμαστική μετάδοση για μια εβδομάδα.
Η κάμερα λειτούργησε καλά και δεν υπερθερμάνθηκε, αλλά ο Ilya παρατήρησε σχεδόν αμέσως ότι δεν είχε ρυθμίσεις, συγκεκριμένα, ήταν αδύνατο να ρυθμιστεί η έκθεση.
Ο Ilya προσπάθησε να φέρει τον τύπο μετάδοσης πιο κοντά στα πρότυπα της παραγωγής ταινιών και βίντεο: να μεταδώσει μια δυναμικά μεταβαλλόμενη φωτεινή σκηνή με φωτεινές πηγές, σκοτεινό φόντο και αντικείμενα στο κάδρο. Ταυτόχρονα, ήθελε να διατηρήσει την επεξεργασία της εικόνας τόσο στα φωτεινά σημεία όσο και στις σκιές, με ελάχιστο ψηφιακό θόρυβο.
Επομένως, παρόλο που το Kinect αποδείχθηκε αξιόπιστο στις δοκιμές και δεν απαιτούσε κάρτα λήψης βίντεο (άλλο ένα σημείο αποτυχίας), αποφασίσαμε να το εγκαταλείψουμε. Μετά από τρεις ημέρες δοκιμών διαφορετικών καμερών, ο Ilya επέλεξε τη Sony FDR-AX53 - μια μικρή, αξιόπιστη βιντεοκάμερα, οικονομική για ενοικίαση, αλλά ταυτόχρονα με επαρκή αξιοπιστία και χαρακτηριστικά εικόνας.
Νοικιάσαμε μια κάμερα, την ενεργοποιήσαμε για μια εβδομάδα σε συνδυασμό με μια κάρτα λήψης βίντεο και συνειδητοποιήσαμε ότι με αυτήν μπορούσαμε να βασιστούμε σε συνεχή μετάδοση σε όλη την αποστολή.
Δημιουργία ταινίας: σκηνικά και φωτισμός
Η εργασία στον φωτισμό απαιτούσε μια ορισμένη φινέτσα. Έπρεπε να δημιουργήσουμε μια φωτιστική παρτιτούρα με ελάχιστα μέσα:
1. Φωτισμός αντικειμένων όταν οι παίκτες τα βρίσκουν (λέιζερ, βάρος), καθώς και συνεχές φως στον καταστροφέα εγγράφων. Χρησιμοποιήθηκαν Dedolight 150 - αξιόπιστα και συμπαγή φωτιστικά με λάμπες αλογόνου χαμηλής τάσης, που σας επιτρέπουν να εστιάσετε τη δέσμη σε ένα συγκεκριμένο αντικείμενο χωρίς να επηρεάσετε το φόντο και άλλα αντικείμενα.
2. Πρακτικό φωτιστικό παιχνιδιού - επιτραπέζιο φωτιστικό, επιδαπέδιο φωτιστικό, αστέρι, γιρλάντα. Όλο το πρακτικό φως ήταν αρμονικά κατανεμημένο στο πλαίσιο για να φωτίζει την περιοχή της εικόνας, στο εσωτερικό υπήρχαν λάμπες LED με θερμοκρασία χρώματος 3200K, η λάμπα στο επιδαπέδιο φωτιστικό ήταν καλυμμένη με ένα κόκκινο φίλτρο Rosco για να δημιουργήσει μια ασυνήθιστη χρωματική πινελιά.

Είμαι μηχανικός στη μαμά μου ή θα ξεκινήσω αύριο
Πώς κρατήσαμε ίντερνετ και ηλεκτρικό ρεύμα
Το ζήτημα της ανοχής σφαλμάτων αντιμετωπίστηκε σχεδόν όπως σε ένα κέντρο δεδομένων: αποφάσισαν να μην παρεκκλίνουν από τις βασικές αρχές και έκαναν κράτηση σύμφωνα με το συνηθισμένο σχήμα N+1.
Αν η μετάδοση στο YouTube σταματήσει, αυτό σημαίνει ότι δεν θα είναι πλέον δυνατή η επανασύνδεση χρησιμοποιώντας τον ίδιο σύνδεσμο και η συνέχιση της μετάδοσης. Αυτή ήταν μια κρίσιμη στιγμή και το δωμάτιο βρισκόταν σε ένα κανονικό γραφείο.
Για αυτό, χρησιμοποιήσαμε έναν δρομολογητή που βασίζεται στο OpenWRT και το πακέτο mwan3. Έλεγχε αυτόματα τη διαθεσιμότητα του καναλιού κάθε 5 δευτερόλεπτα και, σε περίπτωση διακοπής, άλλαζε σε εφεδρικό μόντεμ με το Yota. Ως αποτέλεσμα, η αλλαγή στο εφεδρικό κανάλι πραγματοποιήθηκε σε λιγότερο από ένα λεπτό.

Ήταν επίσης εξίσου σημαντικό να εξαλειφθούν οι διακοπές ρεύματος, καθώς ακόμη και μια βραχυπρόθεσμη αύξηση της τάσης θα προκαλούσε επανεκκίνηση όλων των υπολογιστών.
Γι' αυτό επιλέξαμε το αδιάλειπτο τροφοδοτικό ippon innova g2 3000, το οποίο θα τροφοδοτούσε όλες τις συσκευές παιχνιδιών: η συνολική κατανάλωση ενέργειας του συστήματός μας ήταν περίπου 300 watt. Θα διαρκούσε 75 λεπτά, αρκετά για τους σκοπούς μας.
Αποφασίσαμε να θυσιάσουμε τον επιπλέον φωτισμό σε περίπτωση που κόβεται το ρεύμα στο δωμάτιο - δεν το συνδέσαμε στο UPS.
Ευχαριστώ
- Σε όλη την ομάδα , ο οποίος συνέλαβε την ιδέα και υλοποίησε το παιχνίδι.
- Ξεχωριστά από τους διαχειριστές του RUVDS, για την παρακολούθηση της εργασίας των διακομιστών, το φορτίο ήταν αποδεκτό και όλα λειτουργούσαν κανονικά στη συνήθη λειτουργία.
- Στο καλύτερο αφεντικό για το γεγονός ότι σε απάντηση στην κλήση «Έχω μια ιδέα: θα πάρουμε έναν σερβιτόρο, θα βάλουμε ένα ενυδρείο πάνω του και θα κρεμάσουμε ένα βάρος από πάνω του, μπαμ, μπαμ, όλα πλημμυρίζουν με νερό, βραχυκύκλωμα, φωτιά!» λέει πάντα με σιγουριά «κάν' το!»
- σας ευχαριστώ και ιδιαίτερες ευχαριστίες στον Mikhail Karpov όχι μόνο για το ότι έκανε ό,τι μπορούσε και μας επέτρεψε να παραβιάσουμε τους Όρους Χρήσης, αλλά ακόμη και για το ότι μας έδωσε έναν επαγγελματικό λογαριασμό για ένα έτος όταν μας είπαν για το έργο.
- Προς τον Ιλία Σέροφ που συμμετείχε και έγινε συμπαραγωγός του έργου, έτοιμος να σέρνεται μισή νύχτα κολλώντας ταινίες LED, αναζητώντας τεχνικές λύσεις και κάνοντας τα πάντα για να μας κάνει μια πραγματική ταινία.
- για το ότι ήταν πάντα έτοιμοι να σώσουν την κατάσταση όταν οι άλλοι σήκωναν τα χέρια ψηλά, μπορς, ηθική υποστήριξη και συζητήσεις μέχρι το πρωί.
- που μας συνέδεσε με τον καλύτερο δοκιμαστή στυλό στη χώρα, ο οποίος μας συμβούλεψε και μας βοήθησε με τις εργασίες.
- για την ωραία παραγωγή βίντεο όλων των βίντεο.
- για σταθερό χέρι και προθυμία για δουλειά μέχρι το τέλος.
- Καλά για σχεδόν πάντα ζεστή πίτσα.
Και οι μεγαλύτερες ευχαριστίες απευθύνονται στους παίκτες για όλα τα συναισθήματα που βιώσαμε ενώ εσείς κατακλύζατε την αποστολή για δύο μέρες χωρίς ύπνο, ακόμη και χωρίς να αναβάλλετε τη δουλειά.
Άλλα άρθρα σχετικά με την αποστολή με καταστροφή διακομιστή
Πηγή: www.habr.com
