Just looking for some feedback, mainly criticisms or things you think could be better.
How do you play when nothing is explained in-game?
Controls are listed under the game window, but the basics are as follows: moving the mouse rotates camera view (so do A&D or the Arrow keys), W&D go forward and back (Right Click also to go forward), and Space or Left Click throws whatever you’re holding.
Here’s a little gameplay guide:
To start, look for the white pulsing spark (4-pointed star). Run into it and it will disperse nearby clouds, allowing you to see more of the world hidden underneath.
Now move around and try to find the large black cone with colored rings. Your goal (how you win) is to “kill” it by hitting it with the white spark and with 3 other sparks.
The cone device will start creating enemies who chase you if you get close, and to damage them you will need the other 3 sparks.
So go search for the grey spark, and run into it to pick it up. This allows you to run into, pick up, and throw rocks, which deal lots of damage to the black circle enemies.
Press space to throw the grey star holding a rock, and watch for when the enemy tails turn more transparent (which means they are taking damage). If an enemy hits you, the player’s tail will become more transparent, though it regenerates eventually.
Clear enemies on your way back to the cone device (or don’t because the device will create more of them) and then start hitting the device with the grey spark. You’ll notice the grey ring on the device starting to flash and get darker with each hit, and when it goes completely black, you’ve depleted that ring and don’t need to hit it any more.
After depleting one of the device rings, the device will now create orange, glowing enemies that are slower but deal higher damage to the player.
Next, go get the blue spark, which can pick up ponds (which deal high damage to the orange enemies). Hit the device with the blue spark until the device’s blue ring is depleted. Once 2 rings are depleted, the device will create small, light gray enemies, which are weaker but very fast.
Now locate and pick up the green spark, which can carry and throw trees (which can take out light gray enemies easily). Go hit the device with the green spark until finally the green ring is depleted and turns black.
If you haven’t already, hit the device with the white spark until the white circle on top turns black.
Once the whole device cone is black, the clouds and enemies will be sucked back into it and you win the game (if it looks all black but nothing is happening, try viewing it from the side to see which ring is still barely flashing, and hit the device with the corresponding spark until it works).
This game is too hard / boring / buggy...
Stuff to be added / Known issues to fix:
- Tree, rock, and pond hitboxes don’t collide with enemies yet when thrown (only spark hitboxes do)
- Y sizing with skewing needs to be calculated differently so it more precisely matches with what you see on the mini map
- Enemy AI still is not very good or very fun
- No sound yet (and music isn’t very well implemented)
- No real ending yet
- No dialogue or helpful hints yet
- Map boundaries and object spawning are still finnicky (should be some kind of visual of the map boundaries in the 3D view)
- Sparks, trees, ponds, and rocks can still be dropped outside the map boundaries
- Enemies can occasionally spawn outside the map
- Cloud displacement physics around white spark need to be reworked (smaller, clearer circle of displacement) and optimized (for performance)
- Should add device impact crater under device (just visual)
- Pond, tree, and rock size needs to affect how much damage can be dealt and how much total damage can be dealt before breaking
- Player can still get stuck with enemies pressing it against the wall
- Should add an option to hide the mini map view and expand the 3d-ish view to fill most of the screen or hide the 3d-ish view and have the mini map fill most of the screen
- Should add some kind of flowing / waving to the player and enemy tails
- Should make map potential size much larger once performance is more optimized
- The fake (that’s right!) “Loading…” message at the beginning should be replaced with something actually useful
- There should be something more interesting to hitting the device and depleting the rings than what there currently is
- Holding down W and Right Click still makes you go twice as fast
How does the camera rotation / 3D effect work?
The math side of most of that you can find in the UI object called “Rotatable / Skewable” (most of the UI objects are parented to it). Basically it uses sine and cosine trigonometry to figure out the position of an object relative to the player’s rotation; if an object sits at a height (like the tops of the trees), it adds that desired height to the y-coordinate. Then it sizes the object using simple division and multiplication to achieve a skewed effect.
On a side note, I still haven’t quite finished correcting the expression for the y-sizing, so you may notice that the player can appear to be very close to something like a pond in the 3D view but fairly far from it in the top-down view.
Other things like the tails’ movement and holding and throwing the sparks are calculated again using trigonometric functions with a specific desired distance applied. For the tails specifically, I allow for the angle (from the tail object to the object it’s following) to change, and then the sine and cosine functions restrict the x and y distance based on that angle.
If you’re wondering where the actual game is (where the physics are happening), well, it’s the mini map itself! I found a way to calculate the exact zoom and camera position needed to display the full map, regardless of what size of map is generated at the start.
What's the actual storyline here? Explain why you play as a white thing in a forest using stars to throw trees at colored circles, etc!?
This is one thing I want people to find out on their own, using their own intuition and creativity. There are no mind-boggling plot twists or character development or anything like that, but things like who the player actually is, or what the “enemies” actually want, or what the real title of the game is, are up to you to unearth.