Tips for how to start this project.
Ok, so I have been through a bunch tutorials and even made some simple games. But in order to start my game I need an "AHA! moment" on how I would start this project I want to do. To say the very basics of what I need to do... Want to have an object start at one point and gain speed constantly. The speed would be suggested at the how fast the enemies came at the object. First pretty slow and then much more quickly as time went on. What would be the best way to start this?
Edit:
And actually I would like to hear about suggesting the speed with the player as well.
Edit:
And actually I would like to hear about suggesting the speed with the player as well.
Answers
So, I would assume that you want the player to stay still but then incoming enemies/obstacles and a moving background show that the player is moving forward relatively. Obviously, you would want a speed attribute, so make a game attribute called 'speed.' (or whatever suits you best.) It is a good idea to have the speed increase as the gameplay progresses, a lot of games do this. You should set the default amount for the speed attribute to how you want it to start. You should have an actor for your character/protagonist and another for the enemies/obstacles. I am not sure how you want to set up your character but once you have it so that he can run and jump or whatever, we can work on the obstacles. You will need a way to spawn them into the scene, and to make them move you can do either one of two things. You could use a move behavior and set the speed to our attribute game.speed, or even better you could do: constrain attribute- self> motion > linear > x - to - game.speed. Now you have the obstacles moving.
You can then add somewhere that as the time goes on, the speed attribute increases. And if you want a moving background, you can try a parallax scroller. (Check out this link to a recent thread on parallax : http://forums.gamesalad.com/discussion/comment/329327/#Comment_329327 )
If you need more just ask!
Guru Video Channel | Lost Oasis Games | FRYING BACON STUDIOS
"If you're asking how to do something basic as how to move actors down a screen sounds like you need to study more."
Instead of telling me I need to study more, why don't you help me out? Im not trying to be rude but that answer doesn't point me in the right direction. Instead if you feel like posting say something like hey I think you need to understand "this" better, and then point me in a direction. I am obviously not piecing the right things together from what I have built and what I have read.
Nmdogdude
"Create a movement behavior 270 degrees relative with a scene. This will have constant acceleration on the scene and produce gravity"
Thank you for your constructive answer. So you're saying that by creating acceleration on my character he will continue to speed forward without slowing down automatically? Doing this will automatically create gravity for the scene?
DanDaMan123
"Your question seems very broad. A little more specifics would be nice.
So, I would assume that you want the player to stay still but then incoming enemies/obstacles and a moving background show that the player is moving forward relatively. Obviously, you would want a speed attribute, so make a game attribute called 'speed.' (or whatever suits you best.) It is a good idea to have the speed increase as the gameplay progresses, a lot of games do this. You should set the default amount for the speed attribute to how you want it to start. You should have an actor for your character/protagonist and another for the enemies/obstacles. I am not sure how you want to set up your character but once you have it so that he can run and jump or whatever, we can work on the obstacles. You will need a way to spawn them into the scene, and to make them move you can do either one of two things. You could use a move behavior and set the speed to our attribute game.speed, or even better you could do: constrain attribute- self> motion > linear > x - to - game.speed. Now you have the obstacles moving.
You can then add somewhere that as the time goes on, the speed attribute increases. And if you want a moving background, you can try a parallax scroller. (Check out this link to a recent thread on parallax : http://forums.gamesalad.com/discussion/comment/329327/#Comment_329327 )
If you need more just ask!"
Thank you taking the time to make this lengthy answer. I think you understand very what I am trying to achieve. Now my bigger question for this project is the objects. Should I just design this like a normal platformer but in the vertical position? I was thinking I could save memory and have them appear as they came down just before the top of the screen. I just don't want them to be random... When you say have them spawn, I think I understand how to have an object spawn them in but I want to create specific patterns with specific obstacles. It would be very tedious to set a timer up for every spawn to create a big pattern over many levels. So I am wondering how to create the pattern ahead of time and have it appear as the character speed toward it.
Another edit:
And I did just come across this in the manuel and it answers a couple of my questions. I guess I missed this before. Now on to the obstacle issue.
"Motion-Related Attributes
linear velocity – the speed of an actor in a specific direction, specified in the X and Y directions .
angular velocity – the speed at which the actor rotates . Values greater than 0 cause the actor to rotate counter-clockwise . Negative values cause clockwise rotation .
max speed – the value of the maximum speed the actor can go if Apply Max Speed has been selected .
apply max speed – if checked, the actor will be limited to the speed set in Max Speed . Otherwise, the actor will continue to increase in speed ."
For the movement of the obstacles you can do a number of things. Like Nmgodude said you could use a move behavior 270 degrees relative to the scene and set the speed to your speed attribute. And just to clarify is your game the type of endless game where the player doesn't beat levels but instead tries to achieve a highscore? Just making sure.
For patterns, I haven't ever tried to use pre-made patterns, most of the time I use randomizers, but I think you could probably create patterns with tables. You should look into patterns more, maybe see if there are other threads about it.
Edit:
So looking more into tables as suggested... I found this video:
It has given me an idea. The creating random spawn points won't really work I don't think. If I did it that way then I could create a row of random spawn points off the screen where the player would not see them, then I could have them spawn an actor with gravity or acceleration and fall toward the player, thus giving the allusion that the player is the one moving if I use a parallax background. This would also allow the player character to be easier controlled when the level gets fast. The problem with doing it this way is that i have no control over the pattern and it potentially creates chances for there to be impossible segments for the player to get past.
So what if I do it this way? Create a table and use the table like a giant grid to lay out my pattern. Similar to how a guitar hero or rock band note chart is laid out. I could then create spawn points off the screen to spawn the tables contents in a orderly fashion on a per line basis. So if the table has 10 spaces filled in the x line, I could have the coordinating 10 spawn points of the tables x spaces above the screen view. This could also be a good thing because I could keep level size lower and also kill the actor as soon as the actor/obstacle passes the player off screen to keep memory consumption down. But how would I go about doing so? How would I tell GameSalad that at this time display/spawn everything in "this x line" then move on to the next line?
So I need to find out if that's even possible...
Or maybe, I need to set up timers... and just release them off of the table at times that coordinate with each space of the x line of the table. Like for instance, set the table up to spawns everything in the x axis, at the this time, and everything in that row would spawn at a certain time and then the second row would have a different time. Everything in each row would have the same time, each row would have different times. Seems pretty tedious this way and I hope I am not making it too hard on myself. But to me it seems like I MIGHT be able to get game salad to move onto the next line if each line is set up to spawn at certain times. In other words I think I may need to mix what you're saying with the tables spawning things.
Would this be the best way?