groundon33 3 years ago
'You are right about the random generation of tiles and i have been balancing the jump range but i feel the game needs to get harder and harder. So this is a hard balance to reach. '
i suggest using a value to represent difficulty, calculate this value in function of distance travelled, have different functions for different difficulty levels.
easy: difficulty = log(distanceTravelled)
normal: difficulty = log(distanceTravelled) + 1
hard: difficulty = 1.2 * log(distanceTravelled) + 2
Use this difficulty value to generate tiles (amount of tiles, types of tiles,...)
'Graphically and mechanically PopSwap is intended to be a casual game aimed at younger children and casual gamers essentially a mobile game intended for time wasting and competing with friends E.G. Crossy Road or Flappy Bird. So graphically I intended it to be a cutesy casual game with little animals that bounce on colourful blocks in the sky (background was done quickly) but the models were bought and i think they would work in a cutesy game '
I think we come to an important issue: feedback and time.
time: The time you are in the air on average increases with the difficulty like it's now implemented, the player can only make a decision that matters every
x seconds, i can feel this very getting boring the further you are.
Flappy Bird is fast, and has the player making important decisions throughout (how many times to flap)
Crossy Road allows the player to decide and run at their own pace (altough there is a speed limit for the animals and the obstacles must align)
feedback: when the animal is in the air and the tiles are invisible, there is no feedback, very bad, especially on mobile devices (did it register my tap?)
consider limiting the arc of a player so that the highest arc still allows the player to view the tiles completely (vertically)
'I think the 3D adds to the popping and swapping of the tiles and i don't see this working in 2D, correct me if i'm wrong. '
i does add, but i think you need to experiment with the perspective, it just feels a bit off
to make this work in 2D: the tiles that are popped out are their normal colors, the tiles that are popped in are greyed out/have less color/other.
'The mechanics i think need tweaking and i like the ideas for different platforms you had like the gravity change and teleporters.'
Also consider varying the length of the tiles.
'I know very little about colour palettes and theory i just wanted colours that matched and were appealing in a nice casual game. I have struggled trying to find an art style but i think the characters work but the BG and the platforms need changing.'
keep it simple, i don't know what artstyle you could go for, maybe change the tiles and background depending on distance travelled:
-type of tileset (=how the tiles look, texture of tiles or model of tiles) like buildings, clouds, treetops, bouncing on the roofs of driving cars (that are driving at the same speed so that the tiles stay in the same place, popping and swapping makes cars change lane with 2 lanes), ...
'But the game is essentially a timing game so i cant have too much of the level on screen at the moment random levels seem to be the way to go currently RNG decides if the platform is a double then if its green or red. then a second query makes sure they alternate.'
i agree on generating levels with RNG, but not jump range
also why a second query? don't randomly decide if the color is red or green, just use the opposite color of the previous tile(s)
Also consider allowing more than 2 of the same color of tile:
1. choose random number between 1 and maxTilesOfSameColor, generate that many tiles with color X
2. repeat 1 but with the alternate color
Also something else:
the animals always rotate counterclockwise and only roll, consider 'simulating' wind resistance on the polygons of the animals that are sticking out.
How to do this:
-give every animal a yawChange, pitchChange, rollChange value
-when an animal travels a distance, the new value of the yaw, pitch and roll of the animals becomes: x = (x + change*distanceTravelled) % 360
eg: yaw = (yaw + yawChange * distanceTravelled) % 360
keep in mind that the yaw, roll and pitch should wrap around thus we use mod (%),
note that you should replace the value '360' with 2*Pi if your math functions use radians
distanceTravelled = difference in x values between current location of animal and previous location
Also consider using different tile lengths
feel free to ask any questions.