Kirjoittaja Aihe: HTML5 ja Canvas - Mitä kokemuksia teillä on kyseisistä ??  (Luettu 3343 kertaa)

HannuTapio

  • Käyttäjä
  • Viestejä: 1264
  • OpenJDK + JavaScript testailuu ja säätelyy.
    • Profiili
    • Hannun netti internet sotaisa aihe lautapelejä.
HTML5 ja Canvas!

HTML5 sisältää Canvas toiminnan jolla JavaScriptin avulla ruudulle voi piirtää monenmoista grafiikkaa, niin Viivoja ja kurveja kuin Imagejakin.
Mitenkä laajaan käyttöön uskaltaa suositella HTML5 ja Canvas yhdistelmää ??

Onko huono idea jo nyt ennen oikeata HTML5 läpilyöntiä rakentaa kokonainen sivusto HTML5 Canvas 2D taikka 3D avulla ??

Ymmärtääkseni monenmoista animaatiota saisi asetettua helpolla ja omasta sivustosta näyttävämmän ??

En itse vielä ole koodannut riviäkään, jotenka kuinka tuon HTML5 tehot riittävät useaan canvakseen yhdelle sivulle,
esim. slideshow imageille ja animoidut buttonit taikka sitten vaihtoehtoisena yksi iso koko ruudun w95% h95% canvas..

//.....

Kiitos..
« Viimeksi muokattu: 20.09.10 - klo:13.33 kirjoittanut JariTapio »
Suomalainen Linux netti lautapelejä indie .. ( Gimp, Inkscape, Netbeans, Audacity ) ..
Blogi - [ https://lautapelimestari.com ]
Pelisivut - [ https://lautapelisivusto.com | https://hannunsankarit.com | https://lautapelikenraalit.com ]
--

peran

  • Vieras
Kaikki merkittävät selainvalmistajat ovat sitoutuneet toteuttamaan HTML5 toiminnallisuuksia selaimissaan.

Siis Mozilla, MickroSoft, Apple kuin Operakin.

Nykyisistä selaimista vain Explorer ei vielä tue Canvasta, ja tuleva versio ilmeisestikin tukee, joten varsin turvallinen valinta sen käyttäminen on.

Explorer 6 on jo harvinaisuus, ja nykyään Windows-käyttäjät käyttävät automaattisia päivityksiä yleensä, joten sikälikin se on varsin turvallista olettaa ihmisten käyttävän selaimensa tuoreinta versiota.

HannuTapio

  • Käyttäjä
  • Viestejä: 1264
  • OpenJDK + JavaScript testailuu ja säätelyy.
    • Profiili
    • Hannun netti internet sotaisa aihe lautapelejä.
JavaScript!

Vielä ihmettelen tätä HTML5 + Canvas yhdistelmää, Minulla on jo aika mittava kokemus Java ohjelmointi kielestä,
mutta, Javascript ja HTML ja PHP ovat aika vähällä huomiolla tullut ohitettua.

Ajattelin että josko sittenkin rakentaisin nämä minun lautapelini HTML5 ohjelmointi kielen avulla ja peli lisänä sitten kaikki ARKADE
pelit linkkaisin SUN Java SE Appletteihin.

Tässä olisi se etu että ei tarvitse mitään asennuksia selaimiin lautapelieni kohdalla, Javascript kun kuulemma on selaimiin rakennettuna.

Kysymyksinä ->

1)
Millä teksti editorilla olisi parhain tuki Javascript kieleen, olisi mukava jos luokat aukeisivat vaihtoehtoihin kun koodaa.

2)
Kuinka Javascriptillä kykenee hallitsemaan peliä joka siis kulkee koodissa eteenpäin, eikä vain ole kuvat ruudulle tyylinen.
Eli Javascriptin tulisi suorittaa livenä erillaisia funktioita ja käsitellä muuttujia.

3)
Kuinka ruudunpäivitys on rakennettuna HTML5 kielessä, onko tuplabufferi mahdollinen, esim piirtää yhteen koko ruudun kokoiseen
imageen jonka sitten piirtää ruudulle ??

4)
Renderinghints ??

5)
Ohjelman kulun sääteleminen TIMER avulla, onko mahdollista lukea Millisekuntteja taikka Nanosekuntteja ??

