Crazy Dram - The aMAZEing code a game comp entry

Started by Holzchopf, October 14, 2018, 22:11:03

Previous topic - Next topic

Holzchopf

It's CRAZY DRAM!

Download
Crazy Dram for Windows (zip, 3MB)
Crazy Dram HTML5 version
Crazy Dram for Android

Description
Crazy Dram is a maze game, in which you have to solve a maze to create a path from start to finish by rotating track pieces. Collect diamonds and items on your way for extra stars. Collect stars for more sophisticated levels.

Screenshots






Have fun!

Derron

I just gave it a whirl of "tutorial + level 1-2" and I think it is a real "train-brain"-game (pun intended). While it has your personal style I can think of the game working _pretty_ well on mobiles if you polish it (and make controls a bit more suited for smartphones/touch devices ... eg touching a "rotation spot" and then swipe around the spot according to the desired direction). Graphic wise I think you wanted to fetch the old "early 20th century" style of railroads (corners...) but hmmm I am not sure if this was a game for woman/casual players then some vibrant/colorful 3D-thingy-game might attract more potential players.

Good job - looks "complete" with the level selector, tutorial, ...


bye
Ron

Holzchopf

Thanks! Yes I definitely plan to polish the graphics. It won't get much more colorful (or shiny) in overall, as I think the current design and color selection does a decent job in making interactive elements distinguishable from other elements. But some more details won't hurt I guess - I only stayed with the "flat look" because I focused more on completing the game (thus I'm super happy hearing you call my game "complete" :-* efforts appreciated, yay). For the future, I hope to achieve a more natural style. I also plan to make some fancy in-and-out animations for the menus and pop-ups.

The "swiping around on screen around gears to rotate them" might work if I manage to make gears only engage when the player actually intents to press them and otherwise start "rotating mode". Will try that and see how it feels.

Derron

If there are no other interactive elements around the blue circles:
- increase hitbox (collision-range) of each blue element.
- when "touching" you can store "start touch point"
- when "moving" (while touching) you can calculate rotation "somehow"

"somehow":
- you know the center of the blue element
- you know the distance of "center" to "touch start" -> "radius" (can be adjusted during touch movement to allow "slowdown")
- "radius" allows to calculate "perimeter" of the "touch circle"
- "touch circle perimeter" and "blue element perimeter" can get set in a ratio
- ratio can get used to calculate desired rotation

As you visually indicate rotation "while touching" this would even work if calculation is a bit borked.
The "ratio" can be used to have a "slowdown", means you move your finger a bit more outwards for a "slower rotation" (fine grained - or if you are not as good as others with touch screens).


@ flat look
Yes you could, but a certain level of "detail" works wonders (even if this is still flat-look, not gradients, textures and so on).


@ mobile
I think on "smartphones" the touch-control would need above described "hitbox increase" as on smaller devices it will be a pain to exactly hit one of the blue elements.


bye
Ron

Holzchopf

Ooooooohh... *Derron's participate-mode activated*  ;D

Don't worry, the calculate rotation "somehow" part is not the problem for me. An early prototype even used that instead of the GUI elements on the right. The real trouble that came with it was, when you wanted to start swiping and hit another "blue element" directly, it engaged that other gear. I guess when I make gears only "engage-able" when both press and release are within its hitbox, this would decrease the risk of accidentally selecting a gear when actually swiping was intended. But I can only tell for sure once I try.

@ @flat look
I think you misunderstood me there a bit: The flat look is not what I planned in first place. Instead, I wanted to completely overpaint all the graphics on Sunday (yesterday) and give them more details and totally break the flat look. But problems on Saturday evening lead to fairly increased coding time. Combined with the nice weather on Sunday I just decided to leave that for after the competition ;)

@ @ mobile
Do you play on your Smartwatch? :P cause I'm here sitting with my Galaxy S4 mini with a 4.1" display (which is a "smaller device" imho) and ran in no troubles so far.

Derron

#5
I had not played it on a smartphone - I just guessed that fat fingers might have trouble on little 4" displays.


