Giter Site home page Giter Site logo

crust's People

Contributors

elemel avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

wanhuali

crust's Issues

Delauney triangulation

Implement a Delauney triangulation using the circumcircle function. Start with brute force, checking all triangles for each point added to the triangulation.

Story: Efficient block generation (#9)

Particle effects

While grabbing, draw particle effects around the character's hands and the grabbed block.

Also draw particle effects around the character's feets when flying with jet boots.

Chain spider

Chain spiders spawn in the ceilings of rooms. They crawl on walls and in the ceiling until they are above the hero. Then they lower themselves on a chain to bite him in the head.

Depends on story: Chains

Block collisions

Give blocks an additional collision shape that is 0.1 m smaller. Use it when colliding with other blocks.

Block physics

Adapt physics shapes to arbitrary blocks. User can interact with blocks directly using the mouse.

Rasterize blocks

Implement block.rasterize(polygon)

Populates the block with only the elements that overlap the polygon. Start with a point-in-polygon test for each potentially overlapping element.

Store the polygon for use in physics. This is a hack but should be good for now.

Implements story: Efficient block generation (#9)

Improve block seed generation

Use a progressive Poisson disc instead of random points for block generation. Generate a single Poisson disc and use it for all sectors.

The Poisson disc is 20 by 20 meters, with a point every 0.1 meters. The points are ordered so that they fill the disc gradually, while maximizing the distance to other points.

When generating blocks, try skipping a random number of points from the Poisson disc before getting the next point. Hopefully this will make sectors look different.

Rationale: Using completely random seed points results in too much clustering, and in too much variation in block sizes.

Faceted block normals

Blocks currently have flat normals, more or less. Give them faceted normals instead.

Rocket boots

The rocket boots can give the hero a boost in mid-air. He can even fly for a limited time. Control them by holding the jump key in mid-air.

Water

Start with hardcoded water boxes. Apply buoyancy forces on submerged bodies.

Chain mode

Add a game mode where the player can draw chains using the mouse pointer. The chains can connect two blocks or hang from a block.

Character

Control a character that can walk and jump. Use a circle for physics and implement walking and jumping by setting velocity or by applying force or impulse.

Character sprites

Start with a static sprite for the character. Mirror it when he faces left.

Circumcircle function

Implement the circumcircle function for triangles. Details on Mathworld and Wikipedia.

Story: Efficient block generation (#9)

Bat

Bats fly around and avoid nearby blocks. They can hang from the ceiling to rest.

Iceberg

Create an iceberg by shooting ice magic at water.

Depends on story: Water (#1)

Stomp

Crack the ground by stomping. Might be invoked by pressing the down key while falling, or by pressing down + jump, and/or by wearing metal boots. Dislodges and splits blocks below when landing.

Velocity-based character control

The physics-based character control seems too flaky, in particular the jump height when running uphill or downhill. Use velocity-based control instead.

Frustum culling

Start by computing which sectors intersect the frustum box. Then test each actor in each sector for intersection before drawing it.

Implements story: Improve draw performance (#17)

Component-based

Move to a component-based design for the game. Rationale: More flexible, maintainable and extensible.

Spell-casting IK

When grabbing and manipulating a block, keep the character's arms aimed toward it.

Improve draw performance

Start with frustum culling. If that's not enough, look into using vertex buffers instead of, or in addition to, vertex arrays.

Smooth floors

Problem: The dungeon generation currently removes entire blocks if their centers are contained within a generated room or corridor box, resulting in jagged floors that are difficult to walk on.

Solution: Clip the floor blocks instead of removing them completely. Keep walls and ceilings the way they are now. Alternatively, clip 80% of the floor blocks and 20% of the wall and ceiling blocks.

Chains

Add chains as a new actor type. A chain is a series of links. Each link is a pixel. The links are connected at the corners with a revolute joint.

Mining

Add a mining mode. Start with simply removing clicked blocks that are close to the character.

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.