Git Product home page Git Product logo

craft's Introduction

Craft

Minecraft clone for Windows, Mac OS X and Linux. Just a few thousand lines of C using modern OpenGL (shaders). Online multiplayer support is included using a Python-based server.

http://www.michaelfogleman.com/craft/

Screenshot

Features

  • Simple but nice looking terrain generation using perlin / simplex noise.
  • More than 10 types of blocks and more can be added easily.
  • Supports plants (grass, flowers, trees, etc.) and transparency (glass).
  • Simple clouds in the sky (they don't move).
  • Day / night cycles and a textured sky dome.
  • World changes persisted in a sqlite3 database.
  • Multiplayer support!

Download

Mac and Windows binaries are available on the website.

http://www.michaelfogleman.com/craft/

See below to run from source.

Install Dependencies

Mac OS X

Download and install CMake if you don't already have it. You may use Homebrew to simplify the installation:

brew install cmake

Linux (Ubuntu)

sudo apt-get install cmake libglew-dev xorg-dev libcurl4-openssl-dev
sudo apt-get build-dep glfw

Windows

Download and install CMake and MinGW. Add C:\MinGW\bin to your PATH.

Download and install cURL so that CURL/lib and CURL/include are in your Program Files directory.

Use the following commands in place of the ones described in the next section.

cmake -G "MinGW Makefiles"
mingw32-make

Compile and Run

Once you have the dependencies (see above), run the following commands in your terminal.

git clone https://github.com/fogleman/Craft.git
cd Craft
cmake .
make
./craft

Multiplayer

After many years, craft.michaelfogleman.com has been taken down. See the Server section for info on self-hosting.

Client

You can connect to a server with command line arguments...

./craft [HOST [PORT]]

Or, with the "/online" command in the game itself.

/online [HOST [PORT]]

Server

You can run your own server or connect to mine. The server is written in Python but requires a compiled DLL so it can perform the terrain generation just like the client.

gcc -std=c99 -O3 -fPIC -shared -o world -I src -I deps/noise deps/noise/noise.c src/world.c
python server.py [HOST [PORT]]

Controls

  • WASD to move forward, left, backward, right.
  • Space to jump.
  • Left Click to destroy a block.
  • Right Click or Cmd + Left Click to create a block.
  • Ctrl + Right Click to toggle a block as a light source.
  • 1-9 to select the block type to create.
  • E to cycle through the block types.
  • Tab to toggle between walking and flying.
  • ZXCVBN to move in exact directions along the XYZ axes.
  • Left shift to zoom.
  • F to show the scene in orthographic mode.
  • O to observe players in the main view.
  • P to observe players in the picture-in-picture view.
  • T to type text into chat.
  • Forward slash (/) to enter a command.
  • Backquote (`) to write text on any block (signs).
  • Arrow keys emulate mouse movement.
  • Enter emulates mouse click.

Chat Commands

/goto [NAME]

Teleport to another user. If NAME is unspecified, a random user is chosen.

/list

Display a list of connected users.

/login NAME

Switch to another registered username. The login server will be re-contacted. The username is case-sensitive.

/logout

Unauthenticate and become a guest user. Automatic logins will not occur again until the /login command is re-issued.

/offline [FILE]

Switch to offline mode. FILE specifies the save file to use and defaults to "craft".

/online HOST [PORT]

Connect to the specified server.

/pq P Q

Teleport to the specified chunk.

/spawn

Teleport back to the spawn point.

Screenshot

Screenshot

Implementation Details

Terrain Generation

The terrain is generated using Simplex noise - a deterministic noise function seeded based on position. So the world will always be generated the same way in a given location.

The world is split up into 32x32 block chunks in the XZ plane (Y is up). This allows the world to be “infinite” (floating point precision is currently a problem at large X or Z values) and also makes it easier to manage the data. Only visible chunks need to be queried from the database.

Rendering

Only exposed faces are rendered. This is an important optimization as the vast majority of blocks are either completely hidden or are only exposing one or two faces. Each chunk records a one-block width overlap for each neighboring chunk so it knows which blocks along its perimeter are exposed.

Only visible chunks are rendered. A naive frustum-culling approach is used to test if a chunk is in the camera’s view. If it is not, it is not rendered. This results in a pretty decent performance improvement as well.

Chunk buffers are completely regenerated when a block is changed in that chunk, instead of trying to update the VBO.

Text is rendered using a bitmap atlas. Each character is rendered onto two triangles forming a 2D rectangle.

“Modern” OpenGL is used - no deprecated, fixed-function pipeline functions are used. Vertex buffer objects are used for position, normal and texture coordinates. Vertex and fragment shaders are used for rendering. Matrix manipulation functions are in matrix.c for translation, rotation, perspective, orthographic, etc. matrices. The 3D models are made up of very simple primitives - mostly cubes and rectangles. These models are generated in code in cube.c.

Transparency in glass blocks and plants (plants don’t take up the full rectangular shape of their triangle primitives) is implemented by discarding magenta-colored pixels in the fragment shader.

Database

User changes to the world are stored in a sqlite database. Only the delta is stored, so the default world is generated and then the user changes are applied on top when loading.

The main database table is named “block” and has columns p, q, x, y, z, w. (p, q) identifies the chunk, (x, y, z) identifies the block position and (w) identifies the block type. 0 represents an empty block (air).

In game, the chunks store their blocks in a hash map. An (x, y, z) key maps to a (w) value.

The y-position of blocks are limited to 0 <= y < 256. The upper limit is mainly an artificial limitation to prevent users from building unnecessarily tall structures. Users are not allowed to destroy blocks at y = 0 to avoid falling underneath the world.

Multiplayer

Multiplayer mode is implemented using plain-old sockets. A simple, ASCII, line-based protocol is used. Each line is made up of a command code and zero or more comma-separated arguments. The client requests chunks from the server with a simple command: C,p,q,key. “C” means “Chunk” and (p, q) identifies the chunk. The key is used for caching - the server will only send block updates that have been performed since the client last asked for that chunk. Block updates (in realtime or as part of a chunk request) are sent to the client in the format: B,p,q,x,y,z,w. After sending all of the blocks for a requested chunk, the server will send an updated cache key in the format: K,p,q,key. The client will store this key and use it the next time it needs to ask for that chunk. Player positions are sent in the format: P,pid,x,y,z,rx,ry. The pid is the player ID and the rx and ry values indicate the player’s rotation in two different axes. The client interpolates player positions from the past two position updates for smoother animation. The client sends its position to the server at most every 0.1 seconds (less if not moving).

Client-side caching to the sqlite database can be performance intensive when connecting to a server for the first time. For this reason, sqlite writes are performed on a background thread. All writes occur in a transaction for performance. The transaction is committed every 5 seconds as opposed to some logical amount of work completed. A ring / circular buffer is used as a queue for what data is to be written to the database.

In multiplayer mode, players can observe one another in the main view or in a picture-in-picture view. Implementation of the PnP was surprisingly simple - just change the viewport and render the scene again from the other player’s point of view.

Collision Testing

Hit testing (what block the user is pointing at) is implemented by scanning a ray from the player’s position outward, following their sight vector. This is not a precise method, so the step rate can be made smaller to be more accurate.

Collision testing simply adjusts the player’s position to remain a certain distance away from any adjacent blocks that are obstacles. (Clouds and plants are not marked as obstacles, so you pass right through them.)

Sky Dome

A textured sky dome is used for the sky. The X-coordinate of the texture represents time of day. The Y-values map from the bottom of the sky sphere to the top of the sky sphere. The player is always in the center of the sphere. The fragment shaders for the blocks also sample the sky texture to determine the appropriate fog color to blend with based on the block’s position relative to the backing sky.

Ambient Occlusion

Ambient occlusion is implemented as described on this page:

http://0fps.wordpress.com/2013/07/03/ambient-occlusion-for-minecraft-like-worlds/

Dependencies

  • GLEW is used for managing OpenGL extensions across platforms.
  • GLFW is used for cross-platform window management.
  • CURL is used for HTTPS / SSL POST for the authentication process.
  • lodepng is used for loading PNG textures.
  • sqlite3 is used for saving the blocks added / removed by the user.
  • tinycthread is used for cross-platform threading.

craft's People

Contributors

aaron1011 avatar bmathews avatar dymk avatar ezfe avatar fogleman avatar gideongrinberg avatar kaezarrex avatar maride avatar satoshinm avatar seba-rgb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

craft's Issues

Make Player color black/different

Players are the same color as clouds currently which makes it harder to differentiate. Could you change to a color not used by a texture currently

Block 15

Placing block 15 to create a specific cloud, you aren't allowed to add new blocks to the side. Also if you disconnect and reconnect while in a placed cloud it can cause you to fall through the ground whenever you reconnect.

Hangs on Q since text update

Up until the text update a few hours ago I've always gotten a recv: something-something error message when pressing Q to quit, but quitting has otherwise worked fine, including after the generic chat update. Since adding text support, which otherwise appears to work fine (there was no one to chat with :() the game hangs after pressing Q or releasing the mouse and closing the window with the X (though I don't know if that worked before), necessitating a manual shutdown.

I'm on Mint 16 but also in a VM, which is causing some other issues (reversed window context).

I don't have any time to look into this right now, just reporting it.

Block selection is off

When deleting or placing a block, the selected block is sometimes off from what it should be. See the pictures for examples.
craft
craft2

Reduced Performance

Ever since Wednesday or Thursday, I've noticed a significant drop in fps on both my Mac and Linux boxes. It's really hard to enjoy now, as I'm only able to get 8 fps max with the latest files (also, multiplayer is literally unplayable, but that's a separate issue). The actual Minecraft runs way smoother for me, which wasn't the case when this project was first posted on Hacker News. Is anyone else experiencing this problem?

Server has no clue what it's map looks like

I've been trying to program some stuff for the server lately, and it has come to my attention that the server has no way of knowing what the pregenerated blocks are. It can only tell which blocks have been placed/removed by clients. Hopefully there's a way to integrate the map.c code in python somehow, so the server can actually get block data.

error: unknown type name ‘pthread_key_t’

➜  Craft git:(master) make
Scanning dependencies of target glfw
[  1%] Building C object glfw/src/CMakeFiles/glfw.dir/clipboard.c.o
In file included from /home/omer/opt/Craft/glfw/src/x11_platform.h:52:0,
                 from /home/omer/opt/Craft/glfw/src/internal.h:69,
                 from /home/omer/opt/Craft/glfw/src/clipboard.c:27:
/home/omer/opt/Craft/glfw/src/glx_platform.h:95:5: error: unknown type name ‘pthread_key_t’
     pthread_key_t   current;
     ^
make[2]: *** [glfw/src/CMakeFiles/glfw.dir/clipboard.c.o] Error 1
make[1]: *** [glfw/src/CMakeFiles/glfw.dir/all] Error 2
make: *** [all] Error 2

Allow specifying max chat messages to display

A setting to control the max number of chat message to display at a time would be nice, in order to preserve context and prevent messages being pushed out too soon in case of high activity.

Including LibPng (or LodePng) as a Submodule

When trying to build it, I ran into the issue of it not finding png on my computer (OS X 10.9). I was wondering if it was a dependency, which is not listed on the read me.

However, libpng is hosted on github, so it may make sense to add another submodule for that, and save the trouble of installing dependencies for everyone.

If these make the build process too long, there is also the option of using lodepng, which is a single file png decoder/encoder.

Create a logging bot of some sort

There should be an official log bot for the Craft server mentioned in the README. Given that the client and server communicate using a very simple protocol, this shouldn't be too difficult.

Server is implemented in Python

I guess I love Python as much as you.

But I also guess that statement like "Minecraft clone in 2500 lines of C - even supports multiplayer online" might be a little misleading when server is actually written in Python.

Multiplayer loading freez

Hi,

I have a huge freeze when connected to 199.115.118.225 16018.

I think this is caused by the internet connection.

Does anyone have this problem ? Is there something to do to avoid that ?

Show own text in chat buffer

Now that you don't see what you type in the console any more there is no confirmation what you said was received by the server. There is no longer any reason to distinguish between input and output text and every reason to treat them the same way.

Server is written in Python 2

Updating the server to Python 3 seems like a good idea- SQLAlchemy supports it, so there is nothing preventing it from happening.

I am more than happy to port it and tidy some code, I just can't test it as I am also afflicted by #16 .

Crash on OSX on start

Issued this command to build:

Codeinator:c dymk$ git clone https://github.com/fogleman/Craft.git
Cloning into 'Craft'...
remote: Counting objects: 1133, done.
...
Resolving deltas: 100% (614/614), done.
Checking connectivity... done
Codeinator:c dymk$ cd Craft/
Codeinator:Craft dymk$ mkdir build && cd build
Codeinator:build dymk$ cmake ..
...
-- Build files have been written to: /Users/dymk/code/c/Craft/build
Codeinator:build dymk$ make
...
Linking C executable craft
[100%] Built target craft
Codeinator:build dymk$ ./craft

A window is drawn on the screen for a split second, then:

Codeinator:build dymk$ ./craft
error 78: failed to open file for reading
craft(91572,0x7fff7cccf310) malloc: *** error for object 0x7fff8dc24d6f: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Codeinator:build dymk$

OS Version: Mac OS X 10.9

Unable to build - Ubuntu 12.04.2 64bit

Here's the output of cmake .

[~/src/Craft] -> cmake .                                                    ±[master]
-- Using X11 for window creation
-- Using GLX for context creation
CMake Error at CMakeLists.txt:20 (find_package):
  Could not find module FindGLEW.cmake or a configuration file for package
  GLEW.

  Adjust CMAKE_MODULE_PATH to find FindGLEW.cmake or set GLEW_DIR to the
  directory containing a CMake configuration file for GLEW.  The file will
  have one of the following names:

    GLEWConfig.cmake
    glew-config.cmake

recv: Bad file descriptor

Somehow the client received a bad file descriptor while connected to your server.

thomas41546@Tair ~/workspace/Craft[master] ./craft 199.115.118.225 16018
Welcome to Craft!
Type "/help" for chat commands.
player1 has joined the game.
recv: Bad file descriptor

Kill another dependency: GLEW

I just found an OpenGL load generator that can replace glew for loading modern OpenGL. It creates only one source and one header file, so it can be built right into the source. It would also allow the usage of up to OpenGL 4.4 (which isn't currently available on Macs, so you may have to go with 4.0 instead). You can also choose what extensions to load, and whether you want to implement extension loading as if you were using glew or glee.

After walking ~5 hours in one direction, the game crashed.

Process:         craft [4440]
Path:            /Users/USER/*/craft
Identifier:      craft
Version:         0
Code Type:       X86-64 (Native)
Parent Process:  zsh [4024]
User ID:         501

Date/Time:       2013-12-10 05:17:01.309 -0800
OS Version:      Mac OS X 10.8.5 (12F45)
Report Version:  10

Interval Since Last Report:          719349 sec
Crashes Since Last Report:           2
Per-App Crashes Since Last Report:   1
Anonymous UUID:                      7B3B7009-A672-2B1C-ADFD-35F71020CD40

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
*** error for object 0x1166c9000: pointer being freed was not allocated


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff8fe9b212 __pthread_kill + 10
1   libsystem_c.dylib               0x00007fff95dbdb24 pthread_kill + 90
2   libsystem_c.dylib               0x00007fff95e01f61 abort + 143
3   libsystem_c.dylib               0x00007fff95dd5989 free + 392
4   craft                           0x000000010a99acbe ensure_chunks + 110
5   craft                           0x000000010a99c5f5 main + 4885
6   libdyld.dylib                   0x00007fff90eef7e1 start + 1

Thread 1:
0   libsystem_kernel.dylib          0x00007fff8fe9b2aa __recvfrom + 10
1   craft                           0x000000010a99d22f recv_worker + 239
2   craft                           0x000000010aa641c9 _thrd_wrapper_function + 25
3   libsystem_c.dylib               0x00007fff95dbc772 _pthread_start + 327
4   libsystem_c.dylib               0x00007fff95da91a1 thread_start + 13

Thread 2:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff8fe9bd16 kevent + 10
1   libdispatch.dylib               0x00007fff97f49dea _dispatch_mgr_invoke + 883
2   libdispatch.dylib               0x00007fff97f499ee _dispatch_mgr_thread + 54

Thread 3:
0   libsystem_kernel.dylib          0x00007fff8fe9b6d6 __workq_kernreturn + 10
1   libsystem_c.dylib               0x00007fff95dbef1c _pthread_workq_return + 25
2   libsystem_c.dylib               0x00007fff95dbece3 _pthread_wqthread + 412
3   libsystem_c.dylib               0x00007fff95da9191 start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000006  rcx: 0x00007fff5525d558  rdx: 0x0000000000000000
  rdi: 0x0000000000000707  rsi: 0x0000000000000006  rbp: 0x00007fff5525d580  rsp: 0x00007fff5525d558
   r8: 0x00007fff7d446278   r9: 0x0000000000000000  r10: 0x0000000020000000  r11: 0x0000000000000206
  r12: 0x00007fe785005600  r13: 0x000000010aadf000  r14: 0x00007fff7d447180  r15: 0x0000000000000004
  rip: 0x00007fff8fe9b212  rfl: 0x0000000000000206  cr2: 0x00007fff7d43fff0
Logical CPU: 0

Binary Images:
       0x10a995000 -        0x10aa83fff +craft (0) <5EE43AA7-6219-346D-BC28-2E88018F9BE9> /Users/USER/*/craft
       0x10af53000 -        0x10af58fff  com.apple.IOAccelerator (74.15 - 74.15) <D8C40179-4A29-3401-9B35-6E61EA278D41> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
       0x10af60000 -        0x10af6cfff  libGPUSupportMercury.dylib (8.10.1) <1DE2D7F9-C031-3BBF-BD5F-4E1208B6F296> /System/Library/PrivateFrameworks/GPUSupport.framework/Versions/A/Libraries/libGPUSupportMercury.dylib
       0x10af75000 -        0x10af82fff  libGPUSupport.dylib (8.10.1) <7860F083-3F7B-3811-A56C-E8557A90C7DB> /System/Library/PrivateFrameworks/GPUSupport.framework/Versions/A/Libraries/libGPUSupport.dylib
       0x10af89000 -        0x10af92fe7  libcldcpuengine.dylib (2.2.16) <DB9678F6-7D50-384A-A961-6109B61D1607> /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libcldcpuengine.dylib
       0x10b1aa000 -        0x10b1d5fff  GLRendererFloat (8.10.1) <055EC8E7-2D7E-370C-96AD-DBEEDB106927> /System/Library/Frameworks/OpenGL.framework/Resources/GLRendererFloat.bundle/GLRendererFloat
       0x10d403000 -        0x10d5c1fff  GLEngine (8.10.1) <1BD4D913-CE6C-3389-B4E1-FC7352E4C23F> /System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine
       0x10d5f8000 -        0x10d768fff  libGLProgrammability.dylib (8.10.1) <3E488CEF-5751-3073-B8EE-0B4CA39CB6AB> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
       0x10d7a0000 -        0x10da69fe7  com.apple.AMDRadeonX3000GLDriver (1.8.19 - 1.0.8) <7C205F2A-F942-3D2D-A5D6-C5C8DADD81E4> /System/Library/Extensions/AMDRadeonX3000GLDriver.bundle/Contents/MacOS/AMDRadeonX3000GLDriver
       0x10dec6000 -        0x10e283ff7  com.apple.driver.AppleIntelHD3000GraphicsGLDriver (8.16.74 - 8.1.6) <261C6DE1-3916-37C8-BDC3-944E48E015F5> /System/Library/Extensions/AppleIntelHD3000GraphicsGLDriver.bundle/Contents/MacOS/AppleIntelHD3000GraphicsGLDriver
    0x7fff6a595000 -     0x7fff6a5c993f  dyld (210.2.3) <36CAA36E-72BC-3E48-96D9-B96A2DF77730> /usr/lib/dyld
    0x7fff8c415000 -     0x7fff8c422ff7  com.apple.NetAuth (4.0 - 4.0) <F5BC7D7D-AF28-3C83-A674-DADA48FF7810> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
    0x7fff8c451000 -     0x7fff8c451fff  com.apple.vecLib (3.8 - vecLib 3.8) <6CBBFDC4-415C-3910-9558-B67176447789> /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff8c459000 -     0x7fff8c52bff7  com.apple.CoreText (260.0 - 275.17) <AB493289-E188-3CCA-8658-1E5039715F82> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
    0x7fff8c52c000 -     0x7fff8c533fff  libGFXShared.dylib (8.10.1) <B4AB9480-2CDB-34F8-8D6F-F5A2CFC221B0> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
    0x7fff8c9a7000 -     0x7fff8c9d1ff7  com.apple.CoreVideo (1.8 - 99.4) <E5082966-6D81-3973-A05A-38AA5B85F886> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
    0x7fff8c9d2000 -     0x7fff8ca11ff7  com.apple.QD (3.42.1 - 285.1) <77A20C25-EBB5-341C-A05C-5D458B97AD5C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
    0x7fff8cb71000 -     0x7fff8ce15ff7  com.apple.CoreImage (8.4.0 - 1.0.1) <CC6DD22B-FFC6-310B-BE13-2397A02C79EF> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
    0x7fff8ce74000 -     0x7fff8ce87ff7  libbsm.0.dylib (32) <F497D3CE-40D9-3551-84B4-3D5E39600737> /usr/lib/libbsm.0.dylib
    0x7fff8ce88000 -     0x7fff8d1b8fff  com.apple.HIToolbox (2.0 - 626.1) <656D08C2-9068-3532-ABDD-32EC5057CCB2> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
    0x7fff8d1b9000 -     0x7fff8d1bdfff  libCoreVMClient.dylib (32.5) <DB009CD4-BB0E-3331-BBB4-A118781D193F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
    0x7fff8d1d9000 -     0x7fff8d1dbfff  libCVMSPluginSupport.dylib (8.10.1) <F0239392-E0CB-37D7-BFE2-D6F5D42F9196> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
    0x7fff8d22a000 -     0x7fff8d327ff7  libxml2.2.dylib (22.3) <47B09CB2-C636-3024-8B55-6040F7829B4C> /usr/lib/libxml2.2.dylib
    0x7fff8d36a000 -     0x7fff8d3a5fff  com.apple.LDAPFramework (2.4.28 - 194.5) <7E4F2C08-0010-34AE-BC46-149B7EE8A0F5> /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
    0x7fff8d3b3000 -     0x7fff8d4a4ff7  com.apple.DiskImagesFramework (10.8.3 - 345) <F9FAEAF0-B9A5-34DF-94B7-926FB03AD5F6> /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
    0x7fff8d71b000 -     0x7fff8d723ff7  libsystem_dnssd.dylib (379.38.1) <BDCB8566-0189-34C0-9634-35ABD3EFE25B> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff8d724000 -     0x7fff8d728fff  com.apple.IOSurface (86.0.4 - 86.0.4) <26F01CD4-B76B-37A3-989D-66E8140542B3> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
    0x7fff8d729000 -     0x7fff8d72aff7  libsystem_sandbox.dylib (220.3) <B739DA63-B675-387A-AD84-412A651143C0> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff8d746000 -     0x7fff8d747ff7  libdnsinfo.dylib (453.19) <14202FFB-C3CA-3FCC-94B0-14611BF8692D> /usr/lib/system/libdnsinfo.dylib
    0x7fff8d748000 -     0x7fff8d75aff7  libz.1.dylib (43) <2A1551E8-A272-3DE5-B692-955974FE1416> /usr/lib/libz.1.dylib
    0x7fff8d75b000 -     0x7fff8db52fff  libLAPACK.dylib (1073.4) <D632EC8B-2BA0-3853-800A-20DA00A1091C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
    0x7fff8dc00000 -     0x7fff8dc17fff  com.apple.GenerationalStorage (1.1 - 132.3) <FD4A84B3-13A8-3C60-A59E-25A361447A17> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
    0x7fff8dcbb000 -     0x7fff8dd95fff  com.apple.backup.framework (1.4.3 - 1.4.3) <6B65C44C-7777-3331-AD9D-438D10AAC777> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
    0x7fff8de1e000 -     0x7fff8de35fff  com.apple.CFOpenDirectory (10.8 - 151.10) <10F41DA4-AD54-3F52-B898-588D9A117171> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
    0x7fff8de36000 -     0x7fff8de36fff  libkeymgr.dylib (25) <CC9E3394-BE16-397F-926B-E579B60EE429> /usr/lib/system/libkeymgr.dylib
    0x7fff8defd000 -     0x7fff8df52ff7  libTIFF.dylib (851) <7706BB07-E7E8-38BE-A5F0-D8B63E3B9283> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x7fff8e25b000 -     0x7fff8e3e1fff  libBLAS.dylib (1073.4) <C102C0F6-8CB6-3B49-BA6B-2EB61F0B2784> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
    0x7fff8e3e5000 -     0x7fff8e44dff7  libc++.1.dylib (65.1) <20E31B90-19B9-3C2A-A9EB-474E08F9FE05> /usr/lib/libc++.1.dylib
    0x7fff8e450000 -     0x7fff8e49fff7  libFontRegistry.dylib (100) <2E03D7DA-9B8F-31BB-8FB5-3D3B6272127F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
    0x7fff8e4a0000 -     0x7fff8e4c0fff  libPng.dylib (851) <3466F35C-EC1A-3D1A-80DC-175857FA19D5> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x7fff8e4c3000 -     0x7fff8e4eefff  libxslt.1.dylib (11.3) <441776B8-9130-3893-956F-39C85FFA644F> /usr/lib/libxslt.1.dylib
    0x7fff8e4ef000 -     0x7fff8e532ff7  com.apple.bom (12.0 - 192) <0BF1F2D2-3648-36B7-BE4B-551A0173209B> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
    0x7fff8f4f3000 -     0x7fff8f4fafff  com.apple.NetFS (5.0 - 4.0) <82E24B9A-7742-3DA3-9E99-ED267D98C05E> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
    0x7fff8f503000 -     0x7fff8f503fff  com.apple.Cocoa (6.7 - 19) <1F77945C-F37A-3171-B22E-F7AB0FCBB4D4> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    0x7fff8f533000 -     0x7fff8f537ff7  com.apple.TCC (1.0 - 1) <F2F3B753-FC73-3543-8BBE-859FDBB4D6A6> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
    0x7fff8f62a000 -     0x7fff8f72cfff  libJP2.dylib (851) <26FFBDBF-9CCE-33D7-A45B-0A31C98DA37E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
    0x7fff8f72d000 -     0x7fff8f752ff7  libc++abi.dylib (26) <D86169F3-9F31-377A-9AF3-DB17142052E4> /usr/lib/libc++abi.dylib
    0x7fff8f753000 -     0x7fff8f75ffff  libCSync.A.dylib (333.1) <319D3E83-8086-3990-8773-872F2E7C6EB3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
    0x7fff8f760000 -     0x7fff8f7afff7  libcorecrypto.dylib (106.2) <CE0C29A3-C420-339B-ADAA-52F4683233CC> /usr/lib/system/libcorecrypto.dylib
    0x7fff8fae6000 -     0x7fff8fc81fef  com.apple.vImage (6.0 - 6.0) <FAE13169-295A-33A5-8E6B-7C2CC1407FA7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
    0x7fff8fd73000 -     0x7fff8fdc4ff7  com.apple.SystemConfiguration (1.12.2 - 1.12.2) <A4341BBD-A330-3A57-8891-E9C1A286A72D> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
    0x7fff8fdc5000 -     0x7fff8fdcffff  com.apple.speech.recognition.framework (4.1.5 - 4.1.5) <D803919C-3102-3515-A178-61E9C86C46A1> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
    0x7fff8fe89000 -     0x7fff8fea4ff7  libsystem_kernel.dylib (2050.48.12) <4B7993C3-F62D-3AC1-AF92-414A0D6EED5E> /usr/lib/system/libsystem_kernel.dylib
    0x7fff8fea5000 -     0x7fff8feb3ff7  libsystem_network.dylib (77.10) <0D99F24E-56FE-380F-B81B-4A4C630EE587> /usr/lib/system/libsystem_network.dylib
    0x7fff8feb4000 -     0x7fff8ff34ff7  com.apple.ApplicationServices.ATS (332 - 341.1) <BD83B039-AB25-3E3E-9975-A67DAE66988B> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
    0x7fff8ff43000 -     0x7fff8ff50fff  libbz2.1.0.dylib (29) <CE9785E8-B535-3504-B392-82F0064D9AF2> /usr/lib/libbz2.1.0.dylib
    0x7fff8ff51000 -     0x7fff90046fff  libiconv.2.dylib (34) <FEE8B996-EB44-37FA-B96E-D379664DEFE1> /usr/lib/libiconv.2.dylib
    0x7fff90047000 -     0x7fff900e1fff  libvMisc.dylib (380.10) <A7F12764-A94C-36EB-88E0-F826F5AF55B4> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
    0x7fff900e2000 -     0x7fff900e2fff  com.apple.ApplicationServices (45 - 45) <A3ABF20B-ED3A-32B5-830E-B37831A45A80> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
    0x7fff90133000 -     0x7fff9013efff  com.apple.CommonAuth (3.0 - 2.0) <1CA95702-DDC7-3ADB-891E-7F037ABDDA14> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
    0x7fff9014d000 -     0x7fff90464ff7  com.apple.CoreServices.CarbonCore (1037.6 - 1037.6) <1E567A52-677F-3168-979F-5FBB0818D52B> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
    0x7fff90465000 -     0x7fff90471fff  com.apple.CrashReporterSupport (10.8.3 - 418) <DE6AFE16-D97E-399D-82ED-3522C773C36E> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
    0x7fff90472000 -     0x7fff904a8fff  libsystem_info.dylib (406.17) <4FFCA242-7F04-365F-87A6-D4EFB89503C1> /usr/lib/system/libsystem_info.dylib
    0x7fff904a9000 -     0x7fff90544fff  com.apple.CoreSymbolication (3.0 - 117) <7D43ED93-BD81-338C-8076-6A932A1D19E8> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
    0x7fff905ba000 -     0x7fff90647ff7  com.apple.SearchKit (1.4.0 - 1.4.0) <C7F43889-F8BF-3CB9-AD66-11AEFCBCEDE7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
    0x7fff90648000 -     0x7fff906b6ff7  com.apple.framework.IOKit (2.0.1 - 755.42.1) <A90038ED-48F2-3CC9-A042-53A3D7985844> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fff906b7000 -     0x7fff90768fff  com.apple.LaunchServices (539.9 - 539.9) <07FC6766-778E-3479-8F28-D2C9917E1DD1> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
    0x7fff90769000 -     0x7fff90777ff7  libkxld.dylib (2050.48.12) <B8F7ED1F-CF84-3777-9183-0A1C513DF81F> /usr/lib/system/libkxld.dylib
    0x7fff90778000 -     0x7fff90898fff  com.apple.desktopservices (1.7.4 - 1.7.4) <ED3DA8C0-160F-3CDC-B537-BF2E766AB7C1> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
    0x7fff90899000 -     0x7fff90aceff7  com.apple.CoreData (106.1 - 407.7) <24E0A6B4-9ECA-3D12-B26A-72B9DCF09768> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
    0x7fff90acf000 -     0x7fff90ad7fff  liblaunch.dylib (442.26.2) <2F71CAF8-6524-329E-AC56-C506658B4C0C> /usr/lib/system/liblaunch.dylib
    0x7fff90b8b000 -     0x7fff90be2ff7  com.apple.ScalableUserInterface (1.0 - 1) <F1D43DFB-1796-361B-AD4B-39F1EED3BE19> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface
    0x7fff90e7f000 -     0x7fff90ea0ff7  libCRFSuite.dylib (33) <736ABE58-8DED-3289-A042-C25AF7AE5B23> /usr/lib/libCRFSuite.dylib
    0x7fff90ea1000 -     0x7fff90eebff7  libGLU.dylib (8.10.1) <6699DEA6-9EEB-3B84-A57F-B25AE44EC584> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
    0x7fff90eed000 -     0x7fff90ef0ff7  libdyld.dylib (210.2.3) <F59367C9-C110-382B-A695-9035A6DD387E> /usr/lib/system/libdyld.dylib
    0x7fff90fb7000 -     0x7fff90fb9fff  com.apple.TrustEvaluationAgent (2.0 - 23) <A97D348B-32BF-3E52-8DF2-59BFAD21E1A3> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
    0x7fff90fba000 -     0x7fff90fbffff  libcompiler_rt.dylib (30) <08F8731D-5961-39F1-AD00-4590321D24A9> /usr/lib/system/libcompiler_rt.dylib
    0x7fff90fda000 -     0x7fff911dafff  libicucore.A.dylib (491.11.3) <5783D305-04E8-3D17-94F7-1CEAFA975240> /usr/lib/libicucore.A.dylib
    0x7fff911db000 -     0x7fff912d8fff  libsqlite3.dylib (138.1) <ADE9CB98-D77D-300C-A32A-556B7440769F> /usr/lib/libsqlite3.dylib
    0x7fff912d9000 -     0x7fff9133cfff  com.apple.audio.CoreAudio (4.1.2 - 4.1.2) <FEAB83AB-1DE5-3813-BA48-7A7F2374CCF0> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0x7fff9133d000 -     0x7fff9169cfff  com.apple.Foundation (6.8 - 945.18) <1D7E58E6-FA3A-3CE8-AC85-B9D06B8C0AA0> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x7fff916c5000 -     0x7fff91873fff  com.apple.QuartzCore (1.8 - 304.3) <F450F2DE-2F24-3557-98B6-310E05DAC17F> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x7fff91874000 -     0x7fff91878fff  libpam.2.dylib (20) <C8F45864-5B58-3237-87E1-2C258A1D73B8> /usr/lib/libpam.2.dylib
    0x7fff9193c000 -     0x7fff91942ff7  libunwind.dylib (35.1) <21703D36-2DAB-3D8B-8442-EAAB23C060D3> /usr/lib/system/libunwind.dylib
    0x7fff91b30000 -     0x7fff91b3dfff  com.apple.AppleFSCompression (49 - 1.0) <5508344A-2A7E-3122-9562-6F363910A80E> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
    0x7fff91b8b000 -     0x7fff91b91fff  com.apple.DiskArbitration (2.5.2 - 2.5.2) <C713A35A-360E-36CE-AC0A-25C86A3F50CA> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x7fff91b96000 -     0x7fff927c3fff  com.apple.AppKit (6.8 - 1187.40) <F12CF463-6F88-32ED-9EBA-0FA2AD3CF576> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x7fff927c4000 -     0x7fff927e3ff7  com.apple.ChunkingLibrary (2.0 - 133.3) <8BEC9AFB-DCAA-37E8-A5AB-24422B234ECF> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
    0x7fff927e9000 -     0x7fff927ebfff  libquarantine.dylib (52.1) <143B726E-DF47-37A8-90AA-F059CFD1A2E4> /usr/lib/system/libquarantine.dylib
    0x7fff927ec000 -     0x7fff92859ff7  com.apple.datadetectorscore (4.1 - 269.3) <5775F0DB-87D6-310D-8B03-E2AD729EFB28> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
    0x7fff928a4000 -     0x7fff928a4fff  com.apple.Accelerate.vecLib (3.8 - vecLib 3.8) <F565B686-24E2-39F2-ACC3-C5E4084476BE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff928a5000 -     0x7fff928bcfff  libGL.dylib (8.10.1) <F8BABA3C-7810-3A65-83FC-61945AA50E90> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
    0x7fff92ba8000 -     0x7fff92c4eff7  com.apple.CoreServices.OSServices (557.6 - 557.6) <1BDB5456-0CE9-301C-99C1-8EFD0D2BFCCD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
    0x7fff92c8c000 -     0x7fff92cf5fff  libstdc++.6.dylib (56) <EAA2B53E-EADE-39CF-A0EF-FB9D4940672A> /usr/lib/libstdc++.6.dylib
    0x7fff92ed9000 -     0x7fff92f01fff  libJPEG.dylib (851) <64A3EB03-34FB-308C-817B-6106D1F4D80F> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x7fff92f02000 -     0x7fff92f15ff7  com.apple.LangAnalysis (1.7.0 - 1.7.0) <2F2694E9-A7BC-33C7-B4CF-8EC907DF0FEB> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
    0x7fff92f16000 -     0x7fff93068fff  com.apple.audio.toolbox.AudioToolbox (1.9.2 - 1.9.2) <DC5F3D1B-036A-37DE-BC24-7636DC95EA1C> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x7fff930d4000 -     0x7fff930e8fff  com.apple.speech.synthesis.framework (4.1.12 - 4.1.12) <94EDF2AB-809C-3D15-BED5-7AD45B2A7C16> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x7fff932c7000 -     0x7fff932cdfff  libmacho.dylib (829) <BF332AD9-E89F-387E-92A4-6E1AB74BD4D9> /usr/lib/system/libmacho.dylib
    0x7fff93428000 -     0x7fff93845fff  FaceCoreLight (2.4.1) <A34C9575-C4C1-31B1-809B-7751070B4E8B> /System/Library/PrivateFrameworks/FaceCoreLight.framework/Versions/A/FaceCoreLight
    0x7fff9385b000 -     0x7fff93860fff  libcache.dylib (57) <65187C6E-3FBF-3EB8-A1AA-389445E2984D> /usr/lib/system/libcache.dylib
    0x7fff93bbc000 -     0x7fff93beaff7  libsystem_m.dylib (3022.6) <B434BE5C-25AB-3EBD-BAA7-5304B34E3441> /usr/lib/system/libsystem_m.dylib
    0x7fff93beb000 -     0x7fff9457b627  com.apple.CoreGraphics (1.600.0 - 333.1) <C085C074-7260-3C3D-90C6-A65D3CB2BD41> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
    0x7fff945e3000 -     0x7fff94604fff  com.apple.Ubiquity (1.2 - 243.15) <C9A7EE77-B637-3676-B667-C0843BBB0409> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity
    0x7fff94605000 -     0x7fff94616ff7  libsasl2.2.dylib (166) <649CAE0E-8FFE-3C60-A849-BE6300E4B726> /usr/lib/libsasl2.2.dylib
    0x7fff9465f000 -     0x7fff9471cff7  com.apple.ColorSync (4.8.0 - 4.8.0) <6CE333AE-EDDB-3768-9598-9DB38041DC55> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
    0x7fff9484c000 -     0x7fff948a8ff7  com.apple.Symbolication (1.3 - 93) <97F3B1D2-D81D-3F37-87B3-B9A686124CF5> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
    0x7fff948a9000 -     0x7fff948b8fff  com.apple.opengl (1.8.10 - 1.8.10) <AD49CF56-B7C1-3598-8610-58532FC41345> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
    0x7fff948b9000 -     0x7fff94913fff  com.apple.print.framework.PrintCore (8.3 - 387.2) <5BA0CBED-4D80-386A-9646-F835C9805B71> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
    0x7fff949a7000 -     0x7fff949e7ff7  com.apple.MediaKit (14 - 687) <8AAA8CC3-3ACD-34A5-9E57-9B24AD8AFD4D> /System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
    0x7fff949e8000 -     0x7fff94aadff7  com.apple.coreui (2.0 - 181.1) <83D2C92D-6842-3C9D-9289-39D5B4554C3A> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
    0x7fff94ab1000 -     0x7fff94bbcfff  libFontParser.dylib (84.6) <96C42E49-79A6-3475-B5E4-6A782599A6DA> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
    0x7fff94cd6000 -     0x7fff94ce1fff  libsystem_notify.dylib (98.5) <C49275CC-835A-3207-AFBA-8C01374927B6> /usr/lib/system/libsystem_notify.dylib
    0x7fff94ce2000 -     0x7fff94d09fff  com.apple.framework.familycontrols (4.1 - 410) <50F5A52C-8FB6-300A-977D-5CFDE4D5796B> /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
    0x7fff95005000 -     0x7fff95013fff  libcommonCrypto.dylib (60027) <BAAFE0C9-BB86-3CA7-88C0-E3CBA98DA06F> /usr/lib/system/libcommonCrypto.dylib
    0x7fff952d2000 -     0x7fff95315ff7  com.apple.RemoteViewServices (2.0 - 80.6) <5CFA361D-4853-3ACC-9EFC-A2AC1F43BA4B> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
    0x7fff95941000 -     0x7fff95944fff  libRadiance.dylib (851) <C317B2C7-CA3A-329F-B6DC-7CC33FE08C81> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x7fff95945000 -     0x7fff959c4ff7  com.apple.securityfoundation (6.0 - 55115.4) <8676E0DF-295F-3690-BDAA-6C9C1D210B88> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
    0x7fff95a4c000 -     0x7fff95a53fff  libcopyfile.dylib (89) <876573D0-E907-3566-A108-577EAD1B6182> /usr/lib/system/libcopyfile.dylib
    0x7fff95a54000 -     0x7fff95a82fff  com.apple.CoreServicesInternal (154.3 - 154.3) <F4E118E4-E327-3314-83D7-EA20B1717ED0> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
    0x7fff95a83000 -     0x7fff95a84fff  libsystem_blocks.dylib (59) <D92DCBC3-541C-37BD-AADE-ACC75A0C59C8> /usr/lib/system/libsystem_blocks.dylib
    0x7fff95a85000 -     0x7fff95abeff7  libssl.0.9.8.dylib (47.2) <46DF85DC-18FB-3108-91F6-52AE3EBF2347> /usr/lib/libssl.0.9.8.dylib
    0x7fff95c30000 -     0x7fff95c31ff7  libremovefile.dylib (23.2) <6763BC8E-18B8-3AD9-8FFA-B43713A7264F> /usr/lib/system/libremovefile.dylib
    0x7fff95c32000 -     0x7fff95da7ff7  com.apple.CFNetwork (596.5 - 596.5) <22372475-6EF4-3A04-83FC-C061FE4717B3> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    0x7fff95da8000 -     0x7fff95e74ff7  libsystem_c.dylib (825.40.1) <543B05AE-CFA5-3EFE-8E58-77225411BA6B> /usr/lib/system/libsystem_c.dylib
    0x7fff95e75000 -     0x7fff95eafff7  com.apple.GSS (3.0 - 2.0) <423BDFCC-9187-3F3E-ABB0-D280003EB15E> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
    0x7fff95f41000 -     0x7fff95fa9fff  libvDSP.dylib (380.10) <3CA154A3-1BE5-3CF4-BE48-F0A719A963BB> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
    0x7fff95faa000 -     0x7fff95fabfff  libDiagnosticMessagesClient.dylib (8) <8548E0DC-0D2F-30B6-B045-FE8A038E76D8> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff95fe4000 -     0x7fff96021fef  libGLImage.dylib (8.10.1) <91E31B9B-4141-36D5-ABDC-20F1D6D1D0CF> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
    0x7fff96022000 -     0x7fff96022fff  libOpenScriptingUtil.dylib (148.3) <F8681222-0969-3B10-8BCE-C55A4B9C520C> /usr/lib/libOpenScriptingUtil.dylib
    0x7fff96028000 -     0x7fff96033ff7  com.apple.bsd.ServiceManagement (2.0 - 2.0) <C12962D5-85FB-349E-AA56-64F4F487F219> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
    0x7fff96034000 -     0x7fff9614c92f  libobjc.A.dylib (532.2) <90D31928-F48D-3E37-874F-220A51FD9E37> /usr/lib/libobjc.A.dylib
    0x7fff961a8000 -     0x7fff96202ff7  com.apple.opencl (2.2.19 - 2.2.19) <3C7DFB2C-B3F9-3447-A1FC-EAAA42181A6E> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
    0x7fff96203000 -     0x7fff96203fff  com.apple.Accelerate (1.8 - Accelerate 1.8) <878A6E7E-CB34-380F-8212-47FBF12C7C96> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x7fff96496000 -     0x7fff964c2ff7  libRIP.A.dylib (333.1) <CC2A33EB-409C-3C4D-97D4-41F4A080F874> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
    0x7fff964fc000 -     0x7fff9657eff7  com.apple.Heimdal (3.0 - 2.0) <ACF0C667-5ACC-382A-A998-61E85386C814> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
    0x7fff9657f000 -     0x7fff965c3fff  libcups.2.dylib (327.7) <9F35B58A-F47E-348A-8E09-E235FA4B9270> /usr/lib/libcups.2.dylib
    0x7fff9660b000 -     0x7fff9660cff7  libSystem.B.dylib (169.3) <9089D72D-E714-31E1-80C8-698A8E8B05AD> /usr/lib/libSystem.B.dylib
    0x7fff96665000 -     0x7fff96936ff7  com.apple.security (7.0 - 55179.13) <F428E306-C407-3B55-BA82-E58755E8A76F> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x7fff96937000 -     0x7fff96937fff  com.apple.CoreServices (57 - 57) <9DD44CB0-C644-35C3-8F57-0B41B3EC147D> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x7fff96938000 -     0x7fff96a0bff7  com.apple.DiscRecording (7.0 - 7000.2.4) <E5F3F320-1049-32D8-8189-916EF5C40A1A> /System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
    0x7fff96a0c000 -     0x7fff96a6bfff  com.apple.AE (645.6 - 645.6) <44F403C1-660A-3543-AB9C-3902E02F936F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
    0x7fff97262000 -     0x7fff97278fff  com.apple.MultitouchSupport.framework (237.4 - 237.4) <0F7FEE29-161B-3D8E-BE91-308CBD354461> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
    0x7fff97279000 -     0x7fff97287fff  com.apple.Librarian (1.1 - 1) <5AC28666-7642-395F-A923-C6F8A274BBBD> /System/Library/PrivateFrameworks/Librarian.framework/Versions/A/Librarian
    0x7fff97288000 -     0x7fff972a7ff7  libresolv.9.dylib (51) <0882DC2D-A892-31FF-AD8C-0BB518C48B23> /usr/lib/libresolv.9.dylib
    0x7fff972a8000 -     0x7fff972aaff7  libunc.dylib (25) <92805328-CD36-34FF-9436-571AB0485072> /usr/lib/system/libunc.dylib
    0x7fff97637000 -     0x7fff97659ff7  libxpc.dylib (140.43) <70BC645B-6952-3264-930C-C835010CCEF9> /usr/lib/system/libxpc.dylib
    0x7fff9765a000 -     0x7fff97844ff7  com.apple.CoreFoundation (6.8 - 744.19) <0F7403CA-2CB8-3D0A-992B-679701DF27CA> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff978ed000 -     0x7fff9798bff7  com.apple.ink.framework (10.8.2 - 150) <84B9825C-3822-375F-BE58-A753444FBDE2> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
    0x7fff979ec000 -     0x7fff97aeefff  libcrypto.0.9.8.dylib (47.2) <CF3BAB7E-4972-39FD-AF92-28ACAFF0873E> /usr/lib/libcrypto.0.9.8.dylib
    0x7fff97c4e000 -     0x7fff97c57ff7  com.apple.CommerceCore (1.0 - 26.2) <AF35874A-6FA7-328E-BE30-8BBEF0B741A8> /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
    0x7fff97c58000 -     0x7fff97c58ffd  com.apple.audio.units.AudioUnit (1.9.2 - 1.9.2) <6D314680-7409-3BC7-A807-36341411AF9A> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
    0x7fff97c6a000 -     0x7fff97c6bfff  liblangid.dylib (116) <864C409D-D56B-383E-9B44-A435A47F2346> /usr/lib/liblangid.dylib
    0x7fff97d02000 -     0x7fff97d83fff  com.apple.Metadata (10.7.0 - 707.12) <69E3EEF7-8B7B-3652-8320-B8E885370E56> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
    0x7fff97d8e000 -     0x7fff97ddaff7  libauto.dylib (185.4) <AD5A4CE7-CB53-313C-9FAE-673303CC2D35> /usr/lib/libauto.dylib
    0x7fff97ddb000 -     0x7fff97ddffff  libGIF.dylib (851) <AD40D084-6E34-38CD-967D-705F94B188DA> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x7fff97de2000 -     0x7fff97e2afff  libcurl.4.dylib (69.2) <EBDBF42D-E4A6-3D05-A76B-2817D79D59E2> /usr/lib/libcurl.4.dylib
    0x7fff97e2b000 -     0x7fff97f44fff  com.apple.ImageIO.framework (3.2.2 - 851) <6552C673-9F29-3B31-A12E-C4391A950965> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
    0x7fff97f45000 -     0x7fff97f5aff7  libdispatch.dylib (228.23) <D26996BF-FC57-39EB-8829-F63585561E09> /usr/lib/system/libdispatch.dylib
    0x7fff9810f000 -     0x7fff98145fff  com.apple.DebugSymbols (98 - 98) <14E788B1-4EB2-3FD7-934B-849534DFC198> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
    0x7fff98146000 -     0x7fff9819cfff  com.apple.HIServices (1.20 - 417) <A1129272-FEC8-350B-BA26-5A97F23C413D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
    0x7fff98232000 -     0x7fff98263ff7  com.apple.DictionaryServices (1.2 - 184.4) <054F2D6F-9CFF-3EF1-9778-25C551B616C1> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
    0x7fff98264000 -     0x7fff9828bff7  com.apple.PerformanceAnalysis (1.16 - 16) <E4888388-F41B-313E-9CBB-5807D077BDA9> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
    0x7fff982c6000 -     0x7fff982cbfff  com.apple.OpenDirectory (10.8 - 151.10) <CF44120B-9B01-32DD-852E-C9C0E1243FC0> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
    0x7fff982d0000 -     0x7fff982d4fff  libCGXType.A.dylib (333.1) <16625094-813E-39F8-9AFE-C1A24ED11749> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
    0x7fff982d5000 -     0x7fff982f7ff7  com.apple.Kerberos (2.0 - 1) <C49B8820-34ED-39D7-A407-A3E854153556> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x7fff982fe000 -     0x7fff9830dff7  libxar.1.dylib (105) <370ED355-E516-311E-BAFD-D80633A84BE1> /usr/lib/libxar.1.dylib

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 2
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 4590
    thread_create: 1
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=159.0M resident=192.0M(121%) swapped_out_or_unallocated=16777216.0T(11061006696448%)
Writable regions: Total=413.8M written=167.8M(41%) resident=289.2M(70%) swapped_out=0K(0%) unallocated=124.6M(30%)

REGION TYPE                      VIRTUAL
===========                      =======
CG backing stores                  3380K
CG image                             12K
CG shared images                   1216K
CoreServices                       2064K
IOKit                              4904K
IOKit (reserved)                    128K        reserved VM address space (unallocated)
MALLOC                            282.2M
MALLOC guard page                    48K
Memory tag=242                       12K
Memory tag=251                        8K
OpenGL GLSL                        4112K
OpenGL GLSL (reserved)              128K        reserved VM address space (unallocated)
STACK GUARD                        56.0M
Stack                              9752K
VM_ALLOCATE                        16.1M
__DATA                             11.3M
__IMAGE                             528K
__LINKEDIT                         53.8M
__TEXT                            105.3M
__UNICODE                           544K
mapped file                        39.2M
shared memory                     100.3M
===========                      =======
TOTAL                             690.3M
TOTAL, minus reserved VM space    690.1M

Model: MacBookPro8,2, BootROM MBP81.0047.B27, 4 processors, Intel Core i7, 2 GHz, 8 GB, SMC 1.69f4
Graphics: Intel HD Graphics 3000, Intel HD Graphics 3000, Built-In, 512 MB
Graphics: AMD Radeon HD 6490M, AMD Radeon HD 6490M, PCIe, 256 MB
Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1333 MHz, 0x859B, 0x435435313236344243313333392E4D313646
Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1333 MHz, 0x859B, 0x435435313236344243313333392E4D313646
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xD6), Broadcom BCM43xx 1.0 (5.106.98.100.17)
Bluetooth: Version 4.1.7f2 12718, 3 service, 13 devices, 3 incoming serial ports
Network Service: Wi-Fi, AirPort, en1
Serial ATA Device: OCZ-VERTEX4, 512.11 GB
Serial ATA Device: MATSHITADVD-R   UJ-8A8, 3.32 GB
USB Device: FaceTime HD Camera (Built-in), apple_vendor_id, 0x8509, 0xfa200000 / 3
USB Device: hub_device, 0x0424  (SMSC), 0x2513, 0xfa100000 / 2
USB Device: BRCM2070 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0xfa110000 / 5
USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x821a, 0xfa113000 / 8
USB Device: Apple Internal Keyboard / Trackpad, apple_vendor_id, 0x0252, 0xfa120000 / 4
USB Device: hub_device, 0x0424  (SMSC), 0x2513, 0xfd100000 / 2
USB Device: IR Receiver, apple_vendor_id, 0x8242, 0xfd110000 / 3

Set nick client side

Having to set nick on every connect gets irritating, but for persistent nicks, storing them server side isn't exactly scalable (storage, client identification, name collisions).

Ultimately I'd like to be able to set a nick client side, offline. Other than requiring changes to the server to support receiving nicks (I think it could just store at connect and /nick and mostly keep the current code) it will be necessary to decide how to handle collisions. Currently there is no regard for collisions. Pull request #62 prevents collisions but for obvious reasons doesn't address the situation where a collision occurs when a client connects. The simplest solution, outside of continuing to disregard collisions, may be to assign the offending client a default name similarly to what happens now.

Bug: Falling through blocks from a height

Weird bug:
In fly mode, if you drop straight down from a large height, you clip right through the blocks on the ground.

Also if you tab out of fly mode from a height, and drop straight down, pointing directly towards the ground, it clips right through.

Seems to be more easily repeatable if I connect to the server from two clients at the same time on my computer.
screen shot 2013-12-16

A potential account system

It would be nice if there was an account system that would save our player's accounts, maybe password protect them, and hold our location (and potentially inventory in the future). However, it would be a huge pain to host a primary server to hold this info, and we do not want to reserve usernames on servers we will not ever go on. The solution is to make each server hold its own account data.

From the Command Line

If a user goes to connect to a server, there can be an additional argument for uesrname:

./craft <ip> <port> <user>

It would then ask for your password, like how the sudo command works on mac and linux.

From Inside the Game

You should also be able to join without a username, and play as a guest, and create an account with /user create <name> <password> <confirm>. While in the server, you could rename your account with /user rename <new name>, and change password with /user password <current password> <new password> <confirm>. Lastly, it would allow you to log-in and log-off your account with /user logon <account> <password> and /user logoff. We would also allow deletion of accounts with /user delete while logged in.

Why?

Beyond simple data storing, this would allow for a permissions-like interface by changing who could perform what actions as more get added on. We could also mess with the colors of names based on their permission-level.

segfault under Linux

building from current git HEAD, I get a segfault

everything looks normal

[herrold@centos-6 Craft]$ ldd /home/herrold/rpmbuild/BUILDROOT/Craft-0.0.20131218.git-1.orc6.x86_64/usr/bin/craft
linux-vdso.so.1 => (0x00007fffb7dff000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003651e00000)
libGLEW.so.1.5 => /usr/lib64/libGLEW.so.1.5 (0x0000003a6cc00000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x0000003a6c000000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003651a00000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x0000003a6d800000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x0000003a6d000000)
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x0000003a71e00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003652600000)
libm.so.6 => /lib64/libm.so.6 (0x0000003651600000)
libGL.so.1 => /usr/lib64/libGL.so.1 (0x0000003a72a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003651200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003650e00000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x0000003a6c400000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x0000003a6c800000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f692814a000)
libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x0000003d1ce00000)
libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x0000003a6e400000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x0000003a6d400000)
libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x0000003a73800000)
libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x0000003a72200000)
libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x0000003a73400000)
libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x0000003660e00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003652a00000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x0000003653e00000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x000000365de00000)
[herrold@centos-6 Craft]$

but it ends: ...
poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}])
writev(5, [{"\210\23\3\0\0\0\0\0\2\0\0\0", 12}], 1) = 12
poll([{fd=5, events=POLLIN}], 1, -1) = 1 ([{fd=5, revents=POLLIN}])
recvfrom(5, "\0\1@\0\2\0@\20\23\0\210\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault
[herrold@centos-6 Craft]$ strace /home/herrold/rpmbuild/BUILDROOT/Craft-0.0.20131218.git-1.orc6.x86_64/usr/bin/craft 199.115.118.225 16018 2>&1 | wc -l
754
[herrold@centos-6 Craft]$

How may I assist in debugging this?

Add a LICENSE.md

I suggest something open-source, to stir mods and improvements to the code. This is awesome!

Destroying Block under your feet freezes screen

Ubuntu 13.10 with Gnome and an NVidia card, more details on request, don't know what's helpful.

This helped to get back to a working desktop:

$ killall craft
$ /etc/init.d/x11-common restart

Unable to build on ubuntu

Following the directions on the readme, I cannot compile Craft on xubuntu.
I am using a live CD, but have installed all the dependencies successfully.

~/Craft/> cmake .
-- The C compiler identification is GNU 4.7.3
-- The CXX compiler identification is unknown
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so  
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Using X11 for window creation
-- Using GLX for context creation
-- Looking for glXGetProcAddress
-- Looking for glXGetProcAddress - found
-- Looking for glXGetProcAddressARB
-- Looking for glXGetProcAddressARB - found
-- Looking for glXGetProcAddressEXT
-- Looking for glXGetProcAddressEXT - not found
-- Found GLEW: /usr/include  
-- Configuring incomplete, errors occurred!
~/Craft/> make
make: *** No targets specified and no makefile found.  Stop.

Any one have a working ubuntu build they can share?

Dummy Mob

hi,

I tried to add a mob based on the player class but it is not displayed, probably due to some simple error. It would be nice to have some dummy mob added.

Crashes at start in another folder [minor]

I get an error when I cmake/make craft in another directory :(

[574][itichi@home: Craft]$ mkdir tmpbuild && cd tmpbuild
[574][itichi@home: tmpbuild]$ cmake ../.
[574][itichi@home: tmpbuild]$ make
[574][itichi@home: tmpbuild]$ ./craft
error 78: failed to open file for reading
Erreur de segmentation (core dumped)
[575][itichi@home: tmpbuild]$ echo $?
139

Read client settings from configuration file

I'd like to see (most of) the macro constants in main.c migrated to a separate file that is read at launch, possibly keeping the macros as fallbacks. From a developer perspective this has the advantage of allowing custom settings without Git complaining. From a user perspective it has the advantage of not necessitating repeated compilation as well as persisting client settings that can't reasonably be hard-coded (e.g. nick).

I'm willing to take a shot at this, myself, too, but only if @fogleman agrees with the merit and would be willing to integrate the changes (notwithstanding the quality of any implementation my unrefined skills could amount to). Some specifics would also need agreeing on:

  • format
  • file path
  • desired settings
  • documentation/communication

If I had to answer those questions I'd probably pick .ini; same directory as the craft binary; support as many settings as possible; and add a sample file containing all supported settings with their default values and as much additional documentation as possible. That file probably wouldn't be read by the client but simply serve as a reference or a starting point for personal configuration, because otherwise people may edit that file directly and then versioning becomes problematic again. I'm not married to any of those ideas, however. A more Linux-y approach would look for a dot-file in $HOME or something but that would be very un-Windows-y and I don't like that.

Some specific goals I would like to achieve with this:

  • customizing video and keybind settings without triggering changes
  • client side nicks (see #63)
  • server aliases

Able to clip into cubes.

I am able to clip into cubes when walking towards them at strange angles, not 100% reproducible but if you hump the cube for a bit you will clip into it.

Windows build fails

Compiler - MVS 2012

Allows only c89 standard which breaks code because of declarations not made at the beginning of block.
Used gcc with cygwin to get a successful build. But can anyone suggest an alternative for use with Visual studio

Give access to foliage block

The foliage block used by trees does not seem to be available to players. This means we can't make Christmas trees.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.