{"id":16143303,"url":"https://github.com/midzer/lbreakouthd","last_synced_at":"2025-04-22T22:22:27.227Z","repository":{"id":196289620,"uuid":"671235272","full_name":"midzer/lbreakouthd","owner":"midzer","description":"LBreakoutHD is a scaleable 16:9 remake of LBreakout2 ported for the web","archived":false,"fork":false,"pushed_at":"2024-07-14T21:54:07.000Z","size":14833,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T19:22:39.480Z","etag":null,"topics":["emscripten"],"latest_commit_sha":null,"homepage":"https://midzer.de/wasm/lbreakouthd/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/midzer.png","metadata":{"files":{"readme":"README","changelog":"Changelog","contributing":null,"funding":null,"license":"COPYING","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":"2023-07-26T21:21:44.000Z","updated_at":"2025-02-26T21:56:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"e797fa14-ceb6-4b79-b0ab-607d0556a357","html_url":"https://github.com/midzer/lbreakouthd","commit_stats":null,"previous_names":["midzer/lbreakouthd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midzer%2Flbreakouthd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midzer%2Flbreakouthd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midzer%2Flbreakouthd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midzer%2Flbreakouthd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/midzer","download_url":"https://codeload.github.com/midzer/lbreakouthd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250332188,"owners_count":21413165,"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":["emscripten"],"created_at":"2024-10-10T00:08:57.558Z","updated_at":"2025-04-22T22:22:27.186Z","avatar_url":"https://github.com/midzer.png","language":"C","funding_links":[],"categories":["Games"],"sub_categories":[],"readme":"ToC\n---\n  Introduction\n  Extras/Bricks\n  Minigames\n  Themes\n  Troubleshooting\n\n\nIntroduction\n------------\n\nFirst and foremost to make things clear: LBreakoutHD is an HD remake \nof LBreakout2 (all levelsets and themes will work). The game itself is\ncompletely unchanged. A new SDL2/C++11 view has been added to support \n16:9 wide screens of any resolution. Why not adding this to the existing\nLBreakout2 package if the game basically remains the same? Because \nsecond: I wanted to clean up the code (the not really well working \nnetwork stuff bothered me) and not mix SDL2 with SDL for dependencies.\n\nSo LBreakoutHD is a clean cut with the old core engine (still in C) and\na brand new fully scalable 16:9 view.\n\n\nExtras/Bricks\n-------------\n\nAll extras/bricks are listed in the in-game help but some might need a little\nmore explanations:\n\nGold Shower:\tAny brick without an extra on its own will release a 1000 score\n\t\textra when destroyed. Lasts 20 secs.\n\nSticky Paddle:\tBalls get attached and can be released manually by pressing\n\t\ta fire key. Reflection vector is kept. Lasts 20 secs.\n\nEnergy Balls:\tBalls destroy everything (no reflection) except \n\t\tindestructible walls and bonus floor. Lasts 5 secs.\n\t\t\nExtra Floor:\tAdds barrier to bottom so balls can't leave the screen.\n\t\tStarts blinking three seconds before it runs out. Lasts 10 secs.\n\t\t\nFrozen Paddle:\tPaddle can't move for 1 sec.\n\nRandom:\t\tCan be ANY extra, so ... do you feel lucky, punk?\n\nJoker:\t\tInstantly collects all good extras and destroys all neutral\n\t\tand bad ones. Some are even doubled like extra balls and score.\n\t\t\nChaotic Balls:\tBalls will randomly reflect for 20 secs.\n\nGhost Paddle:\tIf not moving, paddle will disappear after 200 ms until moved\n\t\tagain. So you think you can place a paddle somewhere and wait for\n\t\tthe ball to hit it? Think again. Very nasty in combination with\n\t\tFrozen Paddle. Lasts 20 secs.\n\t\t\nReset:\t\tResets every active extra, good or bad.\n\nExtra Time:\tWill add 7 secs to all active extras.\n\nExplosive Balls: All adjacent bricks (including multi-hit bricks) will be \n\t\tdestroyed as well (except for wall bricks). Lasts 5 secs.\n\t\t\nWeak Balls:\t40% chance ball does not break a brick and gets just reflected.\n\nRegular Wall:\t\tIn contrast to the indestructible one it can be\n\t\t\tdestroyed by energy balls.\n\t\t\nChaotic Wall:\t\tWill reflect balls randomly. Can be destroyed by\n\t\t\tenergy balls.\n\nRegenerative Bricks: \tWill restore health over time if not hit again.\n\nExplosive Bricks: \tWill destroy adjacent bricks on destruction \n\t\t\t(except walls).\n\nGrowing Bricks: \tWill grow new bricks on destruction in adjacent \n\t\t\tlocations (if not blocked by balls). \t\t\t\n\n\nMini Games\n----------\nBarrier: Try to break through the barrier and hit the wall behind it. Barrier\ngets faster and thicker (up to 12 layers) with every breakthrough. The faster\nyou succeed the more score you gain. Game is over when a barrier reaches the\npaddle or you loose the ball.\n\nSitting Ducks: 8 ducks. A ball launched from the top. Try to hit the ducks that\nis on *directly*. If you fail it is removed. If you succeed you get some score\nand another duck is highlighted (ball is launched from ceiling again). Multiple\nhits in a row will increase trophy price. Game is over when you loose the ball\nor all ducks were destroyed.\n\nInvaders: Clear wave after wave of 20 alien space bricks each! With each wave\nmore score can be gained but it also gets faster... Game is over when an invader\nreaches paddle level.\n\nOutbreak: Stop the outbreak! Each wave 20 infections occur. When 10 infections\nare active simultaneously the game is over so clear them faster than they occur.\nEach wave incubation time gets shorter.\n\nHunter: Catch the prey with the hunter. Hit the matching colors to move the\nhunter left, right, up or down. If you hit the wall the game is over. There is\na time limit to catch the prey. If time runs out the game is also over. With each\nsuccessful catch you'll get more score but have less time.\n\nJumping Jack: Try to hit the brick before time runs out. If you succeed it jumps\nto a new position. With every hit you'll gain more score but have less time. \n\n\nThemes\n------\nThe most boring part first: IF you use other people's artwork please check that\nthe license allows you to change and share it (e.g., GPL, PD, CC, OFL, ...)\nand give proper credits in a file named CREDITS (or something like that).\nIf this is not done, a theme will not be accepted. For your own artwork please\nchoose a proper license (e.g., GPLv3 will match the package's license).\n\nOk, that's that. Now, to get started quickly, look at the Standard theme and\nkeep its dimensions for a 1080p theme. It's pretty much self-explanatory.\n\nTo get the fine details, read on.\n\nIt's still pixel-based (rasterizing SVG sometimes leads to artifacts and limits\nto vector graphics only, so ...). Whatever resolution the images have they\nget scaled to the screen/window size. Just bear a few things in mind:\n\ntheme.ini allows to set various things. All options have default values\nmatching LBreakout2 so they are not mandatory. But, e.g., for 1080p assets\nyou MUST at least provide\n\nbrickWidth = 90\nbrickHeight = 45\n\nOtherwise 40x20 will be assumed which will look very funny. For a 4k theme you\nwould use 180x90 (remember everything gets scaled up or down to fit the\nactual screen resolution).\n\nIn general, all images can use alpha for transparency. Black is no longer\nused as color key (only for old LBreakout2 themes). For missing files \nStandard theme assets are used as fallback except for the frame (see below).\n\nAssets in bricks.png and extras.png MUST match the given brick size \nexactly. All assets must be in one row (extra space to the right\nor bottom hand side doesn't matter).\n\nbackX.png (or jpg is now ok, too) are wallpapers or full backgrounds.\nThey get scaled by the brickScreenSize to brickFileSize ratio. So the \nresolution should match bricks.png and extras.png (so that full wallpapers\nwill be scaled in the correct ratio to always fill the whole screen).\nMaximum number is 10. Background numbers must be consecutive (e.g., \nback0.png, back1.png, back3.png will only load the first two).\n\nmenuback.png (or jpg) works the same for the menu background.\n\nThe main frame comes in three flavors:\n1) frame.png contains the full frame (fitting 16:9).\n2) fr_left.png, fr_top.png, fr_right.png build a 4:3 frame (see old \nLBreakout2 frames). Boxes for hiscores, score and active extras are\nautomatically added.\n3) No frame files at all will lead to a standard brick frame.\n\nIf you want to create a full frame image here are the measures for the info\nboxes (bw = brick width, bh = brick height) given as x,y,w,h: \n\tBox 1: Setname+Hiscores: 16*bw, bh, 13/3*bw, 12*bh\n\tBox 2: Name+Score: 16*bw, 14*bh, 13/3*bw, 3*bh\n\tBox 3: Active extras: 16*bw, 18*bh, 13/3*bw, 5*bh\nSo, e.g., hiscores box for 1080p (brick size 90x45) has 1440,45,390,540.\n\npaddle.png needs to be FOUR rows (normal, sticky, frozen, unused) of \nthree square tiles (left, middle, right). Some old LBreakout2 themes\nhave two paddles in one row and I started out with an extra paddle so\nit is now required to get the proper dimensions automatically.\nPaddle gets scaled to 90% of brick height. E.g., for 1080p tile size\nshould be 40x40 to avoid unnecessary scaling.\n\nball.png is one row of square balls (normal, energy, explosive, weak,\nchaotic). No extra rows allowed as height is used to determine dimensions.\nBalls get scaled to 60% of brick height. E.g., for 1080p tile size\nshould be 27x27 to avoid unnecessary scaling.\n\nshot.png is a row of frames (shotAnim.frames or default 4). You can set\nanimation speed by shotAnim.delay (default 200 ms). \nShots get scaled square to 50% of brick height. E.g., for 1080p frame size\nshould be 22x22 to avoid unnecessary scaling.\n\nweapon.png is a row of frames (weaponAnim.frames or default 4). You can set\nanimation speed by weaponAnim.delay (default 200 ms). \nWeapon gets scaled square to 90% of brick height. E.g., for 1080p frame size\nshould be 40x40 to avoid unnecessary scaling.\n\nexplosions.png are rows of frames (explAnim.frames or default 9) for an\nexplosion. You can set explosion speed by explAnim.delay (default 50 ms).\nExplosions can have any size but must be square.\n\nlife.png contains two brick sized, vertically arranged icons for displaying the \nplayer's lives. The first icon shows a possible extra paddle, the second shows\nan actual life. It is added at the lower left-hand side of the frame.\n\nwarp.png is a brick sized icon used to indicate warp is ready.\n\nYou can specify the small and normal text font (default: fsmall.otf and \nfnormal.otf) and their size (default: 14 and 18 pixels in theme resolution).\nYou can set the colors with fontColorNormal (default white) and \nfontColorHighlight (default yellow) as red,green,blue,alpha values.\nUse GIMP to mix colors or translate #...... hex values.\n\nmenu.* in theme.ini allows to modify some menu position stuff. All values are in\npixels in theme resolution. Just play around with the values if you're \ninterested in changing it.\n\n\nTroubleshooting\n---------------\n\n1) If the screen is cut off this might be due to an older non-16:9 \nresolution like 1366x768. Either switch to 1280x720 or play in window mode.\n\nEnjoy,\nMichael\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmidzer%2Flbreakouthd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmidzer%2Flbreakouthd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmidzer%2Flbreakouthd/lists"}