Giter VIP home page Giter VIP logo

scuffedcraft's Introduction

ScuffedCraft

Ever wanted to play a Minecraft clone on the Nintendo Wii? Well here is a scuffed version, everything is scuffed from the textures, to the font and to the code. This is why the project is affectionally called ScuffedCraft.

ScuffedCraft is a totally open source voxel game written in C, minor updates are tested primarily via Dolphin, although releases are tested on a homebrewed Nintendo Wii. note, this project is not affiliated with Nintendo.

ScuffedCraft Works

IT WORKS ON REAL HARDWARE

Build instructions

# Pull the repo
git clone https://github.com/LawG4/Scuffedcraft.git
cd Scuffedcraft

# Install and build all dependencies
# For Linix and mac:
sudo -E bash scripts/init-repo.sh
# For Windows:
bash scripts/init-repo.sh

# Build ScuffedCraft
make

# Run ScuffedCraft on Dolphin. On WSL make sure to edit scripts/sc_env.sh first
bash scripts/run.sh

For Windows and most likely Mac, I cannot automatically install the dependencies. This is because Windows doesn't have a package manager, Mac has homebrew and it might work if you're lucky. Luckily on Windows there's a graphical installer, so you'll be okay. That's why we don't need sudo on windows, since we're not installing anything for you, there's also the fact that msys2 doesn't have sudo...

If you want to install everything yourself, or you're using an unsupported platform, I am working on detailed manual instructions.

Gameplay features

  • Big plane loaded in, that you can fly around.
  • Infinitely loads flat terrain
  • Works on real hardware!!!!
  • That is it at the moment.

Development Goals

Do you want to help contribute to the code base? Here's a list of features I'm planning to add, and it'd be lovely if you'd like to help! Also feel free to go absolutely wild and implement whatever you want!

  • Switch mesh from a linked list of faces to automatically reallocated array of faces
  • Test the Wii to see if there is a benefit to using quad primitives instead of triangular
  • Storing and loading world files
  • Seeds that dictate how a terrain is created
  • Entities
  • Multiple controller support
  • Controller abstraction
  • Logging
  • Collision
  • Mesh freeing

Patch notes

0.0.2 in progress

  • Restructure the makefile, firstly to make it easier to understand. Secondly so I can understand the build process better as I was relying on a Grrlib template.
  • Supplying bash scripts to init the repo
  • Automatically generate a texture atlas for the standard blocks

0.0.1

  • Major refactor of the codebase to a more expandable and modular structure
  • Added chunk memory management - Allocate a fixed size for the currently rendered chunks and then dynamically switch the chunks in and out of memory (Currently we're not actually changing the chunk but just the world matrix since all the terrain looks the same)
  • Added an extraordinarily simple logging and retrieval system
  • Removed Collision code because it was not inline for the expandability I wanted
  • Abstracted block based functionality out of the rendering system
  • Removed Cock.png (I had a testing image which was to make sure I could map textures and I forgot to remove the test image)

scuffedcraft's People

Contributors

lawg4 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

scuffedcraft's Issues

Mesh.c : Automatically Reallocated Array of Faces

Currently I am using a linked list of faces to represent a mesh. I choose this initially because the mesh that makes up a chunk might change in size when the player edits a block. This is a terrible implementation and should be swapped out.

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.