Protect by M-1

A 16-bit chiptune rhythm game with original music, all made in 72 hours.
Play HERE in a web-browser supporting WebGL (the game is ~11 MB large, please wait for it to load)
Rules: - You are a square. - Other squares attack you. - Press arrow keys in directions of the attackers to defend. - Don't click too late or too soon – failed attack costs you points. - You get points for every successful defence. - The more precise your timing is, the more points you get. - Get as many points as you can.
Btw. there is an online high score leaderboard!
Ludum Dare 38 entry for theme "A Small World"
Thought processes: - a small world -> needs protection -> fend off attacks from all directions - world -> word == 16 bits -> retro-styled game
Credits: - Coding: @M-1 - Music: @cheeslo
Changes since submission (v1.0):
v1.1 (2017-04-28): - porting: - implemented touch controls - reduced RAM usage - added "meta" tags to the WebGL page generated by Unity to support adding the game to Home Screen on iOS - => You can now play it on mobile! (tested on iOS 10.2, if anybody has Android, please test if/how it works :wink:) - Instead of pressing arrow keys, tap the top/bottom/left/right side of the screen. - On iOS the sound does not work - workaround: 1. Open the game in Safari. 2. Press the "share" button (bottom, in the middle). 3. Choose "Add to Home Screen", confirm with "Add". 4. Start the game from Home Screen. (Make sure the audio/ringing is not muted.) 5. Enjoy - fixes: - fixed missing name in leaderboard when no name is submitted - added text "Loading..." to leaderboard when the HiScore table loads - added black borders to hide "out-of-display" items (fixes squares appearing outside of the game area on wide-screen resolutions, e.g. in full-screen mode) - misc: - updated link to Itch.io, added cover image - changed background colour of the WebGL page generated by Unity - known bugs: - player name can't be set on mobile (WebGL does not allow on-screen keyboard on mobile platforms)
Older versions are available at the bottom of the game's page at Itch.io.
Any kind of feedback is appreciated!
| Original URL | https://ldjam.com/events/ludum-dare/38/protect |
Ratings
| Overall | 336th | 3.448⭐ | 31🧑⚖️ |
| Fun | 152th | 3.621⭐ | 31🧑⚖️ |
| Innovation | 522th | 2.857⭐ | 30🧑⚖️ |
| Theme | 748th | 2.207⭐ | 31🧑⚖️ |
| Graphics | 691th | 2.31⭐ | 31🧑⚖️ |
| Audio | 11th | 4.448⭐ | 31🧑⚖️ |
| Humor | 654th | 1.625⭐ | 26🧑⚖️ |
| Mood | 493th | 3.037⭐ | 29🧑⚖️ |
| Given | 36🗳️ | 59🗨️ |
- The assets contain only one sprite. Its size is 1x1.
- Part of the game is written in PHP - the web application "backend" - the API for leaderboard.
- Creation of the server instance and installation and configuration of the server software was started < 18 hours before submission deadline. (I had nowhere to host it so I ordered a VPS on Saturday. It took almost 2 days to get activated.)
Not a rhythm game aficionado me, so I cannot offer many pointers, but I do agree with @boats on the timing problem. The blocks coming from the sides show up earlier than those from the top or the bottom even if they are going to arrive later. I think this is the reason for the issue. Maybe completely covering the sides with black would work.
Good work, have some :notes:
@boats, @huvaakoodia: I just fixed the bug with squares appearing "outside of the main game area" when playing in fullscreen mode on a non-square monitor. Thanks for reporting, I haven't noticed it since I only tested in Safari, which does not support fullscreen (at least for Unity WebGL games). The lifetime of all squares (from sides and from top/bottom) should be the same now thanks to you!
I didn't realize it was a rhythm game at first, but once I did, it really cam together. Great music and fun gameplay!
I love that the game only contains one sprite. It just goes to show you, graphics don't need to be sophisticated for a game to be fun.
The track (hard) was pretty challengign at first, then when I got used to it it felt pretty good, there were a recurring part that was a bit too much for me when squares come from all 4 directions and sometimes at the same beat. But overall it was enjoyable, tough once I missed a beat it was a bit hard to get on track because of the shaking.
And good work setting a leaderboard a definite plus! also props for taking proper care of the webpage and caring about performance.
I noticed Unity WebGL builds work only on my laptop, but not on my PC. I wonder why that is.. Both have Chrome. t_t
Overall really cool game, that is very satisfying if you manage to pull off something hard
Minimalistic and fun :smile:
```
public class Shaker : MonoBehaviour {
public float amplitude = 0;
Vector3 originalPosition;
void Start() {
originalPosition = transform.position;
}
void Update() {
float diffX = Random.Range(-amplitude, amplitude);
float diffY = Random.Range(-amplitude, amplitude);
transform.position = originalPosition + new Vector3(diffX, diffY, 0);
}
void FixedUpdate() {
amplitude *= 0.9f;
}
public void AddShake() {
amplitude += 0.3f;
}
}
```
btw. if you (or anyone else) are interested in the complete source code, I will send it to you. :wink:
Also, a hold down type square would be nice for the long chords
As for gripes, I don't see how it fits with the theme, and it doesn't seem especially innovative. Since the name is "Protect" I expected something more than just a slightly different way of thinking about failures at hitting the beats. The one idea that this game made me think of is a rhythm based tower defense. I don't know how that would work, but its just an idea inspired by your game.
@joyfired: Was that an inaccuracy of specific squares/notes or of all squares/notes at one moment? I was thinking about long notes you suggested during the development, but I wanted to keep it simple (especially from the design and implementation point of view: How would the scoring work? Would player get score at the beginning and at the end based on how precise he/she pressed/released the key or continuously while holding the key? What should it look like? One long rectangle? Would it have a different starting colour (e.g. dark square at the beginning, then pale rectangle)? I would need to change the internal structure of the code possibly breaking what was working...) I will keep it in mind and maybe implement it in the future.
@jushiip, @move127: **Regarding the not-so-good fitting with the theme:** I admit the game could adhere to the theme more than it does. The original idea was ~*DSP world*: the blue square in the centre is a sine wave generator, which needs to be protected from rough waves or noises (e.g. square/sawtooth waveform or "drum pulses") disrupting it (because those waveforms contain sudden changes, which are much more audible than a smooth sine). (Don't judge me, I wasn't fully awake at that time :neutral_face:). This is why @cheeslo used so "aggressive" instruments when composing the music to match the "enemies", which he captured really well imho. Because the original idea was too technical and kind of stupid or at least not understandable for most people (and because I didn't want to clutter the visuals with textures/sprites), I decided to keep it simple (to avoid forcing the theme into the game at all costs) and just stick to a simple description I have written in the main post under "Thought processes" as an explanation of how I got from the theme to the actual game. I believe this was the lesser of two evil, which isn't that bad after all. :wink:
@move127: Rhythm-based tower defence sounds great! I won't be able to fall asleep today... :smile:
The screenshake made me a bit motion sick (but I am prone to that sort of thing), maybe another type of visual feeback like changing the color of the blue block would work better?
Overall, I had fun playing your game.
Good overall 7/10.
Overall very fun, and can be super addicting especially if there were more songs to play! Great job!
Nicely done with the original music! Producing decent-sounding music is quite difficult in a weekend so it's cool to see a game that focuses heavily on that aspect. The track you've composed is long and interesting enough to be fun for multiple play-throughs of the game.
Other things I particularly liked:
- The note patterns and arrangements vary between different sections the same way the synths provided varied timbres in different sections of the musical track. This felt good to experience
- The leaderboard is a nice touch
- Animations that are subtle but effective -- I like the screen shake. It's really important to give the player immediate feedback about what's happening in the game, and there's no ambiguity about when you're messing up :)
Most of my suggestions for improvement will be along the lines of this last point, because there's a bit more you could do to make sure players have a successful playing experience from their very first time opening up the game.
- Aside from the rather cryptic "Use arrow keys to defend!", there is no instruction to a player or indication about exactly *how* to defend with the arrow keys -- I think the mental mapping between "a square approaching from one side" and "I should press that key when it overlaps the square ring" is not as obvious as you think it is. For example, it'd be reasonable to guess at first that you as a player need to shoot the squares, or interact with them in some other way.
- This is exacerbated by the fact that the player is punished immediately for experimentally pressing keys by suffering a score deduction. This feels unfriendly at first.
- Once you figure out it's a DDR-like rhythm game, it's still ambiguous where exactly the hit targets are. Adjacent outside the ring? Inside the ring? On top of the blue dot?
- The very first non-trivial rhythmic pattern the player has to produce (the syncopated kick drum + hat pattern) is also one of most difficult ones to read, due to the syncopation. Straight eighth notes are easy by comparison.
Here are some possible fixes:
- Show the hit targets as four square outlines on top of the ring, where notes should be when you press the key. This eliminates positional ambiguity
- Light up the outlines when the corresponding key is pressed, to reinforce the correct mental model of how to play the game much faster
- Make mistakes trigger score deductions only in Hard mode
- I totally get that you want to discourage mashing. You're already scoring by timing accuracy -- I think you might be able to sufficiently discourage mashing by just making the hit window larger and giving very low scores for keypresses that are way off
- Give the player some easier note patterns first, before making them produce the more complex syncopated rhythm
Aside from that, the core gameplay is good! If you're looking for additional features, I think taking the "space defense" metaphor further might be interesting to explore. Equating the notes/steps with enemy ships, what kind of gameplay features would you expect to find in a space defense action game? Notes that move at different speeds from other notes? Notes that require multiple taps to destroy? There are tons of possibilities.
PROS
- Nice original music
- Controls feel smooth
CONS
- Lack of some quality of life things for rhythm games, like color coding the notes to show where on the beat they fall, or adding bar lines for easier reading (as is right now, it's a bit visually misleading)
- Overlapping notes with no way to tell how many there are is a definite no-no
For full criticism and breakdown of ranking, as well as candid reactions to gameplay, do check out the video~
https://www.youtube.com/watch?v=61YB9mkYfW0
I am a big fan of DDR, so it reminded me the good old times :)
It's pretty hard to read the tempo and which note is coming after another.
But still, great experience! And great song! I love games with custom music :)
https://www.youtube.com/watch?v=wbi09HIq8YA
But well done, it's hard to make a playable rhythm game, even this simple :)
https://www.youtube.com/watch?v=z8tza0thP_g
myfordbenefits us employee
myfordbenefits sign in
myfordbenefits online
my ford pay stub
my ford benefits a plan