In this section you can check out what I'm currently working in, practically in real time.
If some of this seems cryptic it's because the logs seen here come directly from my personal productivity tool prio, and are really just "notes to self".
Nevertheless, if you are interested in what I'm currently working on, this space will certainly be updated FAR more often than the news section.
14:02:22 sabk CLOCK: 00:56 hours
13:25:10 sabk LOG
Now supporting triple the height in the tilepage (3 x 480). There are hardcoded limits to how many tiles are supported (currently 2048) so let me know if you need more.
TileTool, AnimTool and LogicTool should now all support switching between pages. It is possible to animate across page boundaries.
AnimTool now also has a button for resetting / clearing all animations. There is a warning if you press the button, so it should be hard to destroy animations by accident. If you do there is always SVN (animations are stored in view.txt).
13:22:46 sabk TASK: bigger tilepage
01:17:32 sabk CLOCK: 0.2 days (03:36 hours)
21:30:34 ace CLOCK: 0.5 days (11:07 hours)
18:02:22 ace LOG
Yepp, spawning the Decoy (like the Deflector) at the location of the ship makes the Decoy more useful with "shootable powerups" enabled.
17:53:08 ace LOG
Here's a fun options patch:
Make sure impulses and weapon recoil are off, and shootable powerups are on. This allows you to remain stationary at the place where you spawn and play the game like a "stationary defence" game, while still being able to get powerups.
This works because neither explosions or weapons fire will move you around. Additionally, Deflectors now spawn at the ship location so that they are still useful when you shoot them.
The only thing that doesn't work very well are Decoys, since if such a powerup gets spawned in the middle of a cluster of roids / creeps you tend to shoot it and spawn the Decoy, which is then immediately killed by a nearby roid.
I will experiment with having them spawn at the ship location instead...
17:47:52 ace LOG
Have now implemented all the gameplay options that I had in mind.
17:47:26 ace TASK: option: shootable powerups
17:09:56 ace TASK: shift to have stationkeepers thrust as much as main engine?
17:09:23 ace LOG
Experimenting with particles being pushed by deflectors, but since most of them have friction going on this doesn't end up looking like anything special.
15:57:34 ace TASK: optimize particle allocation
12:37:46 ace LOG
The option for random vs sequential powerup spawning is in there and works well, for all you control freaks out there.
12:35:55 ace TASK: option: random vs ordered powerups
11:35:12 ace LOG
Did some tests with options for disabling specific powerups, but I think this is bad thing.
With the existing code, disabling all but a single powerup will result in over-saturation of a single powerup type. With only shield this quickly becomes a dominating strategy.
Since you now have the option of being able to select your current ammunition / weapon explicitly, the problem with being forced to use lasers or bounces is already solved. This was one of the primary factors in motivating powerup enable/disable options.
Another request was determinism, so going to experiment with allowing for non-random powerups, i.e. spawned in a specific order.
16:25:32 ace CLOCK: 0.1 days (03:04 hours)
14:16:18 ace TASK: keyboard control
08:16:25 ace CLOCK: 00:18 hours
07:53:37 ace CLOCK: 0.1 days (02:30 hours)
07:51:43 ace TASK: option: bounce asteroids on/off
07:51:41 ace TASK: option: explosive asteroids on/off
07:21:11 ace TASK: option: weapon recoil
07:12:36 ace TASK: option: lasers / bounces used by bombs
06:50:37 ace LOG
Options patches are currently binary (bad), so each time a new options is implemented the disk format will be wrong.
Make sure you delete
This will be fixed soon.
06:49:11 ace TASK: option: autoselect best weapon
05:36:04 ace LOG
Moved all weapons code from Ship to Weaponry. This due to the complexity of explicit weapon selection vs automatic selection, based on options.
What I want is for the current weapon notifications to work the same regardless, and this means careful control of the current weapon state.
21:30:01 ace CLOCK: 00:56 hours
20:15:11 ace LOG
The user now must select the "options patch" to use before starting a game. This is of course stored in the options (the latest selection).
From this selection you can go back and forth between the gameplay options editing screen. This is the same screen as accessed from the options menu, but exiting it will in this case lead back to the pre-game selection screen.
20:14:04 ace TASK: options patch selection, like a big drop list?
20:13:48 ace TASK: play -> patch select -> game
18:04:14 ace CLOCK: 0.1 days (01:18 hours)
18:03:51 ace LOG
Current options patch is now the same as the selected score filter. The joys of minimizing state... :D
16:59:28 ace TASK: local::Backend -> local::Scores
15:43:00 ace CLOCK: 00:23 hours
15:29:52 ace TASK: test replays with options patches
14:43:55 ace CLOCK: 00:48 hours
23:06:55 ace CLOCK: 0.1 days (02:49 hours)
22:35:03 ace TASK: replace difficulty with options patches
19:07:27 ace CLOCK: 0.3 days (06:15 hours)
18:45:31 ace LOG
Working on the new options patches. These come from the backend implementation.
11:03:06 ace CLOCK: 00:09 hours
19:18:56 ace LOG
Working on new options, specifically weapon selection.
This will be controlled by an option in the future; if on, you must manually select weapons other than normal bullets, and running out of any type of ammo will only switch back to normal.
This means that the game will never select anything that is ammo limited, allowing you to conserve or even avoid using certain ammo types.
19:17:41 ace TASK: weapon selection 123
15:04:37 ace TASK: update assettracker, no more pixelmesh usage
18:59:17 ace TASK: bombs on press, not release
01:00:00 ace CLOCK: 0.6 days (14:38 hours)
11:33:02 ace TASK: backdrop farplane uv layout and mesh
10:15:38 ace CLOCK: 00:53 hours
10:08:12 ace LOG
Current web backend now runs on a separate table and scripts than the beta.
10:07:08 ace LOG
Whether or not a backend implementation (backend::IStorage) stores replays as part of a score or not is now up to the implementation itself. Listed scores (backend::IScoreboard) denote whether or not they have replay bytes / are viewable or not.
This adds a lot of flexibility in deciding exactly what replays are stored, if any.
10:04:29 ace TASK: support for scores without replay bytes
09:30:56 ace LOG
Fixed hash integrity for shockwave.
01:00:00 ace CLOCK: 0.1 days (02:49 hours)
23:54:27 ace LOG
Can probably get away with z-buffered backdrops, you just have to think a lot more... :)
21:57:34 ace CLOCK: 00:28 hours
18:36:35 ace LOG
Doing 3d background tests.
12:50:25 ace TASK: ps2.0 animation fallback
19:39:50 ace TASK: shockwave sound
17:41:35 ace TASK: dying clears all roids -> goes to next level?
17:40:39 ace LOG
Shockwave implemented, changes the game a bit.
Basically if you crash, you die (as before), but a giant shockwave blasts everything in the entire level (an expanding sphere of energy).
This shockwave doesn't cause the roids it hits to spawn "chunks" as this tends to choke the game too much. Instead they are just destroyed. All bullets caught in the wave are changed to T_SHIP_NORMAL so that they will exit the level and shut up (this is mainly for when the game ends).
An interesting emergent factor of this is that you can get quite a substantial multiplier as a result of the quickly expanding shockwave. Initially deemed a bug, I have kept this in, as it compensates somewhat for the loss / reset of all all multipliers when you lose a life.
This is something that certain beta testers have commented on; you can't really compete for a highscore if you lose all of your insane multiplier, so some people didn't deem it worthwhile to keep playing in this case.
All in all a nice graphical payoff, the stress level is taken down quite a bit (as you effectively complete the level by dying), and the bonus multiplier tops it off as a very good feature.
15:31:02 ace LOG
Increased particle.png to 512x512 pixels for better resolution. Original asset just scaled with nearest neighbor sampling, so might want to retouch it a bit.
18:42:57 ace CLOCK: 00:12 hours
17:09:55 ace TASK: shrink points as well as fade them (Geometry Wars)
16:53:39 ace TASK: move lighting callback (log) from view
15:51:18 ace TASK: pause menu, not options
15:28:53 ace TASK: blendmesh outline support
12:18:05 ace CLOCK: 01:06 hours
12:18:00 ace TASK: switch to blendmesh
11:16:04 ace TASK: blendmesh tests
11:15:58 ace LOG
This is a new take on vertex animation that uses multiple vertex streams instead of texture-encoded data. This compiles on vs2.0, lowering the min spec of the game, and will hopefully also work on ATI hardware.
15:16:30 ace CLOCK: 00:58 hours
17:54:50 ace CLOCK: 0.2 days (05:57 hours)
16:19:32 ace LOG
Expanded the normals in PixelMesh 2.0 to 242. I can't seem to figure out how to count the number of constants used, but in any case it's hard to find a good subdivision that is evenly spaced.
The current one is an icosahedron in Wings 3d with a couple of subdivision passes on it.
Going to keep both PixelMesh 1.0 and PixelMesh 2.0 around so the artist can make a choice as to which one looks best for the model in question.
12:26:59 ace TASK: pixelmesh 2.0 optimization