{"id":18314401,"url":"https://github.com/pc9795/bit-nightmare","last_synced_at":"2025-04-09T12:42:06.037Z","repository":{"id":52981075,"uuid":"235807083","full_name":"pc9795/bit-nightmare","owner":"pc9795","description":"A 2-D plat-former game :video_game: from scratch in Java :coffee:.","archived":false,"fork":false,"pushed_at":"2022-11-15T23:50:52.000Z","size":218064,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-15T06:41:31.158Z","etag":null,"topics":["from-scratch","game-development","java"],"latest_commit_sha":null,"homepage":"","language":"Java","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/pc9795.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}},"created_at":"2020-01-23T14:04:42.000Z","updated_at":"2021-04-18T14:46:16.000Z","dependencies_parsed_at":"2022-08-28T03:13:04.129Z","dependency_job_id":null,"html_url":"https://github.com/pc9795/bit-nightmare","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pc9795%2Fbit-nightmare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pc9795%2Fbit-nightmare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pc9795%2Fbit-nightmare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pc9795%2Fbit-nightmare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pc9795","download_url":"https://codeload.github.com/pc9795/bit-nightmare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248045220,"owners_count":21038552,"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":["from-scratch","game-development","java"],"created_at":"2024-11-05T16:32:51.530Z","updated_at":"2025-04-09T12:42:06.020Z","avatar_url":"https://github.com/pc9795.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BIT NIGHTMARE\n\n* Thanks [Craftpix](https://craftpix.net/) and [Open Game Art](https://opengameart.org/) for amazing assets.\n* Thanks [1001 Fonts](https://www.1001fonts.com/) for excellent fonts.\n* Thanks [DL Sounds](https://www.dl-sounds.com/) for stunning sounds.\n* Thanks [RealTutsGML](https://www.youtube.com/user/RealTutsGML) for phenomenal tutorial on Java game programming.\n\n**Gameplay Video** - https://www.youtube.com/watch?v=0y7qBGYuIDE\n\n## Genre/Theme\nA 2-D platformer where a programmer is trapped in an Alien prison\n\n![Long Jumps](readme_pngs/long_jumps.png)\n\nLong jumps on narrow platforms.\n\n![Moving Blocks and Hiding Platforms](readme_pngs/moving_blocks_and_hiding_platforms.png)\n\nMoving blocks and Hiding platforms.\n\n![Nerve-breaking Running Sequences](readme_pngs/running_sequences.png)\n\nNerve-breaking running sequences.\n\n![Mayhem battles](readme_pngs/mayhem_battles.png)\n\nMayhem battles.\n\n![Boss Battle](readme_pngs/boss_battle.png)\n\nBoss battle.\n\n**Extras**\n\n* An Arcade style sound track.\n* Artwork to give a sci-fi look and feel.\n\n## Features\n\n**Level Designer**\n\n* Currently the game has two levels.\n* A basic level designer is implemented that can generate complete levels from .png files\n* Everything is Dynamic. We can add levels without changing a single line of code(Until we want to add new game objects).\n\n**Difficulty Options**\n\n![Difficulty options](readme_pngs/difficulty_options.png)\n\n* 3 difficulty options\n* Affect different properties of enemies such as their health, line of sight, bullet frequency, etc.\n\n**Weapons**\n\n![Bit Revolver](readme_pngs/bit_revolver.png)\n\n* Bit Revolver\n* Shoots single projectiles\n\n![Bit Array Gun](readme_pngs/bit_array_gun.png)\n\n* Bit Array Gun\n* Shoots stream of projectiles\n\n![Bit Matrix Blast](readme_pngs/bit_matrix_blast.png)\n\n* Bit Matrix Blast\n* Shoots single projectile but with bigger area and high damage.\n\n**Checkpoints**\n\n![Checkpoints](readme_pngs/checkpoints.png)\n\n**Collision Detection**\n\n* Rectangle based collision detection.\n* Abstracted some collision scenarios as behaviours and created `BulletCollider`, `EnemyCollider`, `FineGrainedCollider`.\n* Quad tree implementation for static environment objects and collectibles. Implemented chopping.\n\n**Texture Loader**\n\n![Config Sample 1](readme_pngs/texture_loader_config1.png)\n\n![Config Sample 2](readme_pngs/texture_loader_config2.png)\n\n* 100% configurable\n* Can be used with both single images and sprite sheets.\n\n**Story Loader**\n\n![Config](readme_pngs/story_loader_config.png)\n\n![Example](readme_pngs/story_loader_example.png)\n\nStories can be created by giving the level name and the x-coordinate of the player.\n\n**Enemies with Basic AI**\n\n![Charger](readme_pngs/charger.png)\n\n* Charger\n* Runs towards you if under LOS.\n\n![Soldier](readme_pngs/soldier.png)\n\n* Soldier\n* Fires Bit revolver towards you if under LOS.\n* Will duck occasionally\n\n![Super Soldier](readme_pngs/super_soldier.png)\n\n* Super Soldier\n* Fires Bit Array gun towards you if under LOS.\n* Will duck occasionally.\n\n![Guardian](readme_pngs/guardian.png)\n\n* Guardian\n* Fires Dual Bit Array guns and Bit Matrix blast towards you if under LOS.\n* Will charge towards you occasionally.\n\n**Intelligent/Interactive Environments**\n\n* Movable blocks\n* Hiding platforms\n* Enemy portals – Spawn enemies if you are under LOS\n* Gate and Key pairs\n\n## Functional Game\n\n**Lives**\n\n![Lives](readme_pngs/lives.png)\n\n![Game Over](readme_pngs/game_over.png)\n\n**Ending**\n\n![Pre-Ending](readme_pngs/ending1.png)\n\n![Ending Screen](readme_pngs/ending2.png)\n\nThe game can be won by defeating the guardian at the second level and acquiring his key to open the last gate of the game.\n\n## Multiple Controllers\n\n**Mouse interactions**\n\n![Menu](readme_pngs/menu.png)\n\n![Mouse Interaction](readme_pngs/mouse_interaction.png)\n\n* On Menu\n* By right clicking on objects\n\n**Gamepad/Keyboard**\n\n![Controller Layout](readme_pngs/controller_layout.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpc9795%2Fbit-nightmare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpc9795%2Fbit-nightmare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpc9795%2Fbit-nightmare/lists"}