vpant / thesis-p11pant-twittercityminecraftmod

Minecraft Forge Mod and Twitter Data Mining software
https://twittercity.vasilispantelis.tech
0 stars 0 forks source link

visualization tools and aesthetics #4

Closed vpant closed 6 years ago

vpant commented 6 years ago

Καλησπέρα,

δημιούργησα αυτό το issue για να σε ενημερώσω λίγο για την εξέλιξη της πτυχιακής. Δεν έχω ξεκινήσει ακόμα να γράφω κώδικα για αυτό δεν φαίνομαι πολύ ενεργός στο github.

Κάποια κύρια θέματα που με προβληματίζουν και εργάζομαι πάνω σε αυτά είναι:

1) Πως θα είναι η πόλη (εμφάνιση, δόμηση, υλικό για τα σπίτια κ.α.)

Στόχος μου είναι το τελικό αποτέλεσμα να μοιάζει όσο πιο φυσικό γίνεται, όπως για παράδειγμα σε αυτή την φωτογραφία. 2017-12-11_19 02 28 Η αρχική μου σκέψη ήταν να δημιουργώ τα κτήρια προγραμματιστικά block ανά block, εάν και είναι ο τρόπος που διαχειρίζομαι τις κατασκευές στις προηγούμενες εργασίες μου τον θεώρησα λίγο μη επεκτάσιμο και δύσκολα διαχειρίσιμο. Για αυτό μετά από λίγη έρευνα βρήκα κάποια αρχεία με την ονομασία schematics τα οποία χρησιμοποιούνται από το community του minecraft που ασχολούνται με moding για την ανταλλαγή κτηρίων, σχεδίων ακόμα και ολόκληρους κόσμους. Οπότε σκέφτομαι να προγραμματίσω ένα reader για τέτοια αρχεία που θα περιέχουν κατασκευές όπως σπίτια και ύστερα θα τα χτίζω βάζοντας προγραμματιστικά στην σωστή θέση. Επιπλέον βρήκα αυτό το πρόγραμμα το οποίο μπορεί να μετατρέψει 3D μοντέλα σε "blueprints" για minecraft, όπως θα δείτε παρακάτω, και να τα κάνει export σε .schematic αρχεία. bb_step1_model bb_step2_voxelized

2) Συγχρονισμός πόλης client-side: δυναμική πόλη (διαφορετική για κάθε client) ή στατική (ίδια για κάθε client)

Σκεφτόμουν ότι θα ήταν καλύτερα για κάθε client, πιο συγκεκριμένα για κάθε world, να δημιουργείται μια διαφορετική πόλη. Βέβαια αυτό σηκώνει κάποιο προβλήματα όπως είναι ο συσχετισμός των tweets με το κάθε block. Μέχρι τώρα ο συσχετισμός γινόταν αποθηκεύοντας τις συντεταγμένες κάθε block στην βάση δεδομένων μαζί με το ID του tweet. Διαβάζω το API του Minecraft Forge και συγκεκριμένα το storage system που μου παρέχει για να δω εάν το ID μπορώ να το αποθηκεύσω τοπικά στο client για κάθε ένα block που δημιουργείται.

3) Textures των blocks που θα χρησιμοποιηθούν για το χτίσιμο τις πόλης

Στις παλιότερες εργασίες μου χρησιμοποίησα ένα block που δημιούργησα ο ίδιος και σαν texture είχε μία από τις παρακάτω εικόνες (κάθε σπίτι είχε διαφορετικό χρώμα): blue_twitter_block_side yellow_twitter_block_side green_twitter_block_side Όταν είχα μιλήσει με τον κύριο Χωριανόπουλο, είπαμε ότι δεν φαίνεται καλό texture για ένα σπίτι και συμφώνησα. Παρόλα αυτά, δεν είμαι σίγουρος ότι θα είναι καλύτερο να χρησιμοποιήσω blocks από το κανονικό minecraft όπως είναι το ξύλο ή η πέτρα διότι δεν θα ξεχωρίζει από τις υπόλοιπες κατασκευές με αυτά τα blocks για τα οποία δεν ευθύνεται το mod μου (η διαφορά είναι ότι το block της πόλης μου θα είναι συνδεδεμένο με ένα tweet που άμα του κάνεις δεξί click θα σου δίνει πληροφορίες σχετικά με αυτό). Για αυτό το θέμα δεν έχω σκεφτεί κάποια λύση ακόμα πέρα από το ότι θα μπορούσα να προσθέσω στα textures των blocks του κύριου minecraft το logo του twitter, δεν είναι όμως και η τελική μου απόφαση.

4) Ιστοσελίδα πτυχιακής

