axus / libmc--c Goto Github PK
View Code? Open in Web Editor NEWLibrary for MultiCube-- world and drawing functions
Library for MultiCube-- world and drawing functions
libmc--c: MultiCube-- Client Library Provides world representation data structures and OpenGL drawing functions. ********************************************************************** Copyright 2010-2011 axus libmc--c is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or at your option) any later version. libmc--c is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ********************************************************************** See LIBRARIES for description of required libraries Prerequisites for MinGW/MSYS: MSYS + MinGW with GCC 4.5+ git Prerequisites for Linux (tested on RedHat variants): #You must have permission to install libraries to /usr/local/lib Package manager git and other development tools #Install the prerequisite libraries ./README.linux Graphics files (not included, copy to binary directory) terrain.png gui/items.png item/sign.png Build and test instructions #Clone the git repository from github git clone git://github.com/axus/libmc--c.git #Build the library and install cd libmc--c make make install #Build the test program and run cd test make run Thanks to the following people who tested: vLK Zaneo Koitenshin KyleXY ReDucTor AndrewPH
Requirements:
Support temporary particles created by actions, such as:
Warning with latest copy.
src/UserInterface.cpp:224: warning: format ‘%3d’ expects type ‘int’, but argument 3 has type ‘size_t’
Just need to typecast viewer.glListMap.size() to int
Drawing speed would increase if glNewList, glEndList, and glCallList were used.
Some people would say to skip that and use modern things like VBOs. But I'll save that for a future issue.
Requirements:
limc--c is planned to be a stand-alone interface which does not contain network code. However, the "World" class should have an interface that allows it to be updated by networking code.
The current version only allows creation of new chunks, without an easy way to update them.
Requirement:
Drawing cubes and planted items is working great.
These should also be drawn correctly, using meta-data:
Requirements:
What can you do, right? But Minecraft is faster, so must fix it ;p
Options to decrease the draw distance AND use chunk invisibility flags are needed.
A real unexplained bug! Sometimes block faces will simply not be drawn, leaving holes in the terrain. Usually +X or -X, sometimes +Z/-Z. It might be a case of checking the wrong neighbor index?
Using GLUT and autoconf will allow building on weird operating systems for crazy people like kev009
Create mc--c.cfg if needed with default graphics configuration options. Allow user to change it.
(Username/Password/Server list will be separate)
libmc--c should allow callbacks to be assigned for all player interactions with the world
Requirements:
Need Frames Per Second Display.
I have one if you want the patch.
The test program is fast when drawing a few map chunks, but eating half a core of my fast CPU and uses about 250MB for 11x11 map chunks.
Map chunks are 16x128x16 blocks. I'd thought that not drawing hidden block faces would speed things up, but the drawing is still slow. For a flat mapchunk, it's 256 textured quads, so for 121 map chunks its 30976. That should be OK, but it's not.
I'm going to think of a way to combine adjacent quads that have the same texture.
Typical client information displays need to be added:
Optional:
libmc--c has only been tested with MinGW on Windows XP, Vista, and 7. As it's compiled with GCC 4.5.0, it should build on Linux and BSD in theory. The Makefiles are MinGW specific, though.
Requirements
Currently, movement is along X/Z axes, and rotation is about the world origin Y axis.
Requirement:
Right now, the camera can fly around anywhere, through walls, etc.
Requirement:
Keep a record of servers that have been connected to (and their custom username/passwords). Allow selection of server from main menu. (This requires a main menu).
Every block ignores metadata now. Drawing function should consider the metadata.
Need to draw mobile game entities:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.