Giter VIP home page Giter VIP logo

craft-engine's Introduction

craft-engine

Fork of the original craft by Code.org.

Building

Profiles

craft-engine uses a custom build system, with two "profiles": prod and dev. The prod profile builds, minifies and stores the generated files under the build directory. On the other hand, dev works directly in memory, does not minify the files, and starts a server at localhost:8000.

Dev dependencies

The build system requires node >= 10, npm, and some additional packages. To install them, do:

npm install

Commands

Finally, to build craft-engine itself, do:

# For the dev profile
npm run build-dev
# For the prod profile
npm run build-prod

Licensing

This project is licensed under an Apache 2.0 license. See the LICENSE and NOTICE files for more information.

Third-party licenses

Both Phaser.js and CodeMirror are licensed under a MIT license. Please see the third-party-licenses file.

craft-engine's People

Contributors

alvarito050506 avatar nobody5050 avatar noozabooz avatar stealthhydra179 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

craft-engine's Issues

Implement all levels in default game

Since some don't work with WASD, so I propose that we make it toggleable, either using blocks/code or using WASD

Adventuruer:

  • adventurer01
  • adventurer02
  • adventurer03
  • adventurer04
  • adventurer05
  • adventurer06
  • adventurer07
  • adventurer08
  • adventurer09
  • adventurer10
  • adventurer11
  • adventurer12
  • adventurer13
  • adventurer14

Agent:

  • agent01
  • agent02
  • agent03
  • agent04
  • agent05
  • agent06
  • agent07
  • agent08
  • agent09
  • agent10
  • agent11
  • agent12

Aquatic:

  • aquatic01
  • aquatic02
  • aquatic03
  • aquatic04
  • aquatic05
  • aquatic06
  • aquatic07
  • aquatic08
  • aquatic09
  • aquatic10
  • aquatic11
  • aquatic12

Designer:

  • designer01
  • designer02
  • designer03
  • designer04
  • designer05
  • designer06
  • designer07
  • designer08
  • designer09

Functionality:

  • functionality01
  • functionality02
  • functionality03

YEET JQUERY

Remove jquery from the code for optimizations.

Integrate Blockly

Integrate Blockly, and add custom blocks for exposing the following functions:

  • Mob AI,
  • Agent programming,
  • Player programming,
  • Custom JS execution,
  • Setting world time,
  • Direct world/level/map modification.

If there are more APIs we should expose, feel free to comment them.

Clean-up

  • Yeet jQuery: It's not needed at all. Easy; high priority.
  • Clean-up HTML and CSS code. Easy; medium priority.
    Clean-up JSON files. Difficult; high priority.

I'm probably missing something, will add it later.

Merge unmerged branches from code-dot-org/craft

There are numerous pull requests open on code-dot-org/craft which introduce new features to the game. Provided they function, they should be merged over here with credit given to the original author of the commits.

Build basic game

The following features should be implemented:

  • Inventory. It's internally implemented, so expose it. Easy; high priority.
  • Basic mob AI (e.g. zombies following players, creepers exploding). Difficult; medium priority.
  • Level saving. Easy; low priority.
  • Level generation. Medium difficulty; Medium priority.
  • Crafting. Unknown difficultly; Medium priority.

Something else? Feel free to propose new features.

Day night cycle is frozen

Some maps depend on the day night cycle, however in the current build it is frozen and never advances.

I suggest we implement a tag that can be added to a level’s definition allowing us to freeze or unfreeze day/night cycle in a specific level, aswell as a tag for starting state, either day, or night.

Expose code to level api

When defining levels we are able to define terrain features and starting player/mob positions. I move that we should also have an api for defining starting code.

While this would introduce some inconsistencies, specifically in the mob spawning api (spawning mobs via the level api vs spawning them using api code run on level load) I think it would benefit both users of craft-engine and level designers overall.

For level designers it would allow them to hardcode mob ai, as well as set up block interactions.

For end users it would allow easy modding, just load a level and modify its code. It would also let users gain more familiarity with the level’s they are playing without also compromising the original play style of craft.

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.