Git Product home page Git Product logo

phoenix-write's Introduction

i don't apologize for the horid code

lil explainer

  • yes, its a svelte-kit website.
  • variable and file names are god shit tier. some names are just set up as a joke to be stupid confusing.
  • static/maps holds the maps (cutscense and levels)
  • main level code is split among input.ts, main level visuals in _Level.svelte
  • cutscene code with all edge cases entirely contained in _Cutscene.svelte
  • the duet is made from copy pasting the regular game and thus is highly hardcoded, see _Duet.svelte and duet_fork.ts
  • a custom map format exists, parsing is in map-parser.ts
  • see types.ts for all the types for the meta.json, cutscene.json, and flags object (the json at the end of each line in map.txt)
  • "builtversion" is a separate vite project since SvelteKit doesnt play well with itch io. this is what the build is from, and SK is used just for development
  • in development mode, maps.json is provided via an api endpoint maps.json.ts and in production its baked using generatefinal.mjs
  • i think _Container.svelte and the css --unit variable is really cool. it makes the game feel more like a real game by forcing a 16:9 aspect ratio and then making --unit equal to 1/100 of the game frame's width. everything from position to font size to letter spacing is written in terms of --unit, so the game scales to any screen.

commands

  • dev with yarn dev
  • build with ./BUILD.ps1, but when it says press enter to continue, you have to first do this
    • from build move cursor, cursor-red, carlito-bold, alfaslabone-regular, all into the build/assets folder
    • manually make the paths in index.html relative, add a . so its ./assets
    • then press enter, makes a zip for itchio

phoenix-write's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

bobbyboi123

phoenix-write's Issues

When user hits "D" in "PEMDAS" incorrectly, user respawn location is wrong.

Windows 10 Firefox.

This happens when the WORD PENALTY is at its least severe state.
https://i.imgur.com/sonUjtb.png
User respawns to the right of the plus sign instead of the left.

Interestingly, resizing the window snaps the playhead into place.

Respawning to the right of the + sign (when you need to hit the + sign) also happens when user hits the "i" in "idk" incorrectly; when the WORD PENALTY is at its middle state of severity.

Post Jam Cleanup Tasks and Features

Here are my ideas that relate to the code for post jam stuff.

  • Make maps more modular, adding "campaigns" / "playlists of maps" as a thing, and move map videos. But also standalone maps can be played.
  • You can provide a url to a (cors allowed) json file to play a map from any origin.
  • Support other video sources other than mp4 links
    • YouTube using it's embed api
    • Twitch VODs and Clips using it's embed api
    • TikTok??? (will have to do a little trickery to get videos to play)
    • ... other sources??
  • Menu UI for choosing what map / campaign you want to play.
  • Merge duet and level logic. They should be the same code.
  • Adjust map format to merge duets and levels, where instead the level defines a list of tracks with colors.
  • Try and remove a lot of hardcoded logic used for the ludwig/tutorial campaign, or at least rename them to variables that make sense.
  • Map Editor
    • Level Editor
    • Cutscene Editor
    • ??? Allow people to publish youtube/twitch based maps to a database (that way i dont have to store videos)

I will be slowly working towards this list, but if someone else would like to help contribute, please get in touch.

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.