Εργάζομαι και λίγο στην ιστοσελίδα τις πτυχιακής. Προσπαθώ να σκεφτώ ένα καλό logo, δημιούργησα το παρακάτω αλλά δεν είμαι σίγουρος εάν μου αρέσει και εάν θα το χρησιμοποιήσω (είναι pixelized επίτηδες και κάθε pixel είναι ένα block που υπάρχει στο minecraft). twitter_city_logo-width-400px

@diogenisAl Θα χαρώ να ακούσω και δικά σου σχόλια σε περίπτωση που έχεις να κάνεις. Τέλος στα θέματα που δημιουργώ να κάνω και tag τον κύριο Χωριανόπουλο ή μόνο εσένα;

diogenisAl commented 6 years ago

Καλησπέρα @vpant Πολύ καλή τεκμηρίωση των σκέψεών σου. Η μόνη πρόταση/ιδέα που θα μπορούσα να κάνω, είναι για το Νο 2 (Συγχρονισμός πόλης client-side). Αν και δεν ξέρω κατά πόσο θα μπορούσε να γίνει στην εφαρμογή σου, σε αντίστοιχες περιπτώσεις (στις οποίες χειριζόμαστε ιστοσελίδες), μπορούμε να αποθηκεύσουμε τις client-sied πληροφορίεςστο DOM της ιστοσελίδας. Τώρα, σχετικά με τα tag, εάν, έχεις μια ερώτηση που θέλεις απάντηση και από τους 2 μας, καλό θα ήταν να μας tagάρεις και τους 2. Στο παρόν issue, την πρώτη φορά μπορείς να κάνεις tag και τον @epidrome (<-μόλις το έκανα) για να μπει κάποια στιγμή στη λίστα με τους participants του issue.

vpant commented 6 years ago

Καλησπέρα και σε εσένα @diogenisAl . Η λογική μου, για το θέμα 2, ήταν να αποθηκεύονται στην μεριά του client το πρόβλημα μου ήταν ότι πρέπει οι πληροφορίες να παραμένουν μετά από restart του παιχνιδιού και να μην χάνονται. Διαβάζοντας το API βρήκα μία κλάση, την TileEntity, η οποία προσφέρει νομίζω την λειτουργία που χρειάζομαι. Θα πρέπει να την τεστάρω βέβαια πρώτα για να είμαι σίγουρος.

diogenisAl commented 6 years ago

@vpant Μια ιδέα είναι και η εξής, εφόσον συμφωνήσει και ο @epidrome βέβαια: Θα σου πρότεινα τα κτήρια που δημιουργούνται να είναι "θεματικά". Για παράδειγμα, τα κτήρια να δημιουργούνται με tweets από συναισθήματα (π.χ. ένα κτήριο με loneliness, ένα άλλο κτήριο με happiness κλπ). Άλλο παράδειγμα, τα κτήρια να δημιουργούνται με tweets πολιτικού περιεχομένου ή άλλο θέμα της επικαιρότητας. Με αυτόν τον τρόπο μπορείς να εξειδικεύσεις περαιτέρω την εφαρμογή σε data visualization.

Αυτό που με προβληματίζει είναι ότι ενδεχομένως να μην επαρκούν τα tweets με τη συγκεκριμένη θεματολογία σαν δομικά υλικά των κτηρίων. Ίσως ένας συνδυασμός της αρχικής ιδέας σου με αυτήν που σου γράφω να δουλέψει καλύτερα.

epidrome commented 6 years ago

συμφωνώ ότι το φιλτράρισμα του τουιτερ θέλει λίγο σκέψη,

ναι μεν τα κτίρια είναι η προφανής αναζήτηση αλλά δεν δίνει και τόσο καλά αποτελέσματα: https://twitter.com/search?q=construction%20building&src=typd

για αυτό άλλωστε πρότεινα την δημιουργία dashboard #6

τα συναισθήματα που λέει ο @diogenisAl είναι μια λύση που έχει δουλευτεί και έχει σχετικές βιβλιοθηκες, δεν ξέρω αν είναι η βέλτιση και αν υπάρχουν εναλλακτικές.

epidrome commented 6 years ago

@vpant κοίταξα το παραδοτέο 2 αλλά δεν βρήκα απάντηση στο παραπάνω σχόλιο μου οπότε το ξανανοίγω

vpant commented 6 years ago

Καλησπέρα κύριε @epidrome ,

συζητήσαμε με τον @diogenisAl και σαν keywords για τα tweets πρότεινα να χρησιμοποιηθούν διάφορα αισθήματα τα οποία θα μπορέσω να συνδέσω με χρώματα και να γίνει οπτικοποίηση σαν blocks στο minecraft τα οποία θα είναι το δομικό στοιχείο των σπιτιών. Προς το παρόν δεν έχω αποφασίσει εάν κάθε σπίτι θα έχει θέμα μόνο ένα συναίσθημα (μονόχρωμο ) ή πολλά (πολύχρωμο).

