Giter Club home page Giter Club logo

crucible's Introduction

Crucible


What is this project?

A couch Co-Op 2D top-down stealth rogue-like game.


Tools

  • C++
  • SFML
  • CMake

Dev Log

Entry #1 [Nov 14th -> Nov 26th, 2023]:

  • Basic 2D geometry added to the world.
  • Basic player controls.
  • Ability to push and move objects in the world.
  • Introduction of entity memory pooling.

I did not take screenshots during this period.


Entry #2 [Nov 27th -> Dec 30th, 2023]:

Not a huge amount of time was spent working on the project during this period due to work and with the Christmas holidays. However, I did start a separate branch on the project for building my own line segment intersection algorithm.

The goal with this was to add a visibility system to the game so we could determine what is visible to a given entity.

This went through many changes as a result of the wrong strategy being used. The initial implementation worked for a set of rays in a radial pattern around the player entity. However, when joining these rays with a TriangleFan there was a lot of jagged edges, flickering and clipping over the corners of other world entities. Eventually, I managed to succeed in getting this to work.

Here are the changes summarised during this period:

  • Visibility System with Line Segment Intersection

Screenshots Sat 30 Dec 2023 16:50:20 GMT Sat 30 Dec 2023 16:57:20 GMT

  • The pinky block represents our player and light source.
  • The yellow area represents the region the player can see.

Entry #3 [Jan 21st, 2024]:

Haven't had much time to work on this project over the last month, but except for one notable fix:

  • Fixed a bug where the light rays would flicker when pushing entities in the game world.

Entry #4 [Feb 1st, 2024]:

  • Added tiling to the world with single tileset.
  • Add spawn point (blue tile)
  • Add end zone (green tiles)
  • Maintain performant visibility system without ray casting to each tile vertex.
  • Arrow blocks can be pushed
  • Add visibility system blend (sf::Multiply) for the background tiles to still remain visible while lit.
Add tiling to the world

Mon 26 Feb 2024 18:48:17 GMT

Collision and Block-Pushing behaviour functional

Mon 26 Feb 2024 18:48:34 GMT


Entry #5 [Feb 14th, 2024]:

  • Added a new tileset to game world (purple-dungeon-brick)
  • Add spawn tiles
  • Add end tiles
  • Add patrolling guards (No guard texture, just a patrolling brick texture)
  • Merged with existing tileset from Entry #4 (See the spawn zone and end zone)
  • Add lower level for player-2 for Couch Co-op. (An idea I think I want to toy with is if one of the two player's is caught, the other player can additionally complete the opposing section of the map to beat the stage.)

Mon 26 Feb 2024 18:39:16 GMT


Entry #6 [Feb 26th, 2024]:

  • Catacomb asset texturing to world applied
  • Enable multiple tile layers in world file to stack correctly.
  • Enable multiple tile sets across multiple tile layers to render as expected.
  • Guard pathing updated to patrol around catacombs.
  • Update player spawn location(s)
  • Update lighting approach to use polygons rather than rects. This greatly improves performance from the reduction in vertices.
  • Update collision logic to be based on polygons and polylines rather than at the tile level.
  • Add end zone to the stage that the player must reach to complete the stage.
  • Add overlays to darken map and a lighter ellipse to give more visibility around player. This is done through blending ([multiply] and [add] respectively).
First Stage Spawn Area

Mon 26 Feb 2024 18:16:51 GMT

Lighting showcased

Mon 26 Feb 2024 18:17:34 GMT

Credit

crucible's People

Contributors

ticketedmoon avatar

Watchers

 avatar

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.