Difference between revisions of "Realcraft:Main Page"

From wiki.vg
Jump to navigation Jump to search
(Fixing grammatical errors)
(32 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Realcraft]] is a custom Minecraft Beta server coded by [[User:Jailout2000|Jailout2000]] around the Beta 1.8.1 protocol. 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 I was testing out user ranks, colors, and custom user labels.]]
 +
'''Realcraft''' is a custom (third-party) Minecraft server written in [http://www.realbasic.com/ Realbasic] by [[User:Jailout2000|Jailout2000]]. It implements the [http://www.minecraft.net/ Minecraft] 1.3.2 server protocol. The server runs out of the console. It is also closed source, meaning anyone with a copy of it will not receive updates and the author will consider their copy a leaked build.
  
== License ==
+
The author does not wish for anyone to obtain a copy of Realcraft. Anyone who wishes to play on Realcraft must connect to the author's server if and when it is online.
  
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 server is being written on and tested with Microsoft Windows, but it must be compatible with Linux so it can be run on the author's server machine. There are no plans to support Mac OS X at this time.
  
== Project Status ==
+
The author may be contacted through IRC ([irc://irc.freenode.net/#realcraft irc.freenode.net#realcraft]) if you have any queries about the software itself or how all of this is setup.
  
Currently the project is in '''active''' development.
+
Eventually, Realcraft will become a duplicate of the [http://innectis.net/ Innectis] community's server. This is a long-term goal and is expected to never be completed until years from now.
  
=== Plans ===
+
The author also wants to note that at any time Realcraft may go on hiatus, meaning that development has been paused or stopped for a long time. If this happens and you still want to use Realcraft, contact the author through the IRC services above. A little demand always helps a sole freelance programmer.
  
* 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).
+
}}
* Provide a download for the server so others may use it.
 
** This will mean building the server for cross-platform support. Currently it is Windows only.
 
* Player authentication with Minecraft.net.
 
* MySQL database support.
 
* Advertise the server to others, so that it can be stress tested.
 
  
=== Live Server ===
+
{| 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)]]
 +
}}
  
This server may or may not be online; it's only online when Jailout2000 is working on the server.
+
{{Box|
* mc.clan-warp.net:25566
+
BORDER = #993300|
 +
BACKGROUND = #CC0000|
 +
WIDTH = 100%|
 +
ICON = |
 +
HEADING = '''Developer Information'''|
 +
CONTENT = *[[Realcraft:Features#Planned|Features (Planned/To-Do)]]
 +
*[[Realcraft:Development_Status|Project Status Updates]]
 +
}}
  
== Development Status ==
 
 
Notchian clients no longer crash. Lots of internal code has been reworked with the help of [[User:Ribose|Ribose]]. Fixed spawning bugs, it now works correctly on the first time. Fixed gltches with walking/jumping/arm-throwing; you are now free to walk around, just don't hit any blocks (left or right click) at the moment ;). Entities were worked on a bit, and understood a bit more; players should now see other players (but they cannot move right now, they can arm swing though!). Chat is now working properly, and is logged under a different log file. Other than all of this, the server is fairly stable, I can't crash it as of this moment, but that's not to say it isn't crashable, I'm sure somewhere there's a problem. -- [[User:Jailout2000|<span style="color: #0080C0; font-weight: bold;">Jailout2000</span>]] 22:27, 24 October 2011 (MST)
 
 
Got chunks to load correctly. Need to test if entities can be seen, or if entity animation is sent to other notchian clients. Currently a player is spawned at y=2, but it should be y=67, I need to look into how to fix this. -- [[User:Jailout2000|<span style="color: #0080C0; font-weight: bold;">Jailout2000</span>]] 02:51, 24 October 2011 (MST)
 
 
== 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, On-Ground, and Type.
 
| 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. The inherited property ''Type'' is always set to zero.
 
| 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\&lt;user&gt;\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.
 
 
 
Log data is always appended to the current log file, it never replaces a file's previous data. Log data is outputted as plain text. Each line represents a new log entry, and all log entries have a format of '''[HH:MM:SS]&lt;space&gt;&lt;payload&gt;''' where HH:MM:SS is the timestamp in 24-hour format, &lt;space&gt; is a 0x20 (a spacebar), and &lt;payload&gt; is the information. All new lines are ended as per the system the data is logged to. Linux and other minor systems end all lines in 0x0D (\n), Windows ends all lines in 0x0D and 0x0A (\r\n) respectively, and Mac ends all lines in 0x0A (\r).
 
 
 
  
----
+
[[Category:Custom Minecraft Servers]]
[[Server_List|Return to Custom Minecraft Beta servers]]
 
[[Category:Minecraft Beta Servers]]
 

Revision as of 03:36, 11 January 2020

Introduction
This was on January 7th, 2012 while I was testing out user ranks, colors, and custom user labels.

Realcraft is a custom (third-party) Minecraft server written in Realbasic by Jailout2000. It implements the Minecraft 1.3.2 server protocol. The server runs out of the console. It is also closed source, meaning anyone with a copy of it will not receive updates and the author will consider their copy a leaked build.

The author does not wish for anyone to obtain a copy of Realcraft. Anyone who wishes to play on Realcraft must connect to the author's server if and when it is online.

The server is being written on and tested with Microsoft Windows, but it must be compatible with Linux so it can be run on the author's server machine. There are no plans to support Mac OS X at this time.

The author may be contacted through IRC (irc.freenode.net#realcraft) if you have any queries about the software itself or how all of this is setup.

Eventually, Realcraft will become a duplicate of the Innectis community's server. This is a long-term goal and is expected to never be completed until years from now.

The author also wants to note that at any time Realcraft may go on hiatus, meaning that development has been paused or stopped for a long time. If this happens and you still want to use Realcraft, contact the author through the IRC services above. A little demand always helps a sole freelance programmer.

User Information
Developer Information
Quick Menu