|
|
(43 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| [[Realcraft]] is a custom Minecraft server built around the Beta 1.8.1 protocol by [[User:Jailout2000|Jailout2000]]. It is coded in REALbasic, a crappy language but very easy to use and learn. Since it's coded in REALbasic, this means that it does not have access to kernel threads, and therefore is not a multi-threaded server. The server runs out of the console; it does not have a GUI to which you can control it. | | {{Box| |
| | BORDER = #9999FF| |
| | BACKGROUND = #99CCFF| |
| | WIDTH = 100%| |
| | ICON = | |
| | HEADING = '''Introduction''' | |
| | CONTENT = |
| | [[Image:Realcraft-Testing-Ranks-And-Custom-Labels.png|thumb|border|right|top|400px|This was on January 7th, 2012 while the author was testing user ranks, colors, and custom user labels.]] |
| | '''Realcraft''' is a custom (third-party) Minecraft server written in [https://en.wikipedia.org/wiki/REALbasic REALbasic] by [[User:Jailout2000|Jailout2000]]. It implements the [http://www.minecraft.net/ Minecraft] 1.3.2 server protocol. The server software runs headless without a GUI, it is a console/terminal-based application. |
|
| |
|
| == License ==
| | The software can be found at its [https://github.com/carlbennett/realcraft GitHub repository]. It is licensed under the permissive {{MIT}} license, no warranty is given of any kind, the source code was originally private/closed but was made public/opened years later after the project was abandoned. |
|
| |
|
| Realcraft is written as closed source, therefore it is not available to the general public. If you really wish to see the source, message Jailout2000.
| | The software is written on and tested with Microsoft Windows and Red Hat-based Linux distributions, there were no plans to support running it on Mac OS X. |
|
| |
|
| == Project Status ==
| | The author may be contacted through GitHub if you have any inquiries about the software. |
|
| |
|
| Currently the project is in '''active''' development.
| | }} |
|
| |
|
| === Plans === | | {| width="100%" |
| | |- style="vertical-align: top;" |
| | | width="70%" | <!-- Section 1 --> |
| | {| width="100%" |
| | |- style="vertical-align: top;" |
| | | <!-- Section 1-1 --> |
| | {{Box| |
| | BORDER = #669933| |
| | BACKGROUND = #99CC33| |
| | WIDTH = 100%| |
| | ICON = | |
| | HEADING = '''User Information''' | |
| | CONTENT = *[[Realcraft:License|License / Disclaimer]] |
| | *[[Realcraft:Configuration|Configuration]] |
| | *[[Realcraft:Features#Implemented|Features (Implemented)]] |
| | }} |
|
| |
|
| * Eventually use an external library for generation of worlds. At the moment, generation of worlds is done internally, and is not very impressive (just flat worlds with some scenery).
| | {{Box| |
| * Provide a download for the server so others may use it.
| | BORDER = #993300| |
| ** This will mean building the server for cross-platform support. Currently it is Windows only. | | BACKGROUND = #CC0000| |
| * Player authentication with Minecraft.net. | | WIDTH = 100%| |
| * MySQL database support.
| | ICON = | |
| * Advertise the server to others, so that it can be stress tested.
| | HEADING = '''Developer Information'''| |
| | CONTENT = *[[Realcraft:Features#Planned|Features (Planned/To-Do)]] |
| | *[[Realcraft:Development_Status|Project Status Updates]] |
| | }} |
|
| |
|
| === Live Server ===
| |
|
| |
| This server may or may not be online; it's only online when Jailout2000 is working on the server.
| |
| * mc.clan-warp.net:25566
| |
|
| |
| == Technical Details ==
| |
|
| |
| === Class Hierarchy ===
| |
| * Entity
| |
| ** Item
| |
| ** Mob
| |
| *** Player
| |
| ** Projectile
| |
| *** Vehicle
| |
| * ServerSocket
| |
| ** GameServer
| |
| * TCPSocket
| |
| ** GameSocket
| |
| * World
| |
| * WorldChunk
| |
|
| |
| === Class Objectives ===
| |
| {| class="wikitable"
| |
| |- class="row0"
| |
| ! class="col0" width="5%" | Class
| |
| ! class="col1" width="50%" | Description
| |
| ! class="col2" width="45" | Objectives
| |
| |- class="row1"
| |
| ! class="col0 centeralign" | Entity
| |
| | class="col1" | Entity refers to any item, mob, player, projectile, or vehicle in the world. Every entity has an ID (known as an EID or Entity ID) which is a unique 32-bit integer used to identify a specific entity. All entities have an XYZ double-precision floating-point (64-bit) integer coordinate pair along with single-precision floating-point (32-bit) integer pitch and yaw coordinates. Y points upwards, X points South, and Z points West.
| |
| | class="col2" | Act as a base for each entity type.
| |
| |- class="row2"
| |
| ! class="col0 centeralign" | Item
| |
| | class="col1" | An entity of type Item. It has the properties: ID, Damage/Uses, and Count.
| |
| | class="col2" | Act as a representation of any item in the world.
| |
| |- class="row3"
| |
| ! class="col0 centeralign" | Mob
| |
| | class="col1" | An entity of type Mob. It has the properties: Health, Stance, and On-Ground.
| |
| | class="col2" | Act as a representation of any aggressive or passive mob in the world (such as a creeper or spider).
| |
| |- class="row4"
| |
| ! class="col0 centeralign" | Player
| |
| | class="col1" | An entity of type Player, a subclass of Mob. It has the properties: Experience, Food, Food Saturation, and Name.
| |
| | class="col2" | Act as a representation of any player in the world (an actual person).
| |
| |- class="row5"
| |
| ! class="col0 centeralign" | Projectile
| |
| | class="col1" | An entity of type Projectile. It has the properties: Type, Velocity X, Velocity Y, and Velocity Z. The Type IDs are shared between vehicles as well.
| |
| | class="col2" | Act as a representation of any projectile in the world (such as an arrow).
| |
| |- class="row6"
| |
| ! class="col0 centeralign" | Vehicle
| |
| | class="col1" | An entity of type Vehicle. It has the property: Passenger. The Type IDs are shared between projectiles as well. The Passenger is a reference to a valid Mob object.
| |
| | class="col2" | Act as a representation of any vehicle in the world (such as a Minecart).
| |
| |- class="row7"
| |
| ! class="col0 centeralign" | GameServer
| |
| | class="col1" | A class to wait for connections from outside the machine. All connections are handed off to a GameSocket object.
| |
| | class="col2" | Act as the front-end of the server's connections.
| |
| |- class="row8"
| |
| ! class="col0 centeralign" | GameSocket
| |
| | class="col1" | A class to process all network data events such as data received or data sent.
| |
| | class="col2" | Read and parse all Minecraft game data, and possibly respond with data for the Minecraft client. Optionally, it can also disconnect the client when and where it sees fit.
| |
| |- class="row9"
| |
| ! class="col0 centeralign" | World
| |
| | class="col1" | Holds data for each world on the server, including the name, who's in what world, the chunks related to the world, and much more.
| |
| | class="col2" | Allow the server to host multiple worlds by having identifiable world objects.
| |
| |- class="row10"
| |
| ! class="col0 centeralign" | WorldChunk
| |
| | class="col1" | Holds chunk data for a world on the server. The world seed plays a big role in how a chunk formulates its block data. The chunk is responsible for generating itself for the world to use.
| |
| | class="col2" | Allow the world to have a set of chunks to send to a Minecraft client.
| |
| |} | | |} |
|
| |
|
| === Logging === | | | width="50%" | <!-- Section 2 --> |
| The logger is called whenever there is text displayed to the command line. Whatever you see on screen is also sent to a file. The only exception to this rule is when Realcraft is displaying a percentile of an action being done (i.e. ''Generating world... 50%''), in this case the file does not get updated until the full line is displayed (''Generating world... done.'') or when there's an error while doing the action.
| | {| width="100%" |
| | | |- style="vertical-align: top;" |
| All logs are stored in the folder called '''Logs''' under the folder '''Realcraft''' inside the application data folder of your system. On Windows Vista and newer, this is your %APPDATA% folder (C:\Users\<user>\AppData\Roaming).
| | | <!-- Section 2-1 --> |
| | | {{RealcraftMenu}} |
| The filename is always in the format '''YYYY-MM-DD.log''' where YYYY is the year, MM is the month, and DD is the day of the month.
| |
| | |
|
| |
|
| ----
| | [[Category:Custom Minecraft Servers]] |
| [[Server_List|Return to Custom Minecraft Beta servers]] | |
| [[Category:Servers]]
| |