Git Product home page Git Product logo

fantasycrescendo's Introduction

logo

License Docs Join the Hourai Teahouse Discord Chat

Fantasy Crescendo is a collaborative community project to create a Touhou Project fangame akin to that of Super Smash Bros.

This project does not only consist of code contributions, and many of the assets included are custom art, music, sound effects, and 3D designs created by community submissions. For a full list of credits, see the credits file in the repository.

Installing

The recommended way of installing the game is through the dedicated game launcher. The launcher will automatically download and update the game with the latest builds from the project's Unity Cloud Build piepline:

A few important notes:

  • The Windows download is a installer that will automatically install the game for users.
  • At the current moment, the macOS and Linux installers do not come with platform specific installers and are raw binaries that need to be executed from the command line. (Open to any PRs that package the launcher into *.apps and *.debs).
  • The Linux builds has been tested only on Ubuntu/Debian, but should be executable in any Linux distro. There is no official support for other Linux distros.
  • The launcher is developed seperately and also open source. The repo is for it is hosted at https://github.com/HouraiTeahouse/HouraiLauncher.

System Requirements

While still in development, we do not have a fixed set of minimum hardware requirements for the game. However, it is recommended that you are running at least the following:

  • CPU: AMD FX-4350, 4.2 GHz / Intel Core i5-3470, 3.20 GHz or newer.
  • Memory: 8GB RAM or more.
  • GPU: Radeon HD 7870, 2 GB / GeForce GTX 660, 2 GB or newer.
  • Graphics: DirectX 11 or newer.
  • Networking: 256kbps Internet connection or faster.

In testing the game while still in development, please understand that the adequate hardware to run the game may change at any point, and performance regressions are to expected.

Contributing

This is an open community driven project. Contributions are very welcome. Code based contributions can be received and reviewed publicly on this repository. Non-code assets like BGM or 3D models are best sent through and collaborated on in our development Discord server, linked above. For more information, please read CONTRIBUTING.md.

