Perinteinen tykkipeli jossa pelaaja yrittää osua laivoihin tykin kulmaa ja ammuksen nopeutta muuttamalla.
Haasteena osumiselle on laivojen liikkumisen lisäksi dynaaminen fysiikkasimulaatio, joka ottaa ilmanvastuksen, maapallon pyörimisen sekä tuulen vaikutuksen huomioon. Viimeisessä ominaisuudessa tuulen suunta ja nopeus haetaan reaaliajassa Ilmatieteenlaitoksen rajapinnasta Harmajan mittausasemalta.
Pelin pisteet tallennetaan sekä paikallisesti, että julkisesti nettiin.
Projektin käytössä on käyttöjärjestelmien välillä pieniä eroja. Dokumentaatiot linuxille ja windowsille:
Lataa repositorio manuaalisesti, navigoi Tykkipeli-kansion juureen ja anna run.sh skriptalle ajo-oikeudet
git clone https://github.com/sainigma/ot-harjoitustyo.git
cd ot-harjoitustyo/Tykkipeli
chmod +x ./run.sh
Mahdollisia komentoja run-skriptalle ovat test, jolla ajetaan testit ja luodaan kattavuusraportti, checkstyle joka ajaa lintterin ja luo siitä raportin, sekä javadoc joka luo projektille javadocin.
./run.sh test xdg-open
./run.sh checkstyle xdg-open
./run.sh javadoc xdg-open
Viimeinen parametri määrittää millä selaimella syntyneet raportit ajetaan (esim xdg-open avaa järjestelmän oletusselaimella, ./run.sh javadoc firefox avaisi firefoxilla), ja sen voi jättää pois jos riittää pelkkä raportin päivitys.
Ohjelma käännetään run-skriptan build-komennolla ja mahdollisia parametreja ovat:
./run.sh build lin64
./run.sh build win64
./run.sh build osx64
./run.sh build win32
./run.sh build all
Kääntäminen luo projektista Tykkipeli_natiivi.zip (esim Tykkipeli_lin64.zip) tiedoston Tykkipeli/builds/ kansioon halutulla natiivilla. Parametri all kääntää projektin kaikille natiiveille helpompaa releasea varten.
Pura Tykkipeli_natiivi.zip kansioon ja joko tuplaklikkaa Tykkipeli.jar tiedostoa tai aja kansiossa
java -jar Tykkipeli.jar
git clone https://github.com/sainigma/ot-harjoitustyo.git
cd ot-harjoitustyo/Tykkipeli
mvn compile exec:java -Dexec.mainClass=game.Main
Tykkipeli kansion juuressa:
mvn package
Tai jos kohdenatiivi on eri kuin nykyinen käyttöjärjestelmä:
mvn -P lwjgl-natives-linux-amd64 package
mvn -P lwjgl-natives-windows-amd64 package
mvn -P lwjgl-natives-macos-amd64 package
mvn -P lwjgl-natives-windows-x86 package
Paketti luodaan target -kansioon, ja sen voi ajaa komennolla
java -jar Tykkipeli.jar
Julkaisua varten siirrä Tykkipeli.jar kansioon ja kopioi kansion juureen Tykkipelin assets kansio. Zippaa.
Tykkipeli kansion juuressa:
mvn test
mvn test jacoco:report
mvn jxr:jxr checkstyle:checkstyle
mvn javadoc:javadoc
Generoitua kattavuusraporttia voi tarkastella polussa Tykkipeli/target/site/jacoco/index.html
Generoitua javadocdokumentaatiota voi tarkastella polussa Tykkipeli/target/site/apidocs/index.html