Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

specifications #6

Closed
epidrome opened this issue Dec 20, 2017 · 14 comments
Closed

specifications #6

epidrome opened this issue Dec 20, 2017 · 14 comments

Comments

@epidrome
Copy link
Contributor

προδιαγραφές συστήματος:

@vpant
Copy link
Owner

vpant commented Dec 25, 2017

Εργαλεία και προδιαγραφές πτυχιακής εργασίας

Παρακάτω παρατίθενται επιγραμματικά τα εργαλεία που θα χρησιμοποιηθούν για την υλοποίηση της πτυχιακής όπως επίσης και προδιαγραφές που θα την αποτελούν:

Εργαλεία

  • Java JDK: γλώσσα προγραμματισμού.
  • Eclipse IDE: πρόγραμμα ανάπτυξης κώδικα (κυρίως Java).
  • Minecraft Forge API: βασική βιβλιοθήκη γραμμένη σε java που επιτρέπει την δημιουργία modifications στο minecraft.
  • Mapcrafter: πρόγραμμα που οπτικοποιεί ένα αρχείο κόσμου του minecraft χάρτη προσβάσιμο από browser.
  • Git: version control στο κώδικα της πτυχιακής και εύκολος συγχρονισμός του στο Github.
  • Wordpress: CMS για δημιουργία ιστοσελίδων.
  • VPS από Okeanos: φιλοξενία της ιστοσελίδας της πτυχιακής και του Minecraft server.

Προδιαγραφές

  • Minecraft Mod:
    • Χτίσιμο της πόλης ανάλογα με το πλήθος των tweets.
    • Πρόσβαση, μέσω κάποιου UI, στα tweets που έχτισαν την πόλη.
  • Πρόγραμμα εξόρυξης δεδομένων που φιλτράρει και αποθηκεύει τα δεδομένα (tweets).
  • Rest API που θα παρέχει εύκολη πρόσβαση από οποιονδήποτε (μπορεί και εγγραφή αν στο μέλλον είναι απαραίτητο από την εφαρμογή)
  • Ιστοσελίδα πτυχιακής που θα αποτελείται:
    • Rendered του map που θα χρησιμοποιεί ο Minecraft Server της πτυχιακής.
    • Documentation του Rest API.
    • Documentation κώδικα.
    • Πληροφορίες για το mod και τις λειτουργίες του.

@vpant
Copy link
Owner

vpant commented Dec 25, 2017

Εάν δεν έχετε κάποια σχόλια να κάνετε κύριε @epidrome ή @diogenisAl θα ενημερώσω και τα README αρχεία στο παρόν αποθετήριο και του thesis.

@vpant
Copy link
Owner

vpant commented Dec 25, 2017

Επίσης χρόνια σας πολλά, ξεχάστηκα πριν 😃

@epidrome
Copy link
Contributor Author

@vpant @diogenisAl
χρόνια πολλά
οι προδιαγραφές θα μπορούσαν να εμπλουτιστούν με κάποια πιο συγκεκριμένα σημεία που παρουσίασες #4

@vpant
Copy link
Owner

vpant commented Dec 26, 2017

Θέλετε να αναλύσω λίγο παραπάνω κάθε προδιαγραφή; Όσο αφορά το θέμα #4 δεν έχω κατασταλάξει ακόμα στο τρόπο διαχείρισης και προσθήκη των κτηρίων. Γράφω λίγο κώδικα για να δω ποιος
είναι ο καλύτερος τρόπος και θα πάρει λίγο καιρό για να το τελειώσω και να σιγουρευτώ ότι αυτός ο τρόπος είναι και ο καλύτερος.

@epidrome
Copy link
Contributor Author

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

@diogenisAl
Copy link

@vpant @epidrome Xρόνια πολλά & από εμένα!

@vpant
Copy link
Owner

vpant commented Feb 11, 2018

Παραδοτέο 2

Εύρεση αναγκαίων εργαλείων, εφαρμογή τους και μία αρχική χρήση. Δημιουργίας λίστας από τις λειτουργίες που θα ήταν επιθυμητό να απαρτίζεται το πρόγραμμα.

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

Εργαλεία

  • Java JDK: γλώσσα προγραμματισμού.
  • Eclipse IDE: πρόγραμμα ανάπτυξης κώδικα (κυρίως Java).
  • Minecraft Forge API: βασική βιβλιοθήκη γραμμένη σε java που επιτρέπει την δημιουργία modifications στο minecraft.
  • Mapcrafter: πρόγραμμα που οπτικοποιεί ένα αρχείο κόσμου του minecraft σε χάρτη προσβάσιμο από browser.
  • Git: version control στο κώδικα της πτυχιακής και εύκολος συγχρονισμός του στο Github.
  • Wordpress: CMS για δημιουργία ιστοσελίδων.
  • VPS από Okeanos: φιλοξενία της ιστοσελίδας της πτυχιακής και του Minecraft server.