@ "engage-able"
Why can this be a problem at all?
- touch a "rotator" (blue element)
- as long as the finger is touching this element is set to be the "active" one
- all finger movements on the screen are now interpreted as "rotate the 'active' element"
- if there is another "rotator" below the finger it gets ignored (there s an "active" one already)
- finish touch (release touch screen) and the active element is doing whatever the current position results in and then "active" is set to null

It is similar to the behaviour of buttons: press one button (no mouse button release!) and now move the mouse cursor to another button: what happens if you now release the mouse button? In our case it should click the "first button".
For buttons the "click the other button" or "revoke hit/mousedown state of first button" is an option too - in your "rotation widget" approach it is different:
- to have a valid rotation your finger needs to be in a certain "range" of the "blue element"
- but as long as the finger touching you wont activate an other element - the "active" one stays active even if the final result will be invalid (finger removed outside of the "allowed range")



@ participation
If a game looks interesting I am most often interested in helping somehow.


@ good weather
yep, was outside at the weekend days too (Drachensteigen, Parkeisenbahn ;-)).


bye
Ron

Holzchopf

I really appreciate your contributions. I didn't think of the way you described how to approach the problem of interfering rotators. I'll test that one too, thanks!

therevills

Really like this one, nice little puzzle game and I agree with Ron with a bit more polish this could do well out in the wild :)

Steve Elliott

Quote
Really like this one, nice little puzzle game and I agree with Ron with a bit more polish this could do well out in the wild :)

Yes maybe a little more polish - but without going over-board.  The sort of game that could work well on tablet for killing time on a journey as you try to figure out the solutions.  Good job!
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Derron

mirror mirror on the wall... somewhere with a mirror for this game ?




bye
Ron

Holzchopf

That's odd. It works here... Nevertheless I just downloaded it from the source in the initial posting and attached it here. Can you access the HTML5 version?

Derron

#11
When I tried last night it wasn't working - maybe your server had an hickup (mine had one 2 days ago - process limits reached, email server rejected spawning new sendmail processes then).

Will try later that day.
Edit: played and still think it is a wonderful game (which would benefit from some polishing to attract more people).


bye
Ron

chalky

#12
I am totally addicted to this game and cannot stop playing it - congratulations on a superb entry.

A few minor observations:

1. Sometimes when I click on a blue node it doesn't get selected even though I hear the "select" sound effect.
2. It would be better (IMO!) if a node remained selected after each rotation (rather than the player having to reselect it if multiple rotations are needed).
3. Having the level-select screen auto-scroll to the page containing the next unplayed level would eliminate the need to scroll through pages of completed levels.
4. A 'restart' button (rather than having to exit the level and reselect it) would be nice.
5. A full screen option would be great.
6. An exe icon would make it look even more professional.

I really do think this is a brilliant piece of work - thank you for creating it!

Holzchopf

Thanks for your feedback, chalky!

@not selected selected nodes: I'll have to dig a little deeper here as I could not observe this so far...
@keep nodes selected: Yes, that's a very common feedback. I will change it so nodes remain selected.
@scroll down stage select screen: That's top on my to-do list, as I'm myself a bit annoyed by having to scroll down every time :D
@restart button: Hmm ok. That's true. I'll find a way for this.
@full screen: I think in Cerberus X, fullscreen or windowed mode is a build option. So I would have to provide a second .exe that's just fullscreen.
@exe icon: Maybe I find a way to hack in an icon. TBH, the windows version is not my main target with this game. So this feature might wait a bit longer.

Also, I thought about this change: Make the "GO!" button active all the time. This way, it will be a bit harder: I had so often that "Come on! Why don't you light up? There's a path right there isn't it..? oh...". And if the player can rely on the status of the "GO!" button, it's a huge hint. In the same turn, I would change the scoring system: 1 star for making it to the goal, 1 star for collecting all diamonds, 1 star for collecting the "CRAZY" tokens in correct order and 1 star for hitting the "GO!" button - this way, you could still collect some stars even if the car derails.

chalky

Personally, I rather like the way the GO button is disabled until a path has been found - particularly as this currently happens even if some required targets are not on the selected route. I've done that a couple of times, then gone back to replay a level in order to get the max 4 stars available.

I *think* the 'not selecting a node' issue occurs if I click one before the rotation animation has finished, but will do some more investigations.