Hey all
I'm currently working on Voxatron 0.2.10 which will serve as a kind of beta for v0.3, introducing custom players and various supporting functionality. This will bring the engine quite close to being feature-complete minus lua scripting. I've been mainly occupied by engine / voxde stuff for around 2 years now, so this is a very exciting prospect!
I was hoping to do a more intermediate update, but it looks like this is going to be an all or nothing situation and I've decided to make the jump and cram everything needed in there. So while I get this together, let me give you a quick preview in case it changes your approach to any work-in-progress levels.
Custom Players and Weapons
Apart from finally being able to define custom-sized players, you'll also be able to add emitters, animations and modifier control similar to monster definitions. Modifiers can be activated by legacy conditions (shooting-left) or by buttons (host.button.shoot). To support this, there will also be some provisional way to collect pickups in an inventory that can activate modifiers that express the pickup. For example, collecting a 'blobgun' pickup might auto-wield and replace a 'fireaxe' because they are in the same wield-group, making it an arcade-style pickup. (Later it will be possible to collect multiple weapons and choose between then rpg-style).
Custom Doors
Instead of placing separate door items and props, doors will be definable as a single package of components similar to monster definitions. The components can also be triggered by modifiers as usual. For example, a door might open automatically when a player is close, activating a different door animation and mode of interaction. They also have custom hitbox attributes the same way as regular actors, so it's possible to make a very long invisible door that covers a wide exit area.
An extra non-vital feature I quite like is that it's also possible to define door 'depth' -- the size of a pocket of abstract space the player disappears into before entering the next room. This will be useful later for multiplayer levels where all players must enter the pocket to enter the neighbouring room.
State Saving
Custom players and doors add extra data that must be saved to disk, so it's also a good time to finish of the world permanence system. 0.2.10 will allow 2 ways to save room states: either the whole room is in 'elephant mode', where every detail is remembered (including holes in walls and monster health and positions etc), or each separate object can be marked as 'die once' and/or 'collect once'. In combination with the new doors, it should be possible to replace all of the bollocks 'blue door', and 'use once' malarkey from earlier versions.
Audio Triggers
The last piece of functionality that I think is holding monsters back is the ability to customize sound for their behaviours. I won't attempt to add a whole synth designer in this update (that will come later), but I've added the ability to at least select sounds from the built-in library and trigger them (or music) along with a modifier.
Custom HUD
This isn't really vital to get 0.2.10 going, but it's nice to be able to change or turn the inventory off. Especially if you'd like to do a story scene or an adventure-based level where the focus is on exploration and item discovery rather than scores or weapons.
omigosh! rad this is gonna blow my mind ... again. I can make my dream level !
i am really also interested in less violent options, for example trapping (netgun?) or even imagine a street fighter clone! just heaps of punches/ kicks etc wearing down a more power gage type health bar. holy shit yyeah.
and music/sound fx triggering is such a sweet option.
A netgun would be very neat indeed!
I'd like to experiment with a freeze gun, allowing players to toss the enemies afterwords. That or a wario-style check where the player can dash and collide into their enemies
I could put a couple of transparent colours for 0.2.10 but need to figure out what I'm doing with the palette before adding more. Would a few levels of white be useful?
I think the pallete could be better if one colour when selected and then pressed a specific button opened a window with diferent tones of that color, if that was possible to add in voxatron it would probably fix the problem of the size of the pallete and give some tones of the same color to play with, a few tones of white would be really interesting but I think a light blue would give a better aspect of glass and ice.
also, I think the update to 0.2.10 would fix the reaper's dungeon, I thank you for doing so, I hope my bug reports are being useful.
Alright, I'll add a few colours that can be used for common transparent materials. It's an old-school 8-bit palette, so I need to be frugal until I'm sure about which combinations of colours & properties/transparency are needed!
I'm using Reaper's Dungeon to do legacy-support testing as it uses a good variety of modifier / object property combinations. So it should be supported properly again in 0.2.10 (along with other recent BBS levels that have had issues). Don't hold back on even small bug reports -- they are all super-useful!
Another quick dev update:
Here's the last piece of the engine that's going in for 0.2.10 -- the trigger system is now unified between activation controllers and room object activation. Each trigger has 5 parts that can be used to express various logical statements. Each statement allows you to pick out a group of actors (e.g. all monsters, or a particular actor), an event expression (e.g. distance < n) and a qualifier (trigger if the expression is true for ALL/SOME/NONE of the actors).
Here's a monster that gets triggered when any player is within 20 voxels:
The new buttons at the bottom control warping in, and if the object can be killed or collected only once.
Here's a demo showing many 4x4x4 monsters reacting differently to the player and the monster:
I see some new icons in the image of the monster, what are those icons indicating?
Also, is there going to be a new workflow on defining player sprites? Will it be more like defining a monster?
The icons in order are the buttons I mentioned, from left:
- Actor warps in rather than blinking in instantly
- Actor can only be killed once (after which it never respawns)
- Actor can only be collected once (ditto)
Only the second one is really new, but in conjunction with new triggers that test for object existence it's a bit easier to set up persistent worlds that don't keep resetting all over the place.
The new workflow for designing players is basically the same as monsters. The whole "_char" thing will be scrapped (woo!) I've left in some legacy support though, so it's still possible to make a simple 0.1-style player but just add the standard animations (shootings, wearing armour, using sword).
Another test; this time for actor-actor visibility:
It's only possible to set up a very rough lantern light approximation because all of the scenery needs to be made out of actors. Props can be activated by visibility, but only once (they get burnt into the map as usual).
ha cool icons for warp ins! and all this new stuff. primo! Im digging into the level ive been putting off for so long.
I found out about the bug of the nomon trigger.
it seems that it doesn work on pickups (when a pickup count as a monster, so it could act as two diffrent switches) or when the count as a monsters is on a modifier, (like when a monster is just a dead body but still an actor, not counting as a monster)
I have a question, is there a way to make a modifier that starts when hurt, after a while the effect wears off and then it can only be activated again when hurt another time?
[Please log in to post a comment]