For documentation while contributing, including how to set up the project, refer to the project documentation site, which has detailed guides on how to [set up the project])(https://docs.houraiteahouse.net/FantasyCrescendo/guides/project-setup), as well as the API reference.

License

First and foremost, Fantasy Crescendo ~ Rumble Dream Ensemble is a derivative of Touhou project. Thus, we ask that any redistirbution or derivative of this project adhere to the guidelines created by ZUN, viewable in English here.

Furthermore, original Fantasy Crescendo content is licensed under two seperate liscenses depending what content is in question:

  • The software (all text files) are under the Version 2 of the GPL or any later version. See LICENSE for more information.
  • The content, everything else, is evaluated on a per item basis. Please contact the original creator before reproducing or editing any of the game assets.

fantasycrescendo's People

Contributors

gabo-7 avatar james7132 avatar ladyebony avatar pzhang87 avatar samuribe avatar

Stargazers

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

Watchers

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

fantasycrescendo's Issues

Music for Forest of Magic

There are a few pieces of music we would like arranged for the Forest of Magic stage.

  • Stirring an Autumn Moon ~ Mooned Insect
  • Vessel of Stars ~ Casket of Star
  • Apparitions Stalk The Night
  • Love Colored Master Spark

Implemented:

  • Doll Judgement ~ The Girl Who Played With People's Shapes (crescentia)
  • Illusionary Night ~ Ghostly Eyes (Flurrybolt)
  • Love Colored Magic (Peacock Roy)
  • Magus Night (Pigu-A)

Public Test Animation (and other) bugs

-Youmu sometimes stays in her idle animation while jumping, apparently when the jump is performed during the landing animation.
-Similarly, jumping immediately after regrabbing the ledge leaves you in the ledgegrab animation until you jump again.
-If you walk off of the stage or a platform, you still get two jumps.
-The platform you respawn on is solid from all directions, even after you leave it.
-The stock count doesn't change when you die.

Create general API for managing persistent game options

This is mainly necessary for having a configurable game. The system needs to meet the following requirements.

  • Persistent: these options should be readable
  • Reflective: there should be ways to inspect all of the options. This will be particularly useful with auto-generating UI for menus.
  • Type-safe

Proposed implementation:

Options will be stored and managed by a OptionsSystem, Supporting a way to access a iterable, categorized list of Option objects.

[Category("Match")]
public class MatchOptions : OptionsBase {
  [Option("Show Damage")]
  public bool ShowDamage { get; set; }
}

Static Hitboxes

We need a behavior component that can act as a constant damaging hitbox.
It should require a Collider, and whenever it comes in contact with a player, it should deal damage and deal appropriate knockback.

This can be useful for developing stage hazards, and is a good segway into dyanmic hitboxes seen in character attacks.

Character Icons

We're still missing character icons for a few characters.

  • Sakuya
  • Youmu
  • Yuugi
  • Yuuka
  • Murasa

Recreate match system for networked games.

General TODO:

  • Sync match start time
  • Manage player connections and match setup
  • Server authoritative character selection

Matches in General
Notes:

  • Match events should happen solely on the server
  • Clients should generally be thin, read values/messages from server.

Stock Match

  • Server authoritative stock value syncing

Time Matches

  • Server authoritative time management

Music for Scarlet Devil Mansion Stage

There are a few pieces of music we would like arranged for the Scarlet Devil Mansion stage.

  • Septette for the Dead Princess
  • Locked Girl ~ The Girl's Secret Room
  • U.N.Owen was Her
  • Flowering Night
  • Cute Devil ~ Innocence
  • Voile, the Magic Library / The Maid and the Pocket Watch of Blood / The Young Descendant of Tepes medley

Potential to Switch to Unreal Engine 4?

Unreal Engine 4 is now free, and with a potential to be much better suited for a large scale game like this.

There are a number of things we've considered that may be limited in Unity Free that are easy to do in UE4.

Damage display has visual errors.

Damage display does not show damage type by default.

When damage type is shown, it matches the size of the large numbers, making it uneadable past 100% or 100 HP.

Gradient color is not being properly applied.

Music for Hakurei Shrine Stage

There are a few pieces of music we would like arranged for the Hakurei Shrine stage

  • Broken Moon
  • Eastern Mystical Love Consultation
  • Hakurei ~ Eastern Wind
  • Everyday Life with Balls
  • The Strange Everyday Life Of The Flying Shrine Maiden
  • Battlefield of the Flower Threshold

Implemented tracks:

  • Maiden's Capriccio ~ Dream Battle (crescentia)
  • Dichromatic Lotus Butterfly (sladjkf)
  • Eternal Shrine Maiden (Peacock Roy)
  • Onigashima in the Fairyland (Daydream Workshop)

Can we use Doxygen to generate the code documentation?

Hello guys, can we use Doxygen to create the documentation about the project's code? It is useful to understand some functions and modules from the system and it is pretty famous, being used by a lot of great softwares like the PostgreSQL database with a huge source code.

Then we could release a Doxygen about the project in each game's new version release or do some black magic to let it create the documentation automagically.

Unity3d's Monodevelop supports natively the documentation syntax used by Doxygen, you just need to type '///' before a function or a variable field and the IDE will auto-complete the documentation fields, letting you type the details.

For example here is the header from one function from another project mine.

    /// <summary>
    /// D-Engine function. It takes the universe and using the planner passed in 
    /// the constructor and its status through the determined time window.
    /// If S is the simulated time, then t0 <= S < t0 + deltaT. If you want to continue
    /// the simulation, for example, you can call this function again using t0 = t0+deltaT.
    /// </summary>
    /// <param name="t0">The initial time.</param>
    /// <param name="deltaT">The maximum time length.</param>
    /// <returns><c>true</c>, if the result desired by the planner is satisfied, <c>false</c> otherwise.</returns>
    /// <seealso cref="ExternalPlanner::getResult"/>
    public bool dEngine ( float t0, float deltaT ) {    
                  ....
      }

Soft Platforms

We need a way for characters to jump up through passable platforms, as well as a way to "down jump" through similar platforms as well.

Basic Character Select

We currently have a method of dynamically loading characters specified in arbitrary ways from an external scene via the Match component.

We don't need a full blown UI right now, but some way to control what characters are to be spawned would be useful for testing.

Camera gets weird angle when a player runs out of stock

Just by playing in any way, if you die enough times that the player ends up running out of stock, the game leaves the marker for the player where they died, and then the camera gets stuck trying to put all the players in camera, but also it can even end up zooming in.

captura de tela 2017-02-01 22 47 37

captura de tela 2017-02-01 22 55 32

Music for Makai Stage

To do:

  • Rural Makai City Esoteria
  • World's End
  • Legendary Illusion ~ Infinite Being

Implemented:

  • Now, Until The Moment You Die (spaztron)

Music for Palaquin Ship

There are a few pieces of music we would like arranged for the Netherworld stage

  • Captain Murasa
  • Emotional Skyscraper ~ Cosmic Mind
  • Interdimensional Voyage of a Ghostly Passenger Ship
  • Heian Alien
  • The Traditional Old Man and the Stylish Girl
  • The Sealed Cloud Route
  • Greenwich in the Sky

Implemented:

  • A Tiny, Tiny Clever Commander (Yakikaze)

All four revival platforms spawn in LAN Host

After switching to LAN server only, stopping, and going back to LAN Host 4 revival platforms appear and won't despawn.
Youmu might try to spawn at random inside the platforms but she won't get stuck and the platforms still stay in the same spot.

Ledge issues

Hitbox issues with the ledge
Reproduction:

  • When walking up to the ledge, will snap to ledge when on the ground
    expected:
    Won't snap onto edge until in the air at least
    reproduction:
  • When hanging on to the ledge, while holding away from the ledge and press the up or jump button
  • character will face away from the ledge for one frame then snap back onto the ledge
    expected:
    Jump off the ledge in a direction away from it.

Fall off while hanging onto the ledge, no more jumps usable.
Reproduction:

  • Hang off a ledge
  • Jump and snap back onto the ledge at least once
  • Press the down, and one of the other directions a few times
  • Press the up or jump key, doesn't matter how quickly you press the direction keys before.
  • Character will fall straight down and cannot jump or move in the air.
    expected:
    Not to drop straight down with no control over character

double jumping

it's really inconsistent:
if you spam the jump key it will create a huge jump
but if you wait the jump the second will almost do nothing or just slow down the character.
how to solve this?
each time the player uses a double jump you could reset the y acceleration so this doesn't occur
here's a video showing the bug:
https://youtu.be/djn0wGx8q5c

Player Death/Respawn

The Player, upon hitting the blast line, must die, and respawn at predefined locations.

Player Damage/Knockback

The Player must be able to take damage from external sources, be it other players or stage hazards.

Set up testing framework for Characters

There are a few interesting challenges presented by the character controller

All of the elements need to be networked. For simplicity this means using NetworkBehaviors, which introduces two large, unmockable dependencies: the network and Unity3D as a whole. This likely will make testing Characters at a unit test level incredibly difficult (requiring reflection to force Start, Update, etc. calls in the same order as Unity's) or downright impossible. Thus the focus of these are to create comprehensive integration tests.

Mocking common game elements:

  • Input Mocking - This shouldn't be too difficult as the character controllers don't directly depend on Unity's input system.
  • Match Mocking - Mocking the match system, this generally shouldn't be needed, since characters shouldn't have a dependency on match data, but
    More will be added as they are found.

Character Testing Fixture:

  • Setup and tear down local game server.

Will update as new issues are found.

Music for Netherworld

There are a few pieces of music we would like arranged for the Netherworld stage

  • The Capital City of Flowers in the Sky
  • Girl's Sealing Club
  • Hiorari Shoots a Strange Bird ~ Till When?
  • Necrofantasy/Necrofantasia
  • Night Falls ~ Evening Star
  • Night Sakura of Dead Spirits
  • Mystic Oriental Dream ~ Ancient Temple

Implemented:

  • Bloom Nobly, Ink-black Cherry Blossoms ~ Border of Life (crescentia)
  • Merry the Magician (crescentia)

Support on the fly localization via StreamingAssets

The idea would be to use StreamingAssets/lang to hold several gettext or json files that map English to the specified language. This will help translators test their work before submitting it for official use.

  • Place text files in StreamingAssets/lang
  • Load files on the OnLanguageLoad event
  • Add/Override existing key-value pairs

Choose a default pattern to define and process keyboard/joystick input commands

Hello guys, I think that now it is a good moment to define how we will implement the input processing than to needing to change it later. I thought that a good input system should have:

  • A way to support joysticks like the one from XBox;
  • A way to let the user define the buttons configuration;
  • More than 2 players on the same computer (co-op);

After looking in google I found this open-source library that seems to have all these features, what do you guys think about it?

http://forum.unity3d.com/threads/free-custom-input-manager.223321/

Cheers

Player Jumping

Players should be able to jump from the ground, and jump at least once in the air. This should be customizable from the editor, with customizable jump heights.

Choosing the design of the main screens

Hello guys, while studying to learn more about the new Unity's UI system I made the following screens based on the original Super Smash Bros, including screen transition animations, hand cursors controlled by the keyboard, a mediator element to control the communication between the UI elements and internal data and a lot of bugs. Do you guys have other concepts or ideas to the main screens ( the main menu and the character selection screen )?

menu1
Main menu, simple and straight with giant buttons.

menu2
Character seleciton menu

menu3
Player slots with Player, CPUs or empty

menu4
Battle dropdown options

menu5
Dropdown to choose CPU's intelligence level

Basic movement animations for Youmu

Tier 0 Animations
These have no dependency and should be done first

  • Ground Idle
  • Air Idle
  • Ledge grab

Tier 1 Animations
These have dependencies on tier 0 animations

  • Ground walk
  • Ground run
  • Ground dash
  • Crouch
  • Jump
  • Air Jump
  • Ledge jump
  • Ledge climb

Open Mailbox is not open without invitation

This is technically not an issue with the game itself, and I'd like to apologize if this is not the correct place to discuss this type of issue.

It appears that the Dropbox folder "Open Mailbox" is not actually open to users who have not received an email invitation to upload files to the Dropbox. This is a limitation of Dropbox itself as it is meant to be used as a mass downloading service, not a mass uploading service.

That being said, there are workarounds or alternatives that would allow for a public upload for non-code files. The most common recommendation (when entering variations of "public upload" into Google, at least) seems to be a web-based application called "DB Inbox".

I tried it for myself just to see how it works. it's basically a one-way upload that deposits the uploaded files into an app-created subfolder. The uploader cannot delete their uploads or other people's uploads. However, it does not appear to possess any kind of antivirus scanner - it would be wise to configure the host Dropbox accounts to not synchronize the inbox folder with the host computers.

However, there are still other methods that could theoretically be used to achieve the same ends.

Jumping issue

Sometimes doesn't allow jumping while turning around. Either very inconsistent or difficult to replicate, not sure which.

Music for Garden of the Sun Stage

  • Faint Dream ~ Inanimate Dream
  • Gensokyo, Past and Present
  • Bad Apple!!
  • Lotus Love
  • Lovely Mound of Cherry Blossoms
  • Poison Body ~ Forsaken Doll
  • Sleeping Terror

Match End Check

We need a check to see when the match ends. We may have different match modes later, but for now, all we need is a standard stock check.

It should terminate the scene and do something with the data.

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.