Huzzah!
BYOND has a brand new feature release, introducing some new elements that should make games a whole lot more awesome. The ball's rolling and we're putting this thing into beta for you to test out. Get it via the "beta" section at the bottom of the Download page. Here's the rundown on what's new:
Visuals
Atoms can be transformed in 2D with rotation, scaling, and translation. This means you can make spinning tank turrets without needing to make a bunch of rotated icons, just for one example. The new atom.transform var makes this possible. This is a matrix, which is a new type of datum that's so easy to work with, it supports operators.
Have your heart set on making atoms fade in and out? Now you can, with atom.alpha. Make your ghosts ghostly instead of having to mess around with custom icons. There's an atom.color var too, so you can apply a color to icons (via multiplication) without having to do any icon operations. (The atom.color var works in hardware mode only.)
These are nice to have, but they're even better now that atoms can be animated! The new animate() proc lets you setup an animation on an atom, which can be one stage or several, and can be looped. Animation can cover a number of vars that transition smoothly, but it can also handle instant changes on some things like icons and icon states, which makes it an upgrade from flick(). And unlike flick(), the changes stick.
Language Miscellany
Complementing MouseEntered() and MouseExited(), there's now a MouseMove() proc for games that care about mouse movement when the cursor moves to a different place over the same atom. If you don't need it, save your bandwidth and don't use it, but it can be a big help for some mouse-driven games.
Incursion players rejoice! The random number generator has been upgraded to a more robust algorithm. Games that previously exposed patterns in the generator should be free of the problem now, provided the .dmb is compiled in BYOND 500. Older .dmbs still use the old generator, in case they relied on rand_seed().
We've had the /icon datum around forever, but it never properly supported operators! That's an oversight that's finally corrected in this new version. Now the datum enjoys the same perks as regular icon files.
Dream Maker
The compiler has gotten a bit of a leg up for big projects: Most of the old 64K limits that still applied at compile-time have been removed. Strings, type paths, and procs can now exist beyond this limit. Procs still have a limited length, but that's just good sense.
The map editor has been given some facelifts too. By request, there are now Select All and Select None options. Jumping to another Z level can be done directly, without using the spin button. And now you can easily revert an atom with changes to its original type.
Go Forth and Create!
Now that some amazing new features are in play, it's time for you to put them into action. We'd like to thank everyone who's supported BYOND so far--remember, we can't do this without you. While this feature set is aimed at developers, we expect a lot of players to benefit from much more interactive games. We'd still like to encourage everyone who plays to chip in a little to keep this thing going, so we can continue to add great new features and improve the engine. Thanks for your support, and enjoy!
ID:1375479
Sep 12 2013, 8:35 pm
|
|
I do thank you for the update and will be hard at work with these features. I just have to ask though: why so early? I was finally going to get to bed before three. Now I'll be up until at least Wednesday.
|
I created a spinning square that grows and shrinks. I feel like a kid learning DM again. This is awesome.
|
In response to Albro1
|
|
Albro1 wrote:
I created a spinning square that grows and shrinks. I feel like a kid learning DM again. This is awesome. Agreed. |
This isn't really the place for Dev Help or anything- but I'm assuming that the animate() proc is now used in place of flick() is that correct?
I fired up an older project and noticed that a second version of the icon is displayed on top of the first, so it sort of looks like there is a weird doppelganger effect for the duration of every flick. |
flick() should still work and be useful for simple effects. What you are describing sounds like a bug, so please report it.
|
In response to NNAAAAHH
|
|
NNAAAAHH wrote:
I'm glad it's out and the features look great. I actually wrote something (ODT format is here) about a client-side implementation. It's too bad we can't port the VM to the thin client, though, because we desperately need BOTH to draw in the new developers needed to make BYOND start recovering ground lost to other platforms since 2001-2005. |
The first thing I read was "The Big 500", and I automatically clicked, and first thing I saw was a little blue word what said "Download" and without any hesitating I downloaded. I love BYOND, and this is going to be a great update. :D