RuneArchive 467 Posted January 22, 2020 Popular Post Report Share Posted January 22, 2020 Download Link: This is the hidden content, please Sign In or Sign Up Tools: N\A Introduction Apollo is a RuneScape emulator which aims to encourage a fundamentally-different alternative to the way in which private server development is done today. It consists of a high-performance, modular server written in Java as well as a collection of utilities for managing the data files and plugins. Plugins Currently people download a server, read through tutorials and apply their modifications or write their own code on top of it. They'll then host it or release it. The result is we currently have a complete mess of servers (this includes every current base - Hyperion, rs2hd, winterlove) all created from cobbled-together code. Apollo is going to change that through its plugin system. Instead of throwing everything into one big application, Apollo consists of: A small 'core' application which provides features necessary for the server to operate. A set of plugins, and the tools to manage them (install, uninstall, publish, download, etc). Some additional tools and utilities for managing the data files. This will make it much easier for everyone to develop a private server, no longer restricting it to people who can (or can't as the case is here) program. Instead of messing around copying and pasting lines of code from a woodcutting tutorial, people will simply have to download and install a woodcutting plugin. There is also a plan to have a plugin repository (or maybe multiple repositories) and a set of tools to make the experience very much like a package manager on Linux. It also means updates can be provided for the core server (e.g. security, stability, optimizations) very easily. Users will just have to download the new jar, overwrite the current one with the new one, and reboot their server. And best of all, inexperienced users are protected from making fatal mistakes in the core and are kept away from stuff that they shouldn't be editing at their experience level. Plugins are currently written in Ruby, however, in the future other languages could be added. Here is what a plugin looks like: hello.rb: Code: require 'java' java_import 'org.apollo.game.model.Animation' on :command, :hello do |player, command| player.play_animation Animation::WAVE player.send_message "Hello, World!" end plugin.xml: Code: <?xml version="1.0"?> <plugin> <id>hello</id> <version>1</version> <name>Hello World Command</name> <description>Adds a ::hello command which simply prints 'Hello, World!'.</description> <authors> <author>Graham</author> </authors> <scripts> <script>hello.rb</script> </scripts> <dependencies /> </plugin> Core Features Some of the significant (technically) current core features include: Packet encoding/decoding has been split from the representations of the packets themselves. This allows the potential for encoding/decoding to go on in parallel and also allows multiple revisions to be supported. Currently 317 and 377 are both completely supported. Update server support (JAGGRAB, ondemand and HTTP). Packet handler chaining: this allows multiple plugins to be able to intercept a single packet and deal with it appropriately. For example, a quest plugin could intercept searching a bookshelf for instance, if the behaviour needed to change in certain cases. Parallel execution of player updating for multi-core machines - this has a significant benefit on my dual core machine used to test the server. As well as that, it has the bog standard stuff: Login Appearance updating Multiplayer Walking/running Rights management Travel back algorithm for movement Character design Chatting Commands Inventory support Equipment support Animations Graphics Facing/turn to Action system Working distanced actions All data types implemented Task scheduler based on game ticks Saving/loading with a custom binary format Skill levels/experiences Plugin management Reads item information from the cache Plugin features These are the current plugins that I've developed so far. hello: a 'hello world' plugin just to demonstrate how they are used for plugin developers. cmd-item: item-related commands: item, destroy and empty cmd-skill: skill-related commands: max cmd-teleport: teleport/position-related commands: pos, tele dummy: the dummies in Varrock mining: a mining plugin to demonstrate a larger plugin for future plugin developers, and to test some of the newer features (not yet completed) Source control/building Currently the repository is private (it isn't ready yet, and will not be released until it is ready!). Server architecture Third-party libraries The server uses the This is the hidden content, please Sign In or Sign Up API for the networking code. Netty supports a variety of transports such as NIO and blocking IO, so you can choose what is right for your environment/use case. The This is the hidden content, please Sign In or Sign Up library is used for decompressing bzip2-compressed files in the cache. The This is the hidden content, please Sign In or Sign Up library is used for unit testing. The This is the hidden content, please Sign In or Sign Up library is used to execute the Ruby plugins. This is the hidden content, please Sign In or Sign Up is used to draw pretty diagrams in the Javadocs. Media Mining/prospecting plugin: Wielding items: Real 377 support: Skill levels: Testing the hello plugin: Benchmarks These are quite out of date and I will get around to redoing them at some point on a variety of platforms/configurations! These are from a 32 bit machine running Windows 7. It has a dual core 2.2 ghz processor and 2 GB of RAM. Java 1.7.0-ea was used with the HotSpot Server VM. Parallel updater: The cycle time with 2000 idle players took 240-270ms (later improved to 140-160ms). The cycle time with 2000 players spamming chat messages was 420-470ms. Sequential updater: The cycle time with 2000 idle players took 290-340ms. With the players spamming chat messages it took 550-700ms. Using the parallel updater (recommended for the PC since it has multiple cores), the performance was well within the 600ms limit. It isn't amazing hardware either. Current Plans The plan roughly is: Get the core finished to a usable state for plugin developers. Allow a select number of people early access in order for them to develop open-source plugins accurate to RuneScape. Finish developing the core while this goes on. Release the core and all the plugins simultaneously. Sit back and do occasional updates to the core. The community can do the rest. Credits blakeman8192 Sir Sean super_ wL daiki Saevion popcorn89 Tom defyboy silabsoft thiefmn6092 Phyfiox (aka Raul) Scu11 Palidino76 Parabolika 26 Link to comment Share on other sites More sharing options...
Galaxy 99 Posted January 23, 2020 Report Share Posted January 23, 2020 nice stuff let me see this trying to get past 20 words dope Link to comment Share on other sites More sharing options...
Glitched 0 Posted January 23, 2020 Report Share Posted January 23, 2020 thanks for this release not sure if ill check this one out Link to comment Share on other sites More sharing options...
Michael IO 5 Posted February 21, 2020 Report Share Posted February 21, 2020 hope this is a good release thanks for rteleasing Link to comment Share on other sites More sharing options...
Phasmic 2 Posted March 1, 2020 Report Share Posted March 1, 2020 Cant wait to check out this fine piece of rsps and see what I can do with it. Link to comment Share on other sites More sharing options...
Ocean 52 Posted April 1, 2020 Report Share Posted April 1, 2020 ty, I have been looking for this Tyvm, can't wait to check this out. Link to comment Share on other sites More sharing options...
Wzrdary 2 Posted April 5, 2020 Report Share Posted April 5, 2020 Good looking release, not sure if I'll look into this myself. Link to comment Share on other sites More sharing options...
nilsbulk 0 Posted April 9, 2020 Report Share Posted April 9, 2020 Thank you for this, checking it out! Link to comment Share on other sites More sharing options...
bowlcutgod 16 Posted May 6, 2020 Report Share Posted May 6, 2020 gfkegjtirgvr frhgfbrtujvbtruj cjrhebfhuvjrtbvjrbg bvurtbvjrnthjughnvhgtjygn Link to comment Share on other sites More sharing options...
Fearlessplum 4 Posted May 8, 2020 Report Share Posted May 8, 2020 Might make this into my new learning base thanku Link to comment Share on other sites More sharing options...
Greed 0 Posted June 5, 2020 Report Share Posted June 5, 2020 pretty good framework. just needs more contributors Link to comment Share on other sites More sharing options...
1nfinite 2 Posted June 16, 2020 Report Share Posted June 16, 2020 thank you man gonna look at this to learn Link to comment Share on other sites More sharing options...
IAmRiz 0 Posted June 21, 2020 Report Share Posted June 21, 2020 Can't wait to get in here and see what I can learn, Thank you. Link to comment Share on other sites More sharing options...
TheYsconator 1 Posted June 22, 2020 Report Share Posted June 22, 2020 Aww yeah! Thanks for the upoad! Link to comment Share on other sites More sharing options...
Wyrmrush 131 Posted October 29, 2021 Report Share Posted October 29, 2021 On 22/1/2020 at 10:04, RuneArchive said: This is the hidden content, please Sign In or Sign Up Enlace de descarga: contenido oculto Reacciona o responde a este tema para ver el contenido oculto. Instrumentos: N / A IntroducciónApollo es un emulador de RuneScape que tiene como objetivo fomentar una alternativa fundamentalmente diferente a la forma en que se realiza hoy en día el desarrollo de servidores privados. Consiste en un servidor modular de alto rendimiento escrito en Java, así como una colección de utilidades para administrar los archivos de datos y complementos. ComplementosActualmente, las personas descargan un servidor, leen tutoriales y aplican sus modificaciones o escriben su propio código encima. Luego lo alojarán o lo lanzarán. El resultado es que actualmente tenemos un completo lío de servidores (esto incluye todas las bases actuales: Hyperion, rs2hd, winterlove), todos creados a partir de código improvisado. Apollo va a cambiar eso a través de su sistema de complementos. En lugar de incluir todo en una gran aplicación, Apollo consta de: Una pequeña aplicación "central" que proporciona las características necesarias para que el servidor funcione. Un conjunto de complementos y las herramientas para administrarlos (instalar, desinstalar, publicar, descargar, etc.). Algunas herramientas y utilidades adicionales para administrar los archivos de datos. Esto hará que sea mucho más fácil para todos desarrollar un servidor privado, sin restringirlo más a las personas que pueden (o no pueden, como es el caso aquí) programar. En lugar de perder el tiempo copiando y pegando líneas de código de un tutorial de corte de madera, la gente simplemente tendrá que descargar e instalar un complemento de corte de madera. También hay un plan para tener un repositorio de complementos (o quizás varios repositorios) y un conjunto de herramientas para hacer que la experiencia sea muy parecida a la de un administrador de paquetes en Linux. También significa que se pueden proporcionar actualizaciones para el servidor central (por ejemplo, seguridad, estabilidad, optimizaciones) muy fácilmente. Los usuarios solo tendrán que descargar el nuevo jar, sobrescribir el actual con el nuevo y reiniciar su servidor.Y lo mejor de todo es que los usuarios sin experiencia están protegidos de cometer errores fatales en el núcleo y se mantienen alejados de cosas que no deberían editar en su nivel de experiencia. Los complementos están escritos actualmente en Ruby, sin embargo, en el futuro se podrían agregar otros idiomas. Así es como se ve un complemento: hello.rb: Código: require 'java' java_import 'org.apollo.game.model.Animation' on :command, :hello do |player, command| player.play_animation Animation::WAVE player.send_message "Hello, World!" end plugin.xml: Código: <?xml version="1.0"?> <plugin> <id>hello</id> <version>1</version> <name>Hello World Command</name> <description>Adds a ::hello command which simply prints 'Hello, World!'.</description> <authors> <author>Graham</author> </authors> <scripts> <script>hello.rb</script> </scripts> <dependencies /> </plugin> Características principales Algunas de las características principalesimportantes (técnicamente) actuales incluyen: La codificación / decodificación de paquetes se ha separado de las representaciones de los propios paquetes. Esto permite que el potencial de codificación / decodificación continúe en paralelo y también permite admitir múltiples revisiones. Actualmente, 317 y 377 son completamente compatibles. Soporte de servidor de actualización (JAGGRAB, ondemand y HTTP). Encadenamiento de manejadores de paquetes: esto permite que múltiples complementos puedan interceptar un solo paquete y manejarlo de manera apropiada. Por ejemplo, un complemento de búsqueda podría interceptar la búsqueda en una estantería, por ejemplo, si el comportamiento necesita cambiar en ciertos casos. Ejecución paralela de la actualización del reproductor para máquinas de varios núcleos: esto tiene un beneficio significativo en mi máquina de doble núcleo utilizada para probar el servidor. Además de eso, tiene las cosas estándar del pantano: Acceso Actualización de apariencia Multijugador Caminar / correr Gestión de Derechos Algoritmo de retroceso para el movimiento Diseño de personaje Charlando Comandos Soporte de inventario Soporte de equipo Animaciones Gráficos Mirando / voltear a Sistema de acción Trabajando acciones a distancia Todos los tipos de datos implementados Programador de tareas basado en ticks del juego Guardar / cargar con un formato binario personalizado Niveles de habilidad / experiencias Gestión de complementos Lee la información del artículo del caché Características de los complementosEstos son los complementos actuales que he desarrollado hasta ahora. hola: un complemento 'hola mundo' solo para demostrar cómo se utilizan para los desarrolladores de complementos. cmd-item: comandos relacionados con el elemento: elemento, destruir y vaciar cmd-skill: comandos relacionados con la habilidad: max cmd-teleport: teletransporte / comandos relacionados con la posición: pos, tele maniquí: los maniquíes en Varrock minería: un complemento de minería para demostrar un complemento más grande para futuros desarrolladores de complementos y para probar algunas de las funciones más nuevas (aún no completadas) Control / creación de código fuenteActualmente, el repositorio es privado (aún no está listo y no se lanzará hasta que esté listo). Arquitectura del servidor Bibliotecas de tercerosEl servidor utiliza la contenido oculto Reacciona o responde a este tema para ver el contenido oculto. API para el código de red. Netty admite una variedad de transportes como NIO y bloqueo de IO, por lo que puede elegir lo que sea adecuado para su entorno / caso de uso. los contenido oculto Reacciona o responde a este tema para ver el contenido oculto. La biblioteca se utiliza para descomprimir archivos comprimidos con bzip2 en la caché. los contenido oculto Reacciona o responde a este tema para ver el contenido oculto. La biblioteca se utiliza para pruebas unitarias. los contenido oculto Reacciona o responde a este tema para ver el contenido oculto. La biblioteca se utiliza para ejecutar los complementos de Ruby. contenido oculto Reacciona o responde a este tema para ver el contenido oculto. se utiliza para dibujar bonitos diagramas en los Javadocs. Complemento deminería de medios / prospección: Elementos que manejan: Soporte Real 377: Niveles de habilidad: Probar el complemento hello: Puntos de referencia ¡ Estos están bastante desactualizados y podré rehacerlos en algún momento en una variedad de plataformas / configuraciones! Estos son de una máquina de 32 bits que ejecuta Windows 7. Tiene un procesador de doble núcleo de 2,2 ghz y 2 GB de RAM. Se utilizó Java 1.7.0-ea con la máquina virtual HotSpot Server. Actualizador paralelo: el tiempo de ciclo con 2000 reproductores inactivos tomó 240-270ms (luego mejorado a 140-160ms). El tiempo de ciclo con 2000 jugadores enviando mensajes de chat no deseados fue de 420-470 ms. Actualizador secuencial: This is the hidden content, please Sign In or Sign Up This is the hidden content, please Sign In or Sign Up This is the hidden content, please Sign In or Sign Up This is the hidden content, please Sign In or Sign Up This is the hidden content, please Sign In or Sign Up El tiempo de ciclo con 2000 reproductores inactivos tomó 290-340 ms. Con los jugadores enviando mensajes de chat no deseados, tomó 550-700ms. Usando el actualizador paralelo (recomendado para PC ya que tiene múltiples núcleos), el rendimiento estuvo dentro del límite de 600ms. Tampoco es un hardware asombroso. Planes actualesEl plan a grandes rasgos es: Obtenga el núcleo terminado a un estado utilizable para los desarrolladores de complementos. Permita el acceso temprano a un número selecto de personas para que puedan desarrollar complementos de código abierto precisos para RuneScape. Termine de desarrollar el núcleo mientras esto continúa. Suelta el núcleo y todos los complementos simultáneamente. Siéntese y haga actualizaciones ocasionales del núcleo. La comunidad puede hacer el resto. Créditos blakeman8192 Sir Sean súper_ wL daiki Saevion palomitas de maíz89 Tomás desafiante silabsoft ladrón Phyfiox (también conocido como Raul) Scu11 Palidino76 Parabolika mu bien tambien xd Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now