6)
Jos rakennan nämä peruslautapelit ja sotapelini HTML5 ja Canvas yhdistelmällä, niin, kuinka olisi parhain rakentaa live UDP
yhteys serveriin.
HTML5 Asiakas -> PHP -> ServerinJavaSovellusKäsittelee -> Takaisin PHP kautta HTML5 Asiakas1 ja Asiakas2.
En tälläistä ole aiemmin rakentana ??

Tämä HTML5 ja myös LWJGL molemmat täytyy vielä käydä lävitse ennen kuin julkaisen näitä lautapelejäni, tällä hetekellä lautapelini siis ovat
Sun Java SE muodossa Appletissa.

Että tuollaista..

//.....

Kiitos..
« Viimeksi muokattu: 23.09.10 - klo:20.37 kirjoittanut JariTapio »
Suomalainen Linux netti lautapelejä indie .. ( Gimp, Inkscape, Netbeans, Audacity ) ..
Blogi - [ https://lautapelimestari.com ]
Pelisivut - [ https://lautapelisivusto.com | https://hannunsankarit.com | https://lautapelikenraalit.com ]
--

peran

  • Vieras
Kysymyksinä ->

1)
Millä teksti editorilla olisi parhain tuki Javascript kieleen, olisi mukava jos luokat aukeisivat vaihtoehtoihin kun koodaa.

Mitkä luokat ?
Ok... Saahan JavaScriptillä tehtyä luokan kaltaisia ja taitaa class olla varattu sana, mutta minun mielestäni ne eivät aivan perinteisiä luokkia ole. Oliota siinä toki on.

Lainaappas kirjastosta (se on jo sen verran vanha, ettei kannata enää ostaa) David Flanaganin JavaScript Tehokäyttäjän opas. Lue se läpi. Sen jälkeen lue Ryan Aslesonin ja Nathaniel T. Schuttan Ajax Tehokas hallinta. Sitten oli vielä joku kolmas kelpo teos JavaScriptistä, mutta kun ei löydy kotikirjastostani, niin en jaksa sitä kaivaa esiin. Joku JavaScript teho-kirja kuitenkin.

Noi kaksi riittää perustietouteen JavaScriptistä, vaikka vielä niissä ei ole HTML 5:stä sanaakaan.

HTML 5:lle
http://diveintohtml5.org/about.html
ja sen etusivu
http://diveintohtml5.org/

2)
Kuinka Javascriptillä kykenee hallitsemaan peliä joka siis kulkee koodissa eteenpäin, eikä vain ole kuvat ruudulle tyylinen.
Eli Javascriptin tulisi suorittaa livenä erillaisia funktioita ja käsitellä muuttujia.

Niinhän se JavaScript tekee.

3)
Kuinka ruudunpäivitys on rakennettuna HTML5 kielessä, onko tuplabufferi mahdollinen, esim piirtää yhteen koko ruudun kokoiseen
imageen jonka sitten piirtää ruudulle ??

On. Sen voi tehdä laittamalla kaksi canvas-objektia päällekkäin ja käyttää visibleä. Ehkä suoraviivaisempikin, löytyy, mutta sillä sen pystyy ainakin toteuttamaan.

5)
Ohjelman kulun sääteleminen TIMER avulla, onko mahdollista lukea Millisekuntteja taikka Nanosekuntteja ??

Mihin sä nanosekunteja tarttet ?
Millisekunnit nyt ainakin onnistuu. Mikrosekunteja en ole testannut. Nanosekunneissa ei ole tolkkua.

6)
Jos rakennan nämä peruslautapelit ja sotapelini HTML5 ja Canvas yhdistelmällä, niin, kuinka olisi parhain rakentaa live UDP
yhteys serveriin.
HTML5 Asiakas -> PHP -> ServerinJavaSovellusKäsittelee -> Takaisin PHP kautta HTML5 Asiakas1 ja Asiakas2.
En tälläistä ole aiemmin rakentana ??

Mä en tekis noin. Jos käytät serverissä Javaa, niin laita serveriisi java-ympäristö ja unohda php. jni:kohan oli oletuspääte niillä. http://en.wikipedia.org/wiki/Apache_Tomcat

