ID:1659704
 
I am in the (probably popular) opinion that BYOND games need to stop being 'BYOND games' and start being just 'games'. Most appreciated games outside of our little community, however, seem to draw much of their appeal out of graphical fidelity or easiness on the eyes.

A game's polish is arguably just as important as its solid design. If a game isn't polished and fun to play then it doesn't appeal to audiences outside of a diehard niche (for example, ASCII-graphic roguelikes). It is also, quite simply, not as fun to play as a well-polished and crunchy game.

With the advent of BYOND's new graphical capacities and the looming HTML5 client on the horizon, it begs the question as to why we don't see many widely-played polished games on BYOND.

With crunch comes an obvious overhead. You want to make a special effect when you collect money? That adds unnecessary CPU load. You want to have pixel projectiles with semi-realistic trajectories and homing mechanics? That adds even more load to your game. Pretty soon you will have a very polished multiplayer game that cannot hold as many players as an unpolished, bare-bones game with the same mechanics.


Would you agree that this looks nice? [large gif warning] Would you also agree that those pixel projectiles with constantly-updating angles and icon rotations are pretty CPU-intensive to do on BYOND?

Would you agree with the idea that it's not worth it? That it's better to focus on gameplay than presentation?
Don't know about you, but I made a really quick, really simple pixel projectile system I use for my games. There is nothing inefficient about it at all. I haven't tested out what it's capable of entirely, but I've had hundreds of projectiles running at once with no real issue.
And I am willing to bet people better at BYOND than me could optimize the code significantly.


As for your gif. It looks like a typical BYOND game.
Poorly animated.
Bald naked man.
Jittery, probably running at a low FPS.
Graphics look good but are horribly used.


If you want to make a good, polished game, it takes a lot of time and effort. Gameplay and presentation are not mutually exclusive. There is no reason you can't take a week or two to just polish your game off once you consider it finished enough to release.
In response to The Magic Man
I was just talking about the projectiles and effects in general. They may look like simple "continue to follow the target" projectiles, but I get the feeling projectiles of the caliber I'm attempting are nonexistent in BYOND games. They use a pretty simple (but expensive) form of spherical angle interpolation using many different algorithms (linear, cosine, cubic-spline) to achieve something pretty realistic and smooth. Keep in mind this is all -very- CPU expensive, despite my best attempts to optimize it intensely. It runs pretty well with 100+ projectiles running at once, but still.

It's running at a high FPS.

It's not even close to being a finished game. Bald naked men will not be a thing in the finished product.

The graphics are better than using the same shitty RPG maker style, eh? :)
Seems to me like you're thinking too much about these projectiles.

I'm not sure what your exact goal is, but what I'd do is simple.
Work out the x/y location of the projectile.
Work out the x/y location of what it is chasing.
Calculate the angle between these two points.
Have the projectile move in this direction.
Loop this.

If you want the projectile to curve, rather than snap to a direction, instead of updating it's angle as above, have it's angle become the average of the calculated angle and it's current direction.

Unless I'm doing something wrong, that will make a projectile chase something. Give me 10 minutes and I'll try it out.

Although based on your gif, your projectiles aren't chasing anything, they're simply moving in a specific direction. In which case, do the above but don't constantly update the angle, do it once when the projectile is created. Which is exactly what I do and I can handle hundreds of such projectiles.
In response to The Magic Man
Either I'm bad at explaining things or you aren't really understanding.
http://files.byondhome.com/TheMagicMan/projtest.zip

Here.

4 projectiles types.
Straight fires in a straight line.
Chase will chase.
Curve will chase, but is only capable of making turns upto 60 degrees at a time.
SlowCurve will chase but can only make curves upto 10 degrees at a time.

Number2fire will change how many projectiles you fire at a time.

Left click the red circles to shoot at them.

Only minor issues are if projectiles leave the edge of the screen it wraps around to the other side of the map or some weird angle (around 0 degrees it seems) causes them to go haywire. Both are probably simple fixes but I'm too lazy to figure it out.

