{"id":22619932,"url":"https://github.com/csinac/chromatower","last_synced_at":"2025-04-11T15:21:36.382Z","repository":{"id":263422841,"uuid":"350031788","full_name":"csinac/ChromaTower","owner":"csinac","description":"A hyper-casual mobile game exercise, heavily influenced by Voodoo's \"Helix Jump\"","archived":false,"fork":false,"pushed_at":"2021-03-24T20:11:48.000Z","size":3727,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T11:22:13.627Z","etag":null,"topics":["assignment","game-development","hypercasual","mobile-game","opensource-game","unity-game","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csinac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-21T15:02:46.000Z","updated_at":"2025-02-10T10:17:06.000Z","dependencies_parsed_at":"2024-11-18T14:07:43.163Z","dependency_job_id":"96302adc-4890-4531-8814-44ea33046936","html_url":"https://github.com/csinac/ChromaTower","commit_stats":null,"previous_names":["csinac/chromatower"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csinac%2FChromaTower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csinac%2FChromaTower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csinac%2FChromaTower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csinac%2FChromaTower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csinac","download_url":"https://codeload.github.com/csinac/ChromaTower/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248429170,"owners_count":21101800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assignment","game-development","hypercasual","mobile-game","opensource-game","unity-game","unity3d"],"created_at":"2024-12-08T22:10:10.322Z","updated_at":"2025-04-11T15:21:36.356Z","avatar_url":"https://github.com/csinac.png","language":"C#","readme":"# Chroma Tower\nA hyper-casual mobile game exercise, heavily influenced by Voodoo's \"Helix Jump\"\n\n![](ReadmeContent/ChromaTower_v0.1.gif)\n\nI recently had a job interview, where I was asked to pick at least two popular hyper-casual games and create a mash-up within 3 days. A weekend project in a way.\n\nSo I decided to combine Helix Jump with color matching mechanics and this came out.\nI think it turned out to be a little too nice of a pet project to be swept aside after the process is over.\nAnd it is not exactly an original idea, so I decided to put it out there as an open-source exercise.\n\n## Gameplay\nIn order to score, you have to match the color of the ball with a matching platform slice.\n\nEach time you hit a correct slice, the score is incremented by the combo at the time. Also, you get a tiny bit of a regeneration boost along the way.\n\nWhen your health is too low, the upcoming platforms turn to single color to help the player out a bit.\n\nThat's it!\n\n## Structure\nThe code is divided into three major namespaces, namely the Engine, the View and the UI.\n\nThe bootstrapper component combines the three scopes, where the Engine provides the behaviour,\nthe Renderer provides the user input management and Unity related systems such as physics\nand the UI is, well, the UI.\n\nMost communication is handled through callbacks, where any object that requires to act in a certain way at a specific state of the game, can subscribe to the corresponding callback.\n\nThe available actions that I implemented and use are\n\n```csharp\npublic event Action OnGameOver;\npublic event Action OnNewGame;\npublic event Action OnDamage;\npublic event Action OnSuccessfulHit;\npublic event Action OnHit;\n```\n\nMost of the behaviour is defined as either an abstract class or an interface, such as the PlayerHealth, GameDifficulty or the ColorServer, so go ahead and change stuff.\n\nFor instance, the Difficulty class doesn't know the game is a color based puzzle. It just serves the next slot to be targeted, whatever shape or form that may have.\n\nAnd the ColorServerOrderedHue class creates a color, by using the slot index as the hue. ColorServerOrderedHue implements the abstract class AColorServer, which has the following abstract functions.\n\n```csharp\nabstract public Color MakeColor();\nabstract public Color GetColor(int index, int range);\nabstract public Color LastColor();\n```\n\nYou could create a completely coloring system by implementing a new concrete class deriving from AColorServer.\n\nThe available interface and abstract classes are\n\n```charp\nabstract class AColorServer: MonoBehaviour\npublic interface IDifficulty\npublic interface IPlayerHealth\npublic interface IPlayerState\npublic interface IScoreKeeper\n```\n\n## Where to go\nThis little project kind of grown on me, so I might keep on adding new features such as power-ups and so on. Maybe someday it may even graduate to being its own original game.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsinac%2Fchromatower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsinac%2Fchromatower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsinac%2Fchromatower/lists"}