I've been busy lately (on non-BYOND things), so here's an update of the few things I've gotten done and the many things I plan to do.
A 3D Display Mode for BYOND
I'm sure the staff has given this some thought, and I made a post a while ago to spark some discussion on this, but I'd like to see the topic revisited. A 3D display mode is not hard to add. I'd say it's harder than adding the isometric display but much easier than making the Flash client. Because it's just a graphical display, it avoids some technical issues (ex: none of the networking stuff has to be changed or re-done), but to be compatible it still has some problems that might not be obvious (ex: needs to figure out what object the player clicked on, take mouse_opacity into account, etc.).
It'd be very beneficial:
* It would give BYOND a built-in, client-side, dynamic lighting system. You'd just have to create a way for the server to define light sources.
* It would solve all layering issues that 2.5D displays have.
* It opens the door to some more advanced features (3D models, shaders, etc.)
* Makes map rotation more useful, more flexible, and for free.
* Providing a simple way for users to create games that have 3D graphics is another excellent selling point for BYOND.
Perhaps the most important feature is that a 3D display mode lets users do more with simpler graphics. Currently people put a lot of effort into making every sprite look just right. When that's all you have, you have to. When the images you make are used as textures applied to 3D objects and have shading applied to them, things automatically look nicer. Many BYOND games have turfs that are better drawn than Minecraft's textures, but Minecraft's graphics are, overall, better than any BYOND game.
Another update has been posted that includes:
* Updates to the pathfinding, or more precisely, the path following routine.
* Added an example of pushable boxes in interaction-demo.
* Added an argument to mob.movement() and mob.action(). The argument is a number of ticks in the 0 to 999 range. This can be used to easily create events that happen every n-th tick, instead of every tick.
* Changed the way move() and climb() are called. Previously, if you were standing next to a wall and tried to move towards it, move() would not be called. This also meant that bump wouldn't be called. Now, in that same situation, move() will be called.
The old path-following code is packaged with the library as _old-mob-pathing.dm. It's not included by default, but it's there if you'd prefer to use it instead of the updated version. Neither version is perfect, so you might get better performance from the old one.
I'd like to create some mini-game type of demos that I'll include as demos. Not only will they serve as demos that people can look at, learn from, and build upon, but they'll also be designed to work as benchmarks for evaluating singleplayer and multiplayer performance.
The library recently passed 1,000 downloads.
A Miner Adventure
A small update has been posted to address a few issues:
* #398 Fixed a bug where you wouldn't be properly placed on the map when a game started
* #397 Fixed a bug where the winner in free-for-all rescue games wasn't getting credit
* Made some optimizations to further improve performance when lighting is disabled.
When I get the time I'll begin work on a new adventure mode. It'll be a completely separate adventure that'll be in addition to the current adventure mode. It won't replace it, but it'll be a lot better.
I've made some changes to the classes. Here are the current descriptions and ability sets:
* dagger throw
* wall climbing
* increased movement speed
* reduced ability cooldown times
* summon a plant that shoots at enemies
* brambles (deals damage to enemies when they touch you)
* some type of summoned melee attacker
* bone spear
* summon skeleton
* shatter (kills enemy but spawns a soul)
* consume soul (restore health and mana)
* increased physical damage
* wand attack
* ice block (summon dense block that you can shatter to deal damage to nearby enemies)
Assassin became Bandit and Knight became Warlord. Not that they matter much, but when you hear "druid", most people think of druids from WoW, Diablo 2, or some other existing game. By using different names I'm not giving you any expectations of what the classes will be able to do. I might change the names of the other classes but I don't have any ideas at the moment.
Some of these abilities haven't been implemented yet. In addition to implementing them (once they're implemented I'll post a new video), I'd also like to add the interface for binding abilities to keys. After that I'll work on implementing character growth. I tend to work on features and content in parallel, so I should have three dungeons done by that point. Then it shouldn't take much more work to get a playable demo together.
I have a few ideas for articles but they're on hold for now. I haven't had much time to spend on BYOND lately, so I'm not going to spend what little time I do have working on an article.
People Using Pixel Movement
I've been noticing more and more posts about people using my pixel movement libraries. This is always nice to see.
If I missed your project, let me know. I like to keep up to date on how people are using my libraries so I can get ideas for things to add to them.
My BYOND membership is running out (in ~16 days). I hate when people beg for memberships so I'm not going to beg, but I know there are lots of people out there who enjoy buying BYOND memberships for other people. If buying a membership will make you happy, and getting one will make me happy, maybe we can work something out.