This week I put a lot of focus on the webclient, in an ongoing quest to improve functionality and also improve the FPS a bit. There's a new routine, byond.fn.css(), that can be used to set a CSS rule--not simply a style, but an actual rule in a stylesheet that applies only to a single control. The upshot: now the info control can handle prefix, suffix, and highlight colors. I expect to make good use of that in other controls too.
Doohl had a request to improve profiling for the webclient and for Linux. While I'm still unsure how to approach the Linux side, I was able to adapt the old browser-based profiling method into something that could support popup windows OR a custom control. What I'm hoping to do in the near future is create a profiler control. It'll be simple at first, but anyone so inclined can always tinker with it.
Speaking of profiling, a longstanding issue that a lot of game authors had was that init procs--the kind used to set vars like obj/var/mylist[0]--never had names, so they showed up as blank in the profiler. In 509.1305 they do have names, so you'll know where to look when you're fixing up your code. Recompiling is not necessary, because this new feature is activated on world load.
Also this week, mostly "off the clock", I decided to dust off an old project that needed some TLC. Scream of the Stickster: Volume II has been sitting idle for a long time, and it hasn't been updated to deal with new BYOND features in a long time. As of version 509, color matrices are supported, which means a lot of the icon work that was done in the game can now be done entirely client-side with matrices, not needing to generate new icons for the walls and weapons at all.
Here's an example of a matrix I'm using for wall colors. The wall icon is in shades of gray: black should become the final color, and white should stay white.
// r,g,b units are from 0 to 1
matrix(1,1,1, 0,0,0, -r,-g,-b, r,g,b)
This matrix gives me fine control so that I can make part of the original icon blue, and that part will become black instead of taking on a color. That'll come in handy later.
A part of my goal in resurrecting the game and moving it towards a more release-ready state is to see what other developers are going through so I'm more in tune with their needs. But also, heck, it's fun. And I've learned a lot about game design since the game was first built, so I'm thinking this is what I need to do:
1) I need an end-of-round display that will show the outcome of the round in a nice format where the map would normally be.
2) The output control needs to go. I was resistant to this for a long time, but it feels clunky now. Instead, I want to move most of its info to a HUD. Likewise I want to move the item display for scavenger hunts back to the HUD as well.
3) The HUD also needs to display the Stickster tracker, and have a way to point something like a compass towards a desired, changeable goal. It might add more interest to the game if the compass also can only handle one thing at a time.
4) The invisibility timer needs to be onscreen too, and should have a flashing effect for when time is running out.
5) I want animations for wall creation and destruction. Being able to change the color of a wall segment that gets cut off would be pretty cool too.
6) I'm thinking of losing wall opacity. Although that was a suspense feature in the original game, IMO this is just killing the visual appeal.
7) The retro text mode was cool, but screw it.
8) More should be done with maptext instead of generated icons.
Already I've made a few changes for the better, especially in map generation. I didn't fully understand way back when how important the proc call overhead could be, and as a result it was taking way too long to build the map. That's all changed for the better now.
Do you have a horror-themed game in mind that you've always wanted to make? Now's a great time to get started on one for Halloween! Remember, with the webclient you can also showcase your game outside of BYOND.