My computer can handle 100 projectiles of the homing type with about 10% cpu usage. I'm sure with optimization that could be decreased. And I suspect most of that comes from using matrixes, transform and turn to adjust the icon.
In response to The Magic Man
Your way of doing it seems far saner than mine!

Here's some examples of what my system does:

http://puu.sh/aWHiU/7147541245.gif

http://puu.sh/atvfH/96143853e9.gif
You've got some sexy art there.
I think the more projectiles you pile onto a screen, the better your game will turn out. For example, I play League of Legends, and the main reason I do is because there's so many beams and lasers going on at one time. I love the flashing lights and rainbows and pew pews.

If BYOND could handle 100 projectiles on the screen easily, we would have so many award winning games right now. But obviously Tom doesn't understand this. Obviously he doesn't realize the importance of projectiles on the screen. He's put so much time into HTML5 he's lost sight of the fact that fireballs are what's going to propel BYOND into the spotlight. Tom pls.
Doohl, I don't think computing angles for projectiles every tick is slow. An arctan2() is essentially just two division operations, one multiplication operation, one addition operation, a table lookup (and maybe a little lerp), and a few checks for the output quadrant.
You could probably run tens of thousands of calls of arctan2() per second before your world's CPU usage hits 10%.

On the other hand, what IS CPU intensive in BYOND, is silly things like this [fat gif moving through], which happens to run very smoothly on my machine at 30fps.

The biggest bottleneck on BYOND regarding projectiles is the need for the server to constantly send new position and rotation updates to the client. This is a network bottleneck, not a CPU bottleneck. You can minimize the effects of this bottleneck through clever use of animate(), or minimizing the number of active projectiles, or reducing the number of clients.


Regarding your homing projectiles' behavior, I think you shouldn't be trying to turn your projectiles. For some of them, like the coins, you get some pretty undesirable orbiting behavior at certain distances. I've found that it's generally better to use a gravity-esque acceleration towards the target, accompanied by a small frictional or drag acceleration.
That looks amazing Doohl. I've been trying to mess around with something just like that but haven't been successful in creating anything that hasn't been a bottleneck yet. How'd you go about making yours?

Personally, I think presentation is a very big part of game design. You could have amazing gameplay but things can get very dull if there isn't really much presentation. It doesn't have to be big flashy things everywhere but what you showed there alone is something nice.
I'm probably complicating the process, as Magic Man said, but I use a special form of interpolation to find rotations. The rest is just good old fashioned pixel movement. With a hundred or so projectiles operating at a given time it doesn't take up a whole lot of CPU, but it's still the most expensive part of the game so far.

As for what the game actually is...

That's a sekrit :)
This is BYOND. We don't keep sekrits here. SPILL THE BEANS, DUDE.
Well, here's a little mockup:

http://puu.sh/9ArFj/7a3eaaecee.png


The HUD doesn't reflect our up-to-date designs though. For that we'll be using something else.

EDIT: some hud stuff ( http://puu.sh/aYepg/60f7829119.png )
In response to Doohl
Doohl wrote:
EDIT: some hud stuff ( http://puu.sh/aYepg/60f7829119.png

That looks freaking amazing O:
I really hope this becomes a game because that art is really turning me on.
In response to Fugsnarf
A lot of money has been invested into it. Having it fail is not an option.
In response to Doohl
If you don't mind me asking: who is the artist behind your game? I love their style!
Ah, that's a little RPG we're working on. Here's Jose's website: http://www.el-sato.com/art.html

We're going to start making bi-weekly posts in roughly a month, most likely, on the game's website and the BYOND blogs. The posts will be relatively short but will show what we've done in the past few weeks along with a screenshot/gif.
In response to Writing A New One
Writing A New One wrote:
Ah, that's a little RPG we're working on. Here's Jose's website: http://www.el-sato.com/art.html

We're going to start making bi-weekly posts in roughly a month, most likely, on the game's website and the BYOND blogs. The posts will be relatively short but will show what we've done in the past few weeks along with a screenshot/gif.

I like Jose's art. Particularly the naked blonde girl.
Page: 1 2 3