Προδιαγραφές

  • Minecraft Mod:
    • Χτίσιμο της πόλης ανάλογα με το πλήθος των tweets.
    • Πρόσβαση, μέσω κάποιου UI, στα tweets που έχτισαν την πόλη.
  • Πρόγραμμα εξόρυξης δεδομένων που φιλτράρει και αποθηκεύει τα δεδομένα (tweets).
  • Rest API που θα παρέχει εύκολη πρόσβαση από οποιονδήποτε (μπορεί και εγγραφή αν στο μέλλον είναι απαραίτητο από την εφαρμογή)
  • Ιστοσελίδα πτυχιακής που θα αποτελείται:
    • Rendered του map που θα χρησιμοποιεί ο Minecraft Server της πτυχιακής.
    • Documentation του Rest API.
    • Documentation κώδικα.
    • Πληροφορίες για το mod και τις λειτουργίες του.

Χαρακτηριστικά εργασίας

Στόχος είναι το mod στο Minecraft που θα δημιουργηθεί σε αυτή την εργασία να ενσωματωθεί στην λογική και στα γραφικά του παιχνιδιού και, σε καμία περίπτωση, να μην περιορίσει τον παίχτη. Κάποια κύρια σημεία που θέλουν ιδιαίτερη προσοχή για να το πετύχουμε αυτό είναι:

Εμφάνιση και δόμηση (υλικό για τα σπίτια κ.α.) της πόλης

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

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

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

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

Textures των blocks

Στις παλιότερες εργασίες μου χρησιμοποίησα ένα block που δημιούργησα ο ίδιος και σαν texture είχε μία από τις παρακάτω εικόνες (κάθε σπίτι είχε διαφορετικό χρώμα):

blue_twitter_block_side yellow_twitter_block_side green_twitter_block_side

Παρόλα αυτά τα textures δεν φαίνονται αρκετά ωραία όταν τα βλέπεις στο σύνολό τους σε ένα κτήριο και προκαλεί μία αίσθηση μονοτονίας. Στην παρούσα εργασία τα blocks των κτηρίων θα έχουν textures από τα ήδη υπάρχοντα blocks του minecraft όπως Stone, Wood κ.α. Παρακάτω μπορείτε να δείτε τα διαθέσιμα blocks στο Minecraft.

template1

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

Ως τώρα για την ιστοσελίδα της πτυχιακής έχω δημιουργήσει το logo που θα χρησιμοποιήσω. Πιο κάτω θα επισυνάψω μια φωτογραφία του αλλά με λίγα λόγια χρησιμοποίησα ένα περίγραμμα κτηρίων τα οποία μετά από επεξεργασία στο photoshop το περίγραμμα αποτελείται από pixels όπως και τα γραφικά του Minecraft.
logo2

@vpant
Copy link
Owner

vpant commented Feb 11, 2018

@epidrome @diogenisAl Περιμένω τυχόν σχόλια που έχετε για να φτιάξω ένα PR για το κεντρικό αποθετήριο

@diogenisAl
Copy link

@vpant Έχω μια απορία σχετικά με το "Client-side συγχρονισμός: δυναμική πόλη (διαφορετική για κάθε client)", αλλά μπορούμε να το συζητήσουμε την Τρίτη.
Αν δεν υπάρχει κάποια άλλη παρατήρηση, μπορείς να προχωρήσεις στο p/r και εκεί, αν χρειαστεί, θα λάβεις περαιτέρω ανατροφοδότηση

@vpant
Copy link
Owner

vpant commented Feb 11, 2018

Να περιμένω και σχόλιο από τον κύριο Χωριανόπουλο ή να το ετοιμάσω τώρα το PR;

@epidrome
Copy link
Contributor Author

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

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

@epidrome
Copy link
Contributor Author

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

@vpant
Copy link
Owner

vpant commented Feb 11, 2018

Όταν λέτε μια κονσόλα διαχείρισης τι έχετε στο νου σας; Κονσόλα διαχείρισης για τα tweets που συλλέγονται ή για την ρύθμιση διάφορων παραμέτρων που χρειάζονται. Προς το παρόν το keywords για το search στο twitter γίνονται στον κώδικα και τα consumer_secret και consumer_key διαβάζονται από αρχείο .properties (configuration file) έτσι ώστε ο μελλοντικό διαχειριστής να μπορέσει να συνδέσει εύκολα την εφαρμογή του. Επιπλέον η γεωγραφική θέση δεν περιορίζεται καθόλου, βέβαια αυτό δεν είναι καθόλου δύσκολο να αλλαχτεί. Θα το θεωρούσατε βασική λειτουργία αυτό στην εργασία μου; Από την μια ένα admin dashboard θα μπορούσε να κάνει αρκετά ποια δυναμικό το script για την εξόρυξη των tweets αλλά δεν το είχα σκεφτεί σαν επιλογή γιατί η λειτουργία του script ήταν προκαθορισμένη.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants