ID:240794
 
I've been working on an old project of mine called Gunpowder, a team-based combat game.

Some concerns I have is that, would anyone play a tile-based shooter? It feels like it would just be way too slow and clunky to work out. Maybe I'm wrong though.

The thing is though, when I think about if I should add pixel movement or not, I just don't think BYOND can handle having ten pixel moving players (two teams, max of five players per team) patrolling the map, all with background things happening as well as lasers and stuff also pixel movin'. I may just be cynical, though I also haven't really seen any sort of benchmarks or games that actually utilize pixel movement on a large(?) scale.

Of course, if people don't care about the whole tile-movement thing then I can work with that, I've tried my best to make it smooth and quick (I'm utilizing SAx's Simple Move library, which makes movement so much better).

WHAT DO YOU THINK GUYS?

Also have some screenshots or something, artwork is all by tProc.

titlescreen
medic aka the best class
Feed uses pixel movements for everything that moves. I havent noticed any slow downs or lag at all even with 20 players moving around everywhere shooting a crap load of pixel projectiles and 800 zombies. Byond is more than capable of handling pixel movements I guess its just the way how its handled it. If you would like to know more I be happy to help you if you need any. =]
In response to Darker Emerald
Darker Emerald wrote:
Feed uses pixel movements for everything that moves. I havent noticed any slow downs or lag at all even with 20 players moving around everywhere shooting a crap load of pixel projectiles and 800 zombies. Byond is more than capable of handling pixel movements I guess its just the way how its handled it. If you would like to know more I be happy to help you if you need any. =]

Oh, hrm. That's a lot more than I was expecting it to be able to handle. Ten shouldn't be any problem then I'd hope.

Well, the original idea with the tile-movement was to have dedicated keys to fire lasers with, but with pixel movement I'd probably want to use clicking to fire. I'm not entirely sure how to work out moving projectiles at certain angles though since walk(), step(), and Move() seem to be constrained to BYOND's eight directions.
1. As far as I can tell, Feed has no pixel movement in it at all. Its projectiles curve in the way that walk_towards moves things, and everything glides from tile to tile.
2. http://www.byond.com/forum/?post=151264 My implementation of "fractional pixel movement" is pretty simple. I'm not sure if it gets any simpler, but that would be the only way to have projectiles flying in any direction, because trig values get rounded by step_x/y.
3. http://www.byond.com/games/Kaiochao/shootah was made before native pixel movement and before Forum_account's libraries. I used jt_vectors and the power of simple math/trigonometry. It runs pretty slow with a lot going on, but it could use optimization.

Native pixel movement runs a lot nicer than it used to. I suggest someone actually tries it out before anyone rules it out as a new standard for BYOND games. At least, it should be a good feature, considering it's standard for every other game out there.
A teeny bit off topic, but your game looks nice. :)
Decadence uses a mix of tile movement and pixel movement. Anything requiring player input, this means moving and aiming, uses tiles. The projectiles themselves ignore the exact pixel location of the mouse while using pixel movement in order to travel from Point A to Point B. Their animation might be choppy at times over a network, but since the players aren't directly controlling the projectiles themselves it doesn't really matter.

There will always be bouts of lag, it's unavoidable when making a multiplayer game. What you can do to diminish its effects is offload as much as you can onto less demanding parts of the game. Player movement? Top priority, should be something simple and fast. Projectiles? Low priority, all you absolutely need to do is inform players where the shots are landing.
Native pixel movement can run fine. You can pull off smooth gameplay at 20 FPS, which would only double most concerns compared to that of a standard BYOND game. There are several performance related issues with it, but most of them seem to be bugs, and are generally avoidable for the time being.

The server of HU2 hosted by The Planet is running BYOND's pixel movement at 20 FPS. You can wander around as soon as you login, if you want to get a quick benchmark of how that's running on your end.
LordAndrew wrote:
The thing is though, when I think about if I should add pixel movement or not, I just don't think BYOND can handle having ten pixel moving players (two teams, max of five players per team) patrolling the map, all with background things happening as well as lasers and stuff also pixel movin'. I may just be cynical, though I also haven't really seen any sort of benchmarks or games that actually utilize pixel movement on a large(?) scale.

Try it and find out. People tend to be cynical and assume that BYOND can't handle it but they'd be surprised at how well it would work and at how much players will tolerate. People are more likely to play a fun game that runs at 30 frames per second and occasionally lags than a game that uses tile-based movement and runs at 10 fps (so it always feels unresponsive).

It's not a good idea to have a huge emphasis on action and reflexes, but that doesn't mean that pixel movement and a higher framerate are out of the question.
In response to Forum_account
Forum_account wrote:
People are more likely to play a fun game that runs at 30 frames per second and occasionally lags than a game that uses tile-based movement and runs at 10 fps (so it always feels unresponsive).

[citation needed]
Hazordhu uses tile movement. Recently, the fps was raised to 30 and players have noticed, and it looks much nicer. Now, I can never go back to using silly 10FPS.
In response to SuperAntx
SuperAntx wrote:
Forum_account wrote:
People are more likely to play a fun game that runs at 30 frames per second and occasionally lags than a game that uses tile-based movement and runs at 10 fps (so it always feels unresponsive).

[citation needed]

Most computer games don't run at 10 fps and they never have. Even old games on old computers had better frame rates. NES games ran at 30 fps and when you got too many sprites on the screen and it lagged terribly, it was actually only dropping to 15 fps.

BYOND games are just about the only games that are limited to 10 fps (not that BYOND imposes that limit anymore, but people still go along with it). There are many more people who play non-BYOND games than those that do. It's more likely that a person will play a non-BYOND game than a BYOND game.

No citation is needed, this is just common sense. Gamers who aren't conscious of framerates will be able to tell that 10 fps is unacceptable. BYOND users who have gotten used to seeing tile-based games run at 10 fps don't think anything of it, but that's just one of many ways that BYOND users have let their standards drop.
In response to Forum_account
Forum_account wrote:
BYOND games are just about the only games that are limited to 10 fps (not that BYOND imposes that limit anymore, but people still go along with it). There are many more people who play non-BYOND games than those that do. It's more likely that a person will play a non-BYOND game than a BYOND game.

No citation is needed, this is just common sense. Gamers who aren't conscious of framerates will be able to tell that 10 fps is unacceptable. BYOND users who have gotten used to seeing tile-based games run at 10 fps don't think anything of it, but that's just one of many ways that BYOND users have let their standards drop.

I find that hard to believe when there's another huge thread full of people saying graphics don't matter as long as the game is fun. Your language is also a bit loaded when comparing a "fun 30fps game" to a "10fps game with input lag." If anything a 30fps game will have more input lag as a result of a poor connection quality, making it even worse to play than a stable 10fps game.

Increasing the frame rate of a BYOND game is like putting a NOS kit on a steam engine. Sure, it may run fast and look cool, but it's incredibly unstable and will most likely fall apart given enough time. In an action game stability trumps graphics. The most popular action/adventure games right now are Rise Of The Pirates, Dead World, and Space Station 13. All of those run at 10fps. The only games up there which don't run at 10fps happen to be Feed, Spirit Age, and Decadence. Of those three, Decadence is the only running at 30fps while the other two run at 20fps. All of them get really choppy when played online, even with a 10MB/s connection. A good gameplay experience relies entirely on server location and a lot of luck.

If you're going to make a BYOND game, make a BYOND game. You have to work within the limitations of the software and that means not straining it more than it needs to be. Aside from performance issues related to online play you also have simple things like screen tearing diminishing that shine you put on your 30pfs game.

While it's true non-BYONDers would most likely play a non-BYOND game rather than a BYOND game, the reason isn't going to be something as petty as the frame rate.
Again, Hazordhu runs at 30fps. No one complains about any lag or choppiness, because as far as I can tell, there is absolutely no choppiness. When we made the increase from 10fps to 30fps, everything looked a lot nicer. The highest number of players we've had in the server is in the mid-30s, and it still ran smoothly. It started out as a BYOND game, and it's still a BYOND game. All we did was increase the FPS a bit, and it looks much better, without any side-effects.
I just went and took a look at Hazordhu and I must say it's very clever in the way it has implemented an increased frame rate. It's still using tile-based movement and the movement speed is slowed down, yet all the animation is silky smooth.

This is exactly what I was talking about when saying games need to work within BYOND's limitations. There's no pixel movement in Hazordhu, there aren't any flashy effects getting in the way of player input. It's simply an increased frame rate supplementing slow paced gameplay.
In response to SuperAntx
SuperAntx wrote:
I find that hard to believe when there's another huge thread full of people saying graphics don't matter as long as the game is fun.

Framerate is more of a responsiveness issue than a graphics issue. A low framerate makes it harder to control things because the game isn't as responsive. The game's icons may still be pretty but the game will be frustrating to play.

If anything a 30fps game will have more input lag as a result of a poor connection quality, making it even worse to play than a stable 10fps game.

Suppose it takes 25 milliseconds for a message to reach the server from your client (ex: when you hit a key) and another 25 ms for an update to reach your client from the server (ex: to update your position).

In a 10 fps game, commands are processed by the server every 100 ms. The best case is that your command reaches the server just before it processes everything and sends out updates. The worst case is that your command reaches the server just after a tick and has to wait almost the entire 100 ms. Ignoring CPU time, it can take between 50 and 150 ms for your screen to update after hitting a key. In a 20 fps game, the delay would be between 50 ms and 100 ms. In a 30 fps game it'd be between 50 ms and 83 ms. At 40 fps it's between 50 ms and 75 ms.

A higher framerate will lower the latency.

If you're going to make a BYOND game, make a BYOND game. You have to work within the limitations of the software and that means not straining it more than it needs to be.

BYOND is full of people with irrational fears. People are afraid to use the : operator because they think it's slow. People are afraid to split code into separate procs because they think that making a function call slows things down.

Despite what people think, BYOND games run great at 30 fps. Even action games, even over the internet. A Miner Adventure has a lot of things to drive the CPU and network usage way up and it's still playable over the internet (and its default might be 35 fps). I've seen one example of action games working just fine on BYOND and zero examples otherwise.
In response to Forum_account
Forum_account wrote:
I've seen one example of action games working just fine on BYOND and zero examples otherwise.

Which example is this?

I tried all the suggestions, except Epic which gave me a "Dream Seeker is out of date error", and I just had installed DM, and none of them ran well.
As I mentioned before, The Planet's server of HU2 is running native pixel movement at only 20 fps. It is essentially 4 times as responsive as it was with tile based movement, due to the fact that I had already overridden BYOND's flunky movement systems. Aside from 2 quick popups that you have to close, you can instantly move around after logging in (double tap to sprint), so getting a feel for pixel movement over a network shouldn't really be a problem. There are currently ~50 people online, and practically no network lag issues.
In response to 2DExtremeProductions
2DExtremeProductions wrote:
Forum_account wrote:
I've seen one example of action games working just fine on BYOND and zero examples otherwise.

Which example is this?

A Miner Adventure.

The only performance issue is that Dream Seeker is bad at rendering 2D graphics. Some improvements have been made but it's still not up to modern standards. Network latency isn't much of an issue. I've played it just fine on other people's servers with up to 8 players.

Edit: Here's a gameplay video I recorded earlier today while connected to SizzleMan's server.

There's a hiccup around 0:11 in the video but that doesn't mean the higher framerate (35 fps, I think) or the pixel movement is to blame. The internet handles a lot of traffic so while most messages between my computer and the server were received promptly, sometimes they're not. That's just how the internet works and that's something that all multiplayer games have to deal with.

The lag lasted for about a second. This means it would have caused a significant delay in a game running at 10 fps. For the remainder of the video the controls are fairly responsive and the gameplay is pretty smooth.

In response to Falacy
Falacy wrote:
As I mentioned before, The Planet's server of HU2 is running native pixel movement at only 20 fps. It is essentially 4 times as responsive as it was with tile based movement, due to the fact that I had already overridden BYOND's flunky movement systems. Aside from 2 quick popups that you have to close, you can instantly move around after logging in (double tap to sprint), so getting a feel for pixel movement over a network shouldn't really be a problem. There are currently ~50 people online, and practically no network lag issues.

Do you use key repeat events for movement? Or just key press and release events?

I've never measure it, but I always figured it was quite a source of lag to have 50 clients spamming the server with "I'm still holding the arrow key" messages as they're moving. If you only macro the key up and down events the server can deduce that the key is still being held without any extra messages being sent.
In response to Forum_account
Forum_account wrote:
Do you use key repeat events for movement? Or just key press and release events?

Key down/up & a movement loop. Even when the game was using tile based movement, it had such a system implemented. The default repeat macros are too broken to be used for movement.
Page: 1 2 3