Menu
Forums
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Trending
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
Upgrades
Log in
Register
What's new
Search
Search
Search titles only
By:
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Server Development
Habbo Retros
Habbo Development
Kirsikka - A bridge between modern and oldskool
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Gabrielle" data-source="post: 452689" data-attributes="member: 65851"><p>Hello,</p><p></p><p>First I want to say, this is a hobby project. It will be open source and free, but it isn't meant to be something big. I write this as it's just something I wanted to try out. If it turns out well, I don't mind contributing to the community. If it doesn't, well whatever happens, it is still a good learning experience and loads of fun!</p><p></p><p><strong>What is Kirsikka?</strong></p><p>Kirsikka is the Finnish word for Cherry. It is a Habbo like client written in Javascript (/HTML5, using canvas for rooms mostly). It contains of a server and a client. Both are open source. Tech stuff is written below. It is not the usual client development you see nowadays though (people trying to remake current client), but it's a combination of having oldskool music in a super modern bar: the client will use modern techniques as well as old features, making it fun for R63 lovers as well as oldskool lovers.</p><p></p><p><strong>Technical stuff client</strong></p><p>- Client uses pure JS (so no pixi.js or whatever)</p><p>- Client tries to use as little frameworks as possible (things like jQuery will <strong>only</strong> be used if it's way too much code to do without it, such as animations, draggable plugin etc.)</p><p>- Client currently uses sso login, but it might contain an option to enable username(/email) + password login</p><p>- Client uses JSON files for configuration and things like texts / variables (or the replacement for it)</p><p></p><p><strong>Technical stuff server</strong></p><p>- Server is written in C# using DotNet Core</p><p>- Server uses dependency injection</p><p>- Server uses MySQL as database storage</p><p>- Server uses Fleck for websockets</p><p></p><p><strong>Git repository</strong></p><p><a href="https://github.com/Gabriellexo97/kirsikka-server" target="_blank">Server</a></p><p><a href="https://github.com/Gabriellexo97/kirsikka-client" target="_blank">Client</a></p><p></p><p>Keep in mind code is not 100% up to date plus a lot of things have to be done better. More code is here on the thread.</p><p></p><p><strong>Code snippets</strong></p><p>I decided to show code snippets <strong>not </strong>in the repo, since the rest you can see on your own there.</p><p></p><p>[CODE=javascript]import {Credits} from "./items/credits.js";</p><p>import {Hotel} from "./items/hotel.js";</p><p></p><p>export function Toolbar() {</p><p> this.items = [];</p><p></p><p> this.initialize = function() {</p><p> this.items.push(new Credits());</p><p> this.items.push(new Hotel());</p><p></p><p> let toolbar = document.createElement('div');</p><p> toolbar.id = 'toolbar';</p><p></p><p> let i = 0;</p><p> for (; i < this.items.length; i++) {</p><p> const element = document.createElement('div');</p><p> element.classList.add('item');</p><p> element.title = this.items[i].tooltip;</p><p> element.addEventListener('click', this.items[i].onclick);</p><p></p><p> const imgelement = document.createElement('img');</p><p> imgelement.src = this.items[i].icon;</p><p> imgelement.alt = this.items[i].alt;</p><p></p><p> element.appendChild(imgelement);</p><p> toolbar.appendChild(element);</p><p> }</p><p></p><p> document.getElementById('game').appendChild(toolbar);</p><p> $('.item').tooltip();</p><p> };</p><p>}[/CODE]</p><p></p><p>[CODE=javascript]import {createElement} from "../../utils/dom.js";</p><p></p><p>export function Credits() {</p><p> this.icon = 'images/toolbar/credits.png';</p><p> this.tooltip = 'View your currency data';</p><p> this.alt = 'credits-icon';</p><p></p><p> this.onclick = function() {</p><p> const element = createElement('div', {'id': 'purse'});</p><p> document.getElementById('game').appendChild(element);</p><p></p><p> /** TODO: Place this in css file */</p><p> const textElement = document.createElement('div');</p><p> textElement.style.position = 'absolute';</p><p> textElement.style.left = '0';</p><p> textElement.style.top = '54px';</p><p> textElement.style.width = '332px';</p><p> textElement.innerHTML = 'You have <span class="creditAmount">' + (window.localStorage.credits||'1000') + '</span> credits';</p><p> textElement.style.textAlign = 'center';</p><p> textElement.style.fontFamily = 'VolterBold, verdana, arial, sans-serif';</p><p> textElement.style.fontSize = '9px';</p><p></p><p> element.appendChild(textElement);</p><p></p><p> $(element).draggable();</p><p> };</p><p>}[/CODE]</p><p></p><p><strong>Images</strong></p><p>There's just one cause there's not much to see but expect more, by the way what I got isn't 100% done yet.</p><p></p><p>[SPOILER="Screens"]<img src="https://i.imgur.com/1srLFO6.png" alt="" class="fr-fic fr-dii fr-draggable " style="" />[/SPOILER]</p><p></p><p><strong>Extra info + credits</strong></p><p>If you have tips or I do things wrong, PLEASE tell me (and don't say ".... sucks" but tell me how to do it better). I don't mind criticism but if you have it make sure I can learn from it.</p><p>Also in case you have any ideas for the client let me know (feature wise for example or something else, let me know)</p><p></p><p>I want to thank a few people / sites:</p><p></p><p>- Stackoverflow for a thousand times it helped me out (where would I be without...)</p><p>- KittyChloe from ra******** for helping me out with a few things</p><p>- Jabbo for a few examples on some stuff</p><p>- Google images for a few images like background image</p><p>- <a href="https://habboemotion.com/resource/129" target="_blank">https://habboemotion.com/resource/129</a> for the Volter & Volter Bold fonts</p></blockquote><p></p>
[QUOTE="Gabrielle, post: 452689, member: 65851"] Hello, First I want to say, this is a hobby project. It will be open source and free, but it isn't meant to be something big. I write this as it's just something I wanted to try out. If it turns out well, I don't mind contributing to the community. If it doesn't, well whatever happens, it is still a good learning experience and loads of fun! [B]What is Kirsikka?[/B] Kirsikka is the Finnish word for Cherry. It is a Habbo like client written in Javascript (/HTML5, using canvas for rooms mostly). It contains of a server and a client. Both are open source. Tech stuff is written below. It is not the usual client development you see nowadays though (people trying to remake current client), but it's a combination of having oldskool music in a super modern bar: the client will use modern techniques as well as old features, making it fun for R63 lovers as well as oldskool lovers. [B]Technical stuff client[/B] - Client uses pure JS (so no pixi.js or whatever) - Client tries to use as little frameworks as possible (things like jQuery will [B]only[/B] be used if it's way too much code to do without it, such as animations, draggable plugin etc.) - Client currently uses sso login, but it might contain an option to enable username(/email) + password login - Client uses JSON files for configuration and things like texts / variables (or the replacement for it) [B]Technical stuff server[/B] - Server is written in C# using DotNet Core - Server uses dependency injection - Server uses MySQL as database storage - Server uses Fleck for websockets [B]Git repository[/B] [URL='https://github.com/Gabriellexo97/kirsikka-server']Server[/URL] [URL='https://github.com/Gabriellexo97/kirsikka-client']Client[/URL] Keep in mind code is not 100% up to date plus a lot of things have to be done better. More code is here on the thread. [B]Code snippets[/B] I decided to show code snippets [B]not [/B]in the repo, since the rest you can see on your own there. [CODE=javascript]import {Credits} from "./items/credits.js"; import {Hotel} from "./items/hotel.js"; export function Toolbar() { this.items = []; this.initialize = function() { this.items.push(new Credits()); this.items.push(new Hotel()); let toolbar = document.createElement('div'); toolbar.id = 'toolbar'; let i = 0; for (; i < this.items.length; i++) { const element = document.createElement('div'); element.classList.add('item'); element.title = this.items[i].tooltip; element.addEventListener('click', this.items[i].onclick); const imgelement = document.createElement('img'); imgelement.src = this.items[i].icon; imgelement.alt = this.items[i].alt; element.appendChild(imgelement); toolbar.appendChild(element); } document.getElementById('game').appendChild(toolbar); $('.item').tooltip(); }; }[/CODE] [CODE=javascript]import {createElement} from "../../utils/dom.js"; export function Credits() { this.icon = 'images/toolbar/credits.png'; this.tooltip = 'View your currency data'; this.alt = 'credits-icon'; this.onclick = function() { const element = createElement('div', {'id': 'purse'}); document.getElementById('game').appendChild(element); /** TODO: Place this in css file */ const textElement = document.createElement('div'); textElement.style.position = 'absolute'; textElement.style.left = '0'; textElement.style.top = '54px'; textElement.style.width = '332px'; textElement.innerHTML = 'You have <span class="creditAmount">' + (window.localStorage.credits||'1000') + '</span> credits'; textElement.style.textAlign = 'center'; textElement.style.fontFamily = 'VolterBold, verdana, arial, sans-serif'; textElement.style.fontSize = '9px'; element.appendChild(textElement); $(element).draggable(); }; }[/CODE] [B]Images[/B] There's just one cause there's not much to see but expect more, by the way what I got isn't 100% done yet. [SPOILER="Screens"][IMG]https://i.imgur.com/1srLFO6.png[/IMG][/SPOILER] [B]Extra info + credits[/B] If you have tips or I do things wrong, PLEASE tell me (and don't say ".... sucks" but tell me how to do it better). I don't mind criticism but if you have it make sure I can learn from it. Also in case you have any ideas for the client let me know (feature wise for example or something else, let me know) I want to thank a few people / sites: - Stackoverflow for a thousand times it helped me out (where would I be without...) - KittyChloe from ra******** for helping me out with a few things - Jabbo for a few examples on some stuff - Google images for a few images like background image - [URL]https://habboemotion.com/resource/129[/URL] for the Volter & Volter Bold fonts [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Server Development
Habbo Retros
Habbo Development
Kirsikka - A bridge between modern and oldskool
Top