Introduction

Welcome to a new development blog series for Selene! Since Selene is in heavy development, we thought it would be a good idea to keep you all in the loop about what's going on internally by writing about it every so often. We'll likely be sharing new posts every couple of weeks or so depending on how much there is to share. With all of that out of the way, let's get started here with a brief overview about what we're currently doing. # Sequoia If you haven't already seen the info card on our homepage, Selene will be using a custom server that we've developed called "Sequoia." Sequoia is a non-Odin based source written entirely in Kotlin, which is essentially a "better Java" in the sense that it is far less verbose than Java, making it easier to read and write. It also utilizes PostgreSQL as the primary database backend (instead of MySQL) and Lua for scripting (instead of JavaScript). As a result, we've seen much greater performance and stability from Sequoia compared to our previous source on Helios. Another primary reason we decided to write a completely new source was in order to better support our custom client. Since we were able to start from scratch, we were able to design it with support for multiple versions in mind. Because of this, even though Sequoia was initially written with v62 support, it can easily support multiple versions, with the active version being set via a configuration file. Currently, Sequoia is undergoing some major internal refactoring in order to clean up some weaker parts of the codebase, namely the way skills are handled and some other structural details. In the process, v83 support is being added to ensure that the codebase is structured well for supporting multiple versions, since we will be making our own custom version for the client eventually. We also plan to release Sequoia publicly at some point in the future as a high quality, easy to use v62 or v83 server, which are two of the most popular versions that servers run. A lot of work has been put into the stability and performance of Sequoia, which means that Selene's launch will be nice and smooth compared to most server launches that crash and burn horribly, as we're also familiar with… The codebase is also a lot easier to work with and maintain, meaning bug fixes and new features will be nice and fast! # Selene (The Client) "Selene" is also the name of the custom client that we are currently developing. Selene is written in Rust, which is essentially a more modern, safer alternative to C++ (although it was mostly chosen so we wouldn't have to deal with the bloated monstrosity that is C++). Currently, it's being written using OpenGL for rendering, but it will eventually have support for DirectX, Metal, and Vulkan too. Due to all of this, the client is fully cross platform without any need for Wine or similar programs. There isn't really a whole lot to show yet for the client. Development originally began before Sequoia, but it's been on-and-off since then (mostly off since our focus shifted entirely to Sequoia). A lot of work is being put into making it performant and efficient, meaning that feature-wise, progress will be slow for a while until we have a strong foundation to work with. Here's a few old screenshots and videos showcasing the client at various stages of development: <iframe width="1280" height="720" src="https://www.youtube.com/embed/Ssr8lYJZmJE?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> **Showcasing initial support for teleport and flash jump, along with 1080p.** <iframe width="1280" height="720" src="https://www.youtube.com/embed/yGSR7VzmXmo?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> **Testing hitboxes with debug renderer** ![](https://lh6.googleusercontent.com/mfCOw86XB-WDs_Mu06Pl5yRGmjLbhzIaaXqGT6gkU29fkPW9Yo6FEug0A3UX2SsVxG0hcMdidALF8jSjsWJZpOORF-dLuA2F-sXwTYUjVzRQlR-M8jWJAF4fbvQUBgv_HWliljm2) **Running on Mac** ![](https://lh6.googleusercontent.com/bcXE68ztghKtPURzqKH6z4UVMYZbkhAKD9o3JIbwECmi3gPtTBXlameg1i85haPdM9kvym267PhQk0vsPA4FGMeSKV4HhwllBD2Jp9zXDNIehj4Su-TIsNSNOw-pGtpqMXR1h0Bl) **Comparing real client to custom client** ![](https://lh6.googleusercontent.com/g6edX0V7oE3v_ebpZ5Bp5ghzWb81cL172BiX6DDXcT1Muz3NAy3z3XURSp0Acl-re4BqEqboNAHpKHukBGt62t2PTbJsMefXf_1QZpRIY3uVjYpaClZ0pIglG1ClRRcGyjOgFT77) **Initial networking support (this was connected to an actual server)** # Conclusion That's all we have to share for now. Our main focus at the moment is building a strong base for the client. Once we have that ready, features will be added in rapidly, and Sequoia will be worked on to accommodate for the custom features we add. The next dev blog will hopefully be all about the client if all goes well. If you have any questions or comments about anything here, we're always available for chatting on [Selene's Discord](https://discord.playselene.com)!

Back