Here's DIAMOND GHOST!
A 64x64-game, quickly made to learn how to do smtng in lores.
Controls:
Arrow keys to control the ghost.
X to start game.
You only have three moves. Use them wisely!
You will gain a new life if you catch a diamond and have less than 3 lives...
Have fun! :)
/ Pingo
It's actually pretty fun for such a simple concept. Feels a little too RNG though. Way too easy to get boned by the randomizer three times in a row. Four or five hearts would allow much longer plays.
Best I did was 16.
Pretty addicting, but yeah, you can get royally screwed. Maybe an extra move can be added if you reach 15 or 20 diamonds.
Also, it'd be good if we knew what our final score was; once the game ends there's no trace of it.
Thank you so much Felice and Vectorguy for the input!
I totally agree with both of you.
So... to fix the randomness, I added some MORE randomness! :)
So, NEW version below. Game now works like this:
- X to start at the title screen.
- Added last score at the title.
- Control the ghost with arrow keys.
- Catch diamonds before the disappear. Takes 2 sec.
- If you have less than 3 lives, you will gain one more when you get a diamond.
- Every 2 sec a GREEN HEART shows up. If you catch it, it resets ALL your life + energy.
Still - my highscore is 29! It's not easy... :)
/ Pingo
32 is my record on 1.1.
My son found out that you can press up/down together with right/left and gain steps that way... And he ended up with 68 points... Is that a "bug" or a "feature"? :)
/ Pingo
Hm, not sure the green heart is adding much. I can still get boned by three bad RNGs in a row.
Like, say I'm at the tile left or right of center. If the diamonds and hearts show up out of reach in one of the corners three times in a row, there's absolutely nothing I could have done to win. That's discouraging. There's no way to plan for it, guard against it, conserve moves, nothing.
I agree. Some rounds I end up with 3 points. Some rounds I go well over 20-30 points with not much effort at all.
Walking diagonally helps a lot, and aiming for the middle ground almost constantly when you have moves lefts, does too...
But I was thinking of adding moves-not-used to next round instead. Maybe that's a better idea.
Not sure on how to communicate the saved moves though and keep the design... :)
EDIT: Tried it again now and moved almost only diagonally. Then it becomes truly playable. 63 points. Still hard, but not impossible...
/ Pingo
Thank you so much Felice and Vectorguy for the input!
You're welcome!
Every 2 sec a GREEN HEART shows up. If you catch it, it resets ALL your life + energy.
That's a good idea; I like it.
I think the game is fine as it is now.
Oh! Silly me, I didn't realize diagonal was a single-move option. One of the downsides of playing on keyboard. Lemme give it another go with that in mind.
@Felice
I've been thinking about a lot of different ways to improve this (like adding the Green Heart only to the close tiles etc), but not found any sollution that is really great.
Any ideas are welcome though! Especially code stuff to improve it... feels like there's some glitches left btw, but nothing I seem to be able to improve... :-/
/ Pingo
Oh, I was editing an idea into my comment while you responded. I'll just move it here:
Okay, yeah, that's much better, but it IS very hard to do. I have to be very precise pressing two keys at once. Can you think of any way to allow maybe a 1-frame slop on it? Like, remember the move made last frame, and if this frame there's a move on the adjacent direction (e.g. last frame west, this frame north), make that move free.
@Felice
Hmmm... that's an interesting idea.
I did think about "free" moves - but in other ways - like if you picked up an item your moves "froze" for X turns; every 10 points means a move-free-turn and so on...
How would you suggest the code would look like to implement your idea? Not sure if I understand exactly what you're getting at here... :)
/ Pingo
Okay, I came up with a semi-klunky timer method that seems to work really well in spite of being a (small) forkful of spaghetti. This'll give you four frames of slop between buttons for diagonals:
The logic you care about is in the block with the comment -- count the move, or combine?
.
Also, you could disable the timer countdown and just always allow combining with the last axis move:
Still bothers me that it's a bit spaghetti. I whittled it down a little, but meh. Anyway, assuming you've already calculated this frame's dx,dy for the player, and that you don't need the timer (which I think you don't) this is all you really need, self-contained:
-- count the move, or combine? if dx!=0 then if dy!=0 then -- true diagonal move _move_count-=1 _moved_x=false elseif not _moved_y then -- new x-only move _move_count-=1 _moved_x=true end _moved_y=false elseif dy!=0 then if not _moved_x then -- new y-only move _move_count-=1 _moved_y=true end _moved_x=false end |
Thanks so much for that piece of code!
Sorry for late reply - been super busy with non-PICO stuff. :(
I'll try to implement this in the code...
/ Pingo
21 on first version
20 on 1.1
Lol i just realized I did all my games (like 10-15), WITHOUT using diagonals, so it means i'm a pro
[Please log in to post a comment]