HannuTapio

  • Käyttäjä
  • Viestejä: 1264
  • OpenJDK + JavaScript testailuu ja säätelyy.
    • Profiili
    • Hannun netti internet sotaisa aihe lautapelejä.
6)
Jos rakennan nämä peruslautapelit ja sotapelini HTML5 ja Canvas yhdistelmällä, niin, kuinka olisi parhain rakentaa live UDP
yhteys serveriin.
HTML5 Asiakas -> PHP -> ServerinJavaSovellusKäsittelee -> Takaisin PHP kautta HTML5 Asiakas1 ja Asiakas2.
En tälläistä ole aiemmin rakentana ??

Mä en tekis noin. Jos käytät serverissä Javaa, niin laita serveriisi java-ympäristö ja unohda php. jni:kohan oli oletuspääte niillä. http://en.wikipedia.org/wiki/Apache_Tomcat

PHP:sta serveriin!

Tarkoitatko että käyttäisin Java EE servlettejä, minulla ei oikeastaan ole kokemusta kuin Java standard editionista.
Kuinka servlettiin otetaan yhteys HTML taikka PHP tiedostosta ( eli = kuinka servlet ladataan selaimesta ) ??

Vielä hieman laajennan kysymystä koskemaan myös graafisen rajapinnan, onko servletillä mahdollista rakentaa myös graafinen pinta selaimeen ??

Vielä yksi lisä kysymys, ( hieman kaukaa ) UDP pakettien siirtoon asiakkaan ja palvelimen välillä, kuinka C# sopisi tarkoitukseeni, entä C# graafinen rajapinta selaimeen ??

//.....

Kiitos..

« Viimeksi muokattu: 23.09.10 - klo:20.46 kirjoittanut JariTapio »
Suomalainen Linux netti lautapelejä indie .. ( Gimp, Inkscape, Netbeans, Audacity ) ..
Blogi - [ https://lautapelimestari.com ]
Pelisivut - [ https://lautapelisivusto.com | https://hannunsankarit.com | https://lautapelikenraalit.com ]
--

peran

  • Vieras
6)
Jos rakennan nämä peruslautapelit ja sotapelini HTML5 ja Canvas yhdistelmällä, niin, kuinka olisi parhain rakentaa live UDP
yhteys serveriin.
HTML5 Asiakas -> PHP -> ServerinJavaSovellusKäsittelee -> Takaisin PHP kautta HTML5 Asiakas1 ja Asiakas2.
En tälläistä ole aiemmin rakentana ??

Mä en tekis noin. Jos käytät serverissä Javaa, niin laita serveriisi java-ympäristö ja unohda php. jni:kohan oli oletuspääte niillä. http://en.wikipedia.org/wiki/Apache_Tomcat

PHP:sta serveriin!

Tarkoitatko että käyttäisin Java EE servlettejä, minulla ei oikeastaan ole kokemusta kuin Java standard editionista.
Kuinka servlettiin otetaan yhteys HTML taikka PHP tiedostosta ( eli = kuinka servlet ladataan selaimesta ) ??

Siis kuten jo aiemmin mainitsin unohda php. Käytä HTML:n dynaamisena kielenä JavaServer Pageseja (JSP).
Älä siis käytä HTML:n dynaamisena kielenä PHP:tä.


Siis minusta on jo enemmän kuin tarpeeksi 2 ohjelmointikieltä, niin on turhaa käyttää yhdessä sovelluksessa enempää kuin on tarpeellista.

HannuTapio

  • Käyttäjä
  • Viestejä: 1264
  • OpenJDK + JavaScript testailuu ja säätelyy.
    • Profiili
    • Hannun netti internet sotaisa aihe lautapelejä.
6)
Jos rakennan nämä peruslautapelit ja sotapelini HTML5 ja Canvas yhdistelmällä, niin, kuinka olisi parhain rakentaa live UDP
yhteys serveriin.
HTML5 Asiakas -> PHP -> ServerinJavaSovellusKäsittelee -> Takaisin PHP kautta HTML5 Asiakas1 ja Asiakas2.
En tälläistä ole aiemmin rakentana ??

Mä en tekis noin. Jos käytät serverissä Javaa, niin laita serveriisi java-ympäristö ja unohda php. jni:kohan oli oletuspääte niillä. http://en.wikipedia.org/wiki/Apache_Tomcat