Όσον αφορά το dashboard στα TO-DOs του #7 αναφέρω ότι θα μεταφέρω τα keywords σε εξωτερικό μέσο αποθήκευσης για την ευκολότερη πρόσβαση αυτών από εξωτερική διεπαφή ή εφαρμογή. Δεν είμαι σίγουρος τι εννοούσατε με την έννοια του Dashboard αλλά θεωρώ για να δημιουργήσω κάτι ολοκληρωμένο θα χρειαστεί αρκετό χρόνο και δεν ξέρω πόσο απαραίτητο θα είναι για την εργασία μου. Παρόλα αυτά θα προσπαθήσω ο κώδικας μου να είναι όσο πιο φιλικός για την πρόσβαση και τροποποίηση των παραμέτρων από ένα administration dashboard.

epidrome commented 6 years ago

@vpant @diogenisAl για ποιο λόγο είναι καλή ιδέα να οπτικοποιηθούν τα συναισθήματα ως δομικά στοιχεία στο minecraft? θέλω να πω, υπάρχει κάποια τεκμηρίωση για αυτό το σκεπτικό? αν υπάρχει θα πρέπει αργά (=στο κείμενο της πτυχιακής) ή γρήγορα (=εδώ και τώρα) να γραφτεί και να βελτιωθεί.

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

diogenisAl commented 6 years ago

@vpant Για την τεκμηρίωση, να υπενθυμίσω το https://scholar.google.gr/, καθώς και άλλες ιστοσελίδες/εργαλεία. Για οποιαδήποτε απορία σχετικά με αυτά, μπορούμε να κανονίσουμε νέα επικοινωνία.

vpant commented 6 years ago

Καλησπέρα κύριε @epidrome και @diogenisAl ,

με συγχωρείται που δεν έχω απαντήσει τόσο καιρό αλλά έχω ξεκινήσει να γράφω το mod και πιο συγκεκριμένα γράφω κώδικα που θα δημιουργεί τους δρόμους και θα "χαρτογραφεί" την πόλη σε έναν δισδιάστατο πίνακα και θα χρησιμοποιείται για το χτίσιμο της πόλης. Παρακάτω θα παραθέσω ένα screenshot από ένα σχετικά ικανοποιητικό αποτέλεσμα (υπάρχουν ακόμα λογικά λάθη που διορθώνω).

2018-03-11_18 44 33

Επιπλέον, θα ξεκινήσω να υλοποιώ το Restful API Service για τη βάση δεδομένων, το οποίο θα γραφτεί σε Java σαν Servlet που θα χρησιμοποιεί σαν Web Server τον Jetty και τον Nginx σαν proxy (έτσι ώστε ο Nginx να σερβίρει τα requests για την ιστοσελίδα και να στέλνει στον Jetty τα requests για το Rest API). Τέλος, θα χρησιμοποιηθούν ένα από τα εξής Frameworks: Javalin ή Sparkjava

Κύριε @epidrome τα συναισθήματα θα συνδυαστούν με διάφορα χρώματα το οποία κάθε ένα προκαλεί και το αντίστοιχο συναίσθημα (σελ. 32 έχει αποτελέσματα της έρευνας, επίσης δυσκολεύομαι λίγο να βρω δωρεάν επιστημονικά άρθρα σχετικά με το παραπάνω επιχείρημα). Με αυτό το σκεπτικό τα σπίτια της πόλης θα είναι πλέον θεματικού χαρακτήρα που θα αφορά τα συναισθήματα.

Για το dashboard μπορώ να φτιάξω αντικείμενο που θα αναπαριστά τις "ρυθμίσεις" για την εύρεση των tweets, διαχωρίζοντας το από τον τρόπο αποθήκευσης. Για αρχή να αποθηκεύονται σε ένα αρχείο (properties ή xml) και ύστερα στην βάση δεδομένων και θα μπορούν να αλλαχτούν μέσω του Rest API (χρειαζόμαστε Authentication System για την ελεγχόμενη πρόσβαση σε αυτές τις ρυθμίσεις).

@diogenisAl Εάν θες να με ρωτήσεις περαιτέρω για αυτά που έχω κάνει ως τώρα είμαι διαθέσιμος να μιλήσουμε μέσω Skype (ή όπως αλλιώς σε βολεύει).

diogenisAl commented 6 years ago

@vpant Καλύτερα να περιμένω να προχωρήσει η υλοποίηση του mod και να υπάρχει ένα demo πριν αρχίσω τις απορίες.