For the first week of Voxatron's release, Lexaloffle has been basically in information processing mode. Not only processing incoming bug reports and feature requests (which I do appreciate, by the way!) but also revising the systems for processing and processing the results of this process. The whole thing is one step away from a giant cluster-fuck, I'm telling you.
But one thing I've just updated which I think will clearly provide a bit of relief is to divide the Voxatron forum into sections, including a support/bug reports forum. I'll get around to actually tackling more of these soon, but at least perhaps people having similar issues can now find each other.
It also provides a mechanism for organising the levels that are being posted. There are now 3 sections just for levels, each with a very distinct function.
Finished Levels: This is for posting levels that are polished, completeable, and unlikely to be updated. (or not until a major version update in the case of WIPs).
W.I.P. / Experimental: Any experiments in gameplay, quirky levels that don't have an end, experiments in scene design, and ongoing projects that would like feedback.
Models: We haven't gone into this much yet. Basically this section is for posting models that other people can grab to use in their levels. You can post levels here too, in order to conveniently showcase the objects. Eventually this forum will also house dynamic objects like monsters when the editor supports them.
The submission page now records which category you'd like your level to be placed in. From v0.1.5 (next update) it will be possible to view levels from each category. So for example, you might only be interested in levels that you know are finished and completable.
I've also added the ability to update threads with new versions of a level instead of creating a new thread each time. Just follow the instructions on the submission page. In short, instead of starting a thread after the upload, you can get a level code to paste into your existing thread that looks like this: [#1234# ] (I put a space in before end so that the tag would display).
You can remove levels / versions from the official BBS LEVELS list by removing the [#1234# ] tag from your post(s). If there are no references to the level in a post, it won't show up in the list.
I've performed a rough sorting of existing posts into these 6 categories. There were a lot of great levels I left out of the finished levels section because they are WIP. I think it should be fine to post WIP levels in the finished section if they are notable milestones in the project.
If there are any levels you'd like to move to finished levels, feel free to make a change request in the comments. It's currently only possible to change the thread category and not the category of the level itself.
Keep in mind that this level evolved as I was adding stuff to the editor. So it's a bit messy -- not the best example to learn from. There are some weird triggering schemes that were work-arounds for missing features that now exist.
By posting this file on the BBS, it's now creative commons. So feel free to remix it, make a hard or easy version, grab any models you want or sell it on the side of the street.
Respect to oldtopman for managing to pick the map out of vox.dat with a hex editor. You can thank him for prompting me to post it a earlier than I would have otherwise.
Grab it from your Humble Voxatron Debut download page (the link you received earlier by email still works for all foreseeable updates).
New in 0.1.4:
Added: Configurable controls
Added: Mouse aiming crosshair (well, actually it's a single voxel)
Fixed: Drifting character bug
Fixed: BBS LIST incomplete / crashing on last page
Fixed: Sound switching off permanently after failing once
The controls are now in one of 3 modes:
You can only use one mode at once, and each one can be customised separately.
The default mode is keyboard, so if you like playing with ASDW+mouse or joystick, you'll need to switch it back on in the options->controls menu.
If you're wondering why the game doesn't show up in your 'My Games' page -- Humble Bundle and I don't have a unified system for handling users yet. Sorry about that! We'll sort something out before too long.
Thanks everyone who emailed me with bug reports and feedback. I'm a bit behind in responding, but I'll get to you all eventually..
The next things I'll be working on are:
- Display/Sound bugs (hopefully 0.1.4 will fix some of the no sound problems)
- Improving the BBS (search replied-to posts, sub-categories)
- A way to organise/search the BBS levels list
- Mac PPC support
- Multi-frame model editing (in preparation for character editing, and for fun)
EDIT: How to update:
Just copy or install 0.1.4 over the top of 0.1.3 and your existing player data will be picked up and still work. It should be pretty safe, but if you want to back up you can find it here:
So in between checking out some of the splendid user-made levels that are showing up, I'm working on an update that should address a couple of the most pressing problems. If you have any work-arounds for these, or additional issue I've missed please add them in a comment.
Coming in the next update (v.0.1.4):
Does no-one like cursors+ZX anymore? No? ok, so instead of trying to standardise the controls and design around that, I'll instead make them as configurable as possible. There's a new menu in OPTIONS coming in 0.1.4 which lets you assign keys, joystick movements, button presses, mouse clicks and mouse movements to the 10 different actions the player can perform:
move(x4), jump, shoot, directional shoot (x4).
:: Drifting -- character constantly runs up/jumps etc
It seems this is caused for a variety of reasons. Some systems are reading the mouse or the accelerometer as an uncalibrated joystick input, or there is a joystick device present with no physical counterpart, or one of the many keyboard keys assigned to a particular action is incorrectly registered as pressed.
The way I'm doing the new configurable keys will fix the vast majority of this. You have to explicitly enable each device as an input (keys / mouse / joystick), so if there is anything giving off ghost signals it won't affect the game.
:: BBS LEVELS crash on page 2
This was happening because the index file downloaded from the bbs was being cut short, and Voxatron wasn't handling the incomplete data well. If you've had this problem, try choosing UPDATE in the BBS LEVELS menu to download a fresh copy of the index.
There's also a bad ordering bug (page 2 onwards) that will be fixed in 0.1.4
Later on, but some possible temporary solutions:
Linux Display Problems // especially on multi-monitor setups / high resolutions.
Although it's slightly slower and less compatible in general, it's possible to run Voxatron in a resizable opengl-rendered window.
- Open ~/.lexaloffle/Voxatron/config.txt
- Change opengl_blit to 1
Note that if you resize the window, the game resolution stays the same and it is stretched to fill the window.
In config.txt you can also set the startup resolution using video_mode
Sound not Playing
If you find that the music works but not the sound, look in config.txt and set sound to 1.
It should never be set to 0 in the first place, but on some systems the sound handler seems to incorrectly report a failure on startup.
The png loader I use appears to crash on ppc systems, and I'm looking at using a replacement just for Mac builds.
Unfortunately there's no work-around for this at the moment -- I'll try to get a fix together as soon as find the time. If you have a PPC machine and are keen to help me test, please send me an email at hey @ lexaloffle.com
Voxatron's out! For the next 2 weeks you can grab the Alpha version exclusively from humblebundle.com. All future updates are available free of charge, and you can pay whatever you like for it. Also in Humble Bundle tradition you can choose how to split your payment between two kick-ass organisations: Child's Play and the Electronic Frontier Foundation.
The game consists of a voxel and map editor, along with an arcade mode and a sample world ("Adventure Mode") which shows some of the things you can do with the current editor. In fact, all of the adventure mode was made with the editor (except for the dragon boss, which is a bundle of quick hacks). I've spent most of the development effort so far making sure the editor is powerful and easy to use. After a few hours, there are already some nice custom maps springing up in the BBS, and I can't wait to see what kind of whack things will come out of it.
Where to Now?
I certainly hope you enjoy the Alpha if you decide to grab a copy, but honestly -- this is only the beginning! My general notion of Voxatron is that it should be a playground in which you can experience a variety of styles of gameplay leveraging the voxel-based format. Part of this will happen in the editor -- as I add more features, people can make and share weirder and more interesting things. And part of it will be building out the main game world.
What's the Fork?
In general, I don't think it's a good idea to keep a project in a constantly presentable/releasable state. For technical reasons, it encourages short term hacks and a reluctance to take things apart and design them cleanly. And especially from a creative position, once something is observed by other people it often seems to freeze into an unmoveable state, in the expectations of players and the mind of the designer. It's better to keep everything as fluid as possible, allowing interesting possibilities to reveal themselves and position themselves as provisional assumptions that more interesting things can emerge from.
So, where was I? The Fork! Yes -- so, given the scope of Voxatron it quickly became clear that to make it happen, I'd need to release it early. For such a user-driven game, it also makes sense to let the tools co-evolve the users. But to resolve this with the need to keep a healthy development process, I'll roughly split the development into two streams:
- The editor and engine: These will be updated regularly (at least once a month). For the next couple of weeks, I'll be working mainly just on any technical problems people are having. At the moment there are issues with drifting controls and multi-monitor setups. After that I think the most requested and pressing feature is a monster designer, and the ability to re-skin the player & pickups.
- The game world: This will remain mostly hidden until nearer completion. I'll be working with some very talented designers to build out the main game, and hopefully we can outdo whatever people are making in the editor.
In both cases, all updates will be available for free to registered users (and accessible through the Humble Bundle games page).
So How Does this Game Work?
I'll post some technical notes on Voxatron here at some stage, but in brief:
Voxatron is based on a virtual 128x128x64 display. It's a buffer of 3d video memory that is rendered out to the screen at the end of each frame, much as an old-school 2d display is. You can POKE bytes into the virtual memory, and they come out as voxels. I don't compromise on this -- even the menus are drawn into the voxel display. Hopefully one day I can get hold of a real physical 128x128x64 display and play Voxatron on it with almost no modification.
The renderer is written in software (C + SDL). Each frame, scan through the virtual video memory back to front and look for voxels that have empty neighbours. If they are exposed, I transform the corners of a cube intro screen space and scan-render the polygon. Shadows are done with a traditional shadow-map but sampled with a filter to get the soft shadows.
Fix the Controls!
ok, I realise that it's weird to make a game that looks and sounds like a homage to Robotron without dual-stick control. I'm not going to be a dick about it -- there's a lot of demand for this and I'll add a dual stick option soon. But! There's a reason for it -- there is so much jumping in the game, and it is so central to the gameplay that jumping really needs to feel natural. I don't personally miss having a separate directional control for shooting, and any variation of dual-stick+jump that I tried felt extremely clumsy. Even in levels that are very robotron-esque (the first arena), it's vital to be able to hop over rubble, bullets, and especially into crowds of monsters to swipe a pickup. I think it's worse for the game to feel like "Robotron.. in 3D! With awkward jumping!"
But as I say, although I feel the style of control is integral to the identity of the game, I'm not going to force you to use my ivory tower view of the controls. For now, you can try ASDW+mouse (even more odd), or the numpad for shooting if you have one.
Voxatron doesn't Work!
It seems a good number of players are getting burnt by a sticky key problem (player drifts in one direction), and a couple of multi-monitor and linux dependency issues. I'll do my best to resolve them quickly amongst the sleep deprived chaos that I'm experiencing right now. If you have a problem, and especially if you found a temporary work around to it, please feel free to make a quick post about it on the BBS or in the comments.
It has been a while now since the first preview trailer for Voxatron came out. At that time it quickly became apparent that I should recklessly suspend everything in my life to make this game, and apart from a couple of months clambering out of contract work and some other minordistractions, I've been hacking away on it non-stop since then. It started as a cut-down arcade game to alleviate my long-burning desire to make something set in a virtual display cube, but is now growing back into the potentially expansive adventure game it originally came from ("Felix and the Firebird"). It looks like it will grow even larger and absorb much of the design of Felix.
I don't yet have a fixed schedule for the final release as the design is still evolving. But what I do have is a very playable alpha that will be available shortly for anyone who's keen to pre-order the game. The alpha also includes a map and voxel editor with which it is possible to make almost everything you can see in the following trailer:
There's also a bunch of new screenshots up on the game's page.
Anyone who upgraded to OSX Lion and plays games made with SDL might have noticed a lot of programs crashing all over the place recently. Including mine. The problem is with SDL's fullscreen support using code that is no longer supported in Lion.
It looks like there's a new stable version release on the horizon to address this, but my solution was just to use an opengl surface instead:
SDL_SetVideoMode(0, 0, 32, SDL_FULLSCREEN | SDL_OPENGL);
And then update a single quad texture using glTexSubImage2D each frame. It seems to be reasonably fast on modern macs.
Another minor feature in these updates is the ability to get a larger window in windowed mode. You'll have to manually change the configuration file to do this though. Look in ~/Library/Application Support/Game Name/config.txt (Mac OS X) or C:\Program Files\Game Name\config.txt (Windows) and change large_window to 1. This will give you a window scaled up to 960x720 for  all games.
I love writing tools. There's always one more nifty time-saving feature to add and the constant promise of the whack things you're going to make with it. Lately I've completed a fairly intense block of tool development and am reconfiguring my brain to shift back into creative content-manufacturing mode. So now might be a good time to show a few things I've been working on. Also to confirm to RSS subscribers that the feed is actually working (first post!).
Most of my tools are quite hacked together and behind the scenes. Voxatron's sound synth designer, music mixer, BBS code for sharing and previewing levels, and my trusty sprite editor are all gangly monstrosities that noone else should be exposed to. The thing I'm most excited about is the Voxatron editor, which is starting to feel like a user-friendly piece of software. Rather than considering it a peripheral feature that hard-core users can engage with, I'm hoping to make it a central part of enjoying the game. It should be possible for an average player to plonk some monsters, items and blocks into a level and still have fun playing it. Here's an example room that took about a minute to make:
The timeline at the bottom is for choreographing monster entry (and other objects). You can place objects either in xyz space, in time, or both. Any object can alternatively be triggered by a special event such as a monster being killed or an item being collected. Don't worry if this is starting to sound like hard work -- you can just ignore it and make dinky voxel models to shoot at.
The thing on the top left is a console in which you can type commands to access many of the gui-driven operations, if you're a mouse-averse person like me. To test it out I made the little ascii racing game that you can see in the screenshot.
In other news, I modified the BBS recently to improve security. I accidentally made it way too secure -- impossible for anyone to log in and post. Sorry about that! The BBS is still a work in progress, so let me know if you notice anything weird (joseph @ lexaloffle)
None of the pickups in Voxatron are as useless or as fantastic as the sword. Choosing to use one against oncoming hordes is much harder than any of the robot's long range weapons, but at least if you die, you can go down with a bit of honour. It's also good for smashing scenery up, and comes with a two piece set of dandy armour.
The first half of this video shows the voxel editor I'm using to make models for Voxatron. Something similar will ship with the game, but with a nicer interface (at the moment it's like a cross between Blender and Emacs).