Quote: "@ Cash Curtis II: I'm still a bit foggy about how to calculate the right amount of units to move, the right degree to turn, to jump and to play the right amount of animation frames to keep it all at the speed I want o.O Right now I'm just frustrated that manually keeping a timer to hold the game loop >= 15 miliseconds isn't working. "
Easy to do, and you'll love it. When the FPS go way down or up, gameplay is not compromised. You start by defining movement for each entity as DBP Units per second. Also, you define turns as Degrees per second. Let's use a UDT (not saying you do, there are plenty of other ways to do it).
type charDat
speed as integer
turnSpeed as integer
speedTimer as integer
moving as integer
endtype
type gameDat
charCount as integer
endtype
dim char(10) as charDat
global game as gameDat
char(1).speed=100
char(1).turnSpeed=120
char(1).speedTimer=timer()
game.charCount=1
rem Main loop
do
if upkey() then char(1).moving=1
for i=1 to game.charCount
if char(i).moving=1
`Here, we get the interval since the last loop
time=timer()-(char(i).speedTimer)
`Here, we calculate the amount it should move, based on time
timeFrame=(time*char(i).speed)/1000.0
move object char(i).object, timeFrame
char(i).moving=0
endif
char(i).speedTimer=timer()
next i
loop
That code won't execute, but it shows the basics of how it's done. You simply move the object the distance it would have moved since the last update in DBP Units per second. I also use this method for animation and rotation. It allows you to build a very solid game.
Quote: "Right now I'm just frustrated that manually keeping a timer to hold the game loop >= 15 miliseconds isn't working."
I recommend that you don't try and limit the speed this way. It creates a bit of a sticky environment. Plus, it doesn't compensate for low FPS, only high FPS.
If you do it this way, 15 seems a bit low. I actually used this method with my first game, Pong y2k. I programmed that on my laptop, and people said it was too fast. So, I limited the loop interval to no less than 17 ms. The problem really occurs when the loop time is just below that.
Let's say, for example, that the program loops every 16 milliseconds. So, the first loop it gets skipped. By the time the second loop comes around, it might be 32 milliseconds, at which point it will execute. It's just not stable or functional enough to really use.
*****
Now this whole thing with Bizar Guy - he's a great person to have looking at your game. His advice to me has always been good and honest. I'll have something in my game I find quite endearing that he, as an honest outside observer, doesn't. The best thing to do is to see if the way he suggests is better. Excluding the possibility because it's not your way just limits what you can do.
As for the mouse jumping, I think it's a good idea. I think that consolidating controls to one input device is always a good idea. It's not always possible. In my WIP, I use space for jumping. That's because everything on the mouse is currently in use. However, in an action based platformer, I find the idea of clicking to jump logical and appealing. I think it's more of a natural reaction when using my control hand for moving and jumping.
I just think that fighting about it is a bit ridiculous. He's trying to help, and he does a wonderful job of it. I think that perhaps you over analyzed his comments and took them a bit personal.
Just something to think about.
Come see the WIP!