PHP:sta serveriin!

Tarkoitatko että käyttäisin Java EE servlettejä, minulla ei oikeastaan ole kokemusta kuin Java standard editionista.
Kuinka servlettiin otetaan yhteys HTML taikka PHP tiedostosta ( eli = kuinka servlet ladataan selaimesta ) ??

Siis kuten jo aiemmin mainitsin unohda php. Käytä HTML:n dynaamisena kielenä JavaServer Pageseja (JSP).
Älä siis käytä HTML:n dynaamisena kielenä PHP:tä.


Siis minusta on jo enemmän kuin tarpeeksi 2 ohjelmointikieltä, niin on turhaa käyttää yhdessä sovelluksessa enempää kuin on tarpeellista.

JSP!

Millä tavoin on rakennettava HTML JavaScript muuttujan siirtäminen JSP kautta palvelimen käsittelyyn ja takaisin kahdelle asiakkaalle ??

Eli kaksi asiakasta HTML5 + Canvas pelin kimpussa, peli on live peli, ½ - 2 UDP pakettia sekunnissa.
Mikä on teidän ratkaisunne kahden asiakkaan HTML5 Canvaksen pitämiseen synkroonissa ??

//-----

Kiitos..
Suomalainen Linux netti lautapelejä indie .. ( Gimp, Inkscape, Netbeans, Audacity ) ..
Blogi - [ https://lautapelimestari.com ]
Pelisivut - [ https://lautapelisivusto.com | https://hannunsankarit.com | https://lautapelikenraalit.com ]
--

peran

  • Vieras
JSP!

Millä tavoin on rakennettava HTML JavaScript muuttujan siirtäminen JSP kautta palvelimen käsittelyyn ja takaisin kahdelle asiakkaalle ??

Eli kaksi asiakasta HTML5 + Canvas pelin kimpussa, peli on live peli, ½ - 2 UDP pakettia sekunnissa.
Mikä on teidän ratkaisunne kahden asiakkaan HTML5 Canvaksen pitämiseen synkroonissa ??

Tohon pariin pakettiin sekunnista luultavasti riittää normaali Ajax-kyselykin (eli http). Jos sen nopeus ei riitä, joutuu odottelemaan tovin, että isot pojat saavat standardoitua html 5-soketit. Toivottavasti siihen tulee myös UDP-paketit. Itse asiassa, minun ratkaisua ei ole, kun en ole ohjelmoimassa saittia. En myöskään osaa JSP:tä enkä Servlettejä niin paljoa, että osaisin tehdä edes Session Id:n tehdä sillä, joten täältä ei hirvittävästi apuja ole luvassa ohjelmoinnin saralle.

Java Server pages:
http://en.wikipedia.org/wiki/JavaServer_Pages

Servletit:
http://en.wikipedia.org/wiki/Java_Servlet

Siis itse tekisin, jos olisi tarve jotenkin seuraavasti...

JavaServer_Pages:lla tekisin käyttäjälle näkyvän sivun, johon olisi laitettu tarvittavat liimat pelin koodiin.

Servleteillä ehkä tekisin pelien logiikan. Samalla olisi mietittävä, kuinka paljon tapahtumista tapahtuu asiakaskoneessa, ja kuinka paljon tapahtuu serverissä. Lisäksi pitäisi aina tarkistaa asiakaskoneen tuottamien syötteiden validius, koska asiakkaaseen ei tietenkään lueteta.

Kaikki toiminnallisuus, minkä asiakaskone tekee, pitää ohjelmoida JavaScriptillä, ja kaikki toiminnallisuus, minkä tekee serveri pitää ohjelmoida Javalla.

Kaikki tapahtumat, jotka ovat satunnaistettuja tulee tehdä serverissä, koska muuten asiakas voi sorkkia tuloksia itselle sopivaisempaan suuntaan. (Luultavasti näin ei tehdä läheskään kaikissa internet peleissä, mutta siihen tulisi ainakin pyrkiä).

Mokkulalle saattaa olla haasteellista päästä 0,5 sekunnin palautteisiin (ainakin ajaxilla), mutta se nyt on sun murhe.