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.
19:13:35 ace CLOCK: 0.1 days (03:26 hours)
15:29:31 ace CLOCK: 0.1 days (01:27 hours)
17:55:02 ace TASK: highscores on beta site
17:54:56 ace CLOCK: 00:36 hours
20:42:20 ace LOG
ACE beta is now LIVE!
20:40:20 ace CLOCK: 0.2 days (04:57 hours)
19:30:50 ace TASK: setup beta accounts
19:30:49 ace TASK: enabled password selection on beta site
19:30:21 ace_beta TASK: firstname.lastname@example.org
19:30:19 ace_beta TASK: email@example.com
19:30:17 ace_beta TASK: firstname.lastname@example.org
19:29:46 ace_beta TASK: email@example.com
19:29:39 ace_beta TASK: firstname.lastname@example.org
19:29:30 ace_beta TASK: email@example.com
19:29:21 ace_beta TASK: firstname.lastname@example.org
19:29:04 ace_beta TASK: email@example.com
19:28:49 ace_beta TASK: firstname.lastname@example.org
19:27:31 ace_beta TASK: email@example.com
19:27:25 ace_beta TASK: firstname.lastname@example.org
19:27:19 ace_beta TASK: email@example.com
19:27:09 ace_beta TASK: firstname.lastname@example.org
19:27:03 ace_beta TASK: email@example.com
19:26:54 ace_beta TASK: firstname.lastname@example.org
19:26:51 ace_beta TASK: email@example.com
19:26:47 ace_beta TASK: firstname.lastname@example.org
19:26:05 ace_beta TASK: email@example.com
19:25:31 ace_beta TASK: firstname.lastname@example.org
19:25:02 ace_beta TASK: email@example.com
19:23:55 ace_beta TASK: firstname.lastname@example.org
19:23:46 ace_beta TASK: email@example.com
19:23:40 ace_beta TASK: firstname.lastname@example.org
19:23:33 ace_beta TASK: email@example.com
19:23:26 ace_beta TASK: firstname.lastname@example.org
19:23:17 ace_beta TASK: email@example.com
19:23:03 ace_beta TASK: firstname.lastname@example.org
19:22:55 ace_beta TASK: email@example.com
19:22:48 ace_beta TASK: firstname.lastname@example.org
19:22:41 ace_beta TASK: email@example.com
19:22:31 ace_beta TASK: firstname.lastname@example.org
19:22:25 ace_beta TASK: email@example.com
19:22:18 ace_beta TASK: firstname.lastname@example.org
19:22:11 ace_beta TASK: email@example.com
19:22:05 ace_beta TASK: firstname.lastname@example.org
19:21:46 ace_beta TASK: email@example.com
19:21:36 ace_beta TASK: firstname.lastname@example.org
19:21:29 ace_beta TASK: email@example.com
19:20:46 ace_beta TASK: firstname.lastname@example.org
19:20:25 ace_beta TASK: email@example.com
19:20:17 ace_beta TASK: firstname.lastname@example.org
19:20:15 ace_beta TASK: email@example.com
19:16:34 ace_beta TASK: firstname.lastname@example.org
19:16:20 ace_beta TASK: email@example.com
19:16:00 ace_beta TASK: firstname.lastname@example.org
19:14:51 ace_beta TASK: email@example.com
19:14:21 ace_beta TASK: firstname.lastname@example.org
19:14:19 ace_beta TASK: email@example.com
19:13:37 ace_beta TASK: firstname.lastname@example.org
19:13:20 ace_beta TASK: email@example.com
19:10:30 ace_beta TASK: firstname.lastname@example.org
19:10:26 ace_beta TASK: email@example.com
19:10:00 ace_beta TASK: firstname.lastname@example.org
19:09:58 ace_beta TASK: email@example.com
11:48:59 ace LOG
Working on account activation functionality on the beta site.
11:48:44 ace CLOCK: 00:48 hours
10:59:41 ace CLOCK: 0.6 days (15:02 hours)
22:46:55 ace LOG
We have done initial tests, and it looks like everything is good to go for the beta. I will postpone the actual launch until tomorrow since it's late enough that I'm bound to make mistakes if I do it now.
21:11:34 ace TASK: online login / limited access version for review
21:11:30 ace TASK: hash validate replays
19:37:17 ace LOG
Going through the model and updating the hashing. Going to run some more tests so make sure it's solid.
18:49:03 ace CLOCK: 0.5 days (11:09 hours)
17:11:14 ace TASK: fix scoreboard to allow for long accountnames
17:10:59 ace TASK: disable gui editing in public deployment
17:03:21 ace TASK: beta website feedback functionality
14:38:39 ace TASK: beta website
11:28:18 ace TASK: switch db to ufopilot.com
10:27:38 ace LOG
Random particle rotation is now an options. When this is enabled the rotation rate envelope is disabled; the particle will be fixed at the random rotation it gets when it is created.
10:23:59 ace TASK: support random particle rotation for non-keyframed rotations
10:05:48 ace TASK: assettracker support
10:02:22 ace LOG
Various changes to asset references to better support tracking as well as the public release.
08:04:16 ace LOG
Getting close now, working on asset tracker support for this app.
07:38:35 prio CLOCK: 00:05 hours
07:37:05 prio TASK: make tighter time filter in history (like retired tasks)
07:33:05 ace CLOCK: 00:34 hours
07:32:32 ace LOG
-tutorial text edits
-disabled looping warp sounds when menu is up
-disabled camera shake when menu is up
07:04:33 ace TASK: fix exclamation mark
04:35:39 ace_art TASK: explosion debris / gravel particles
04:35:33 ace_art TASK: creeps splat gore
04:35:28 ace_art TASK: go thru poofs and puffs
04:35:25 ace_art TASK: decoy texturing
04:35:22 ace_art TASK: 3d menu background polish
04:35:09 ace_art TASK: check out light ramps for skyboxes
04:35:06 ace_art TASK: figure out if ramps and emit should be used on big / medium roids
04:35:03 ace_art TASK: finalize albedo, emit, ramp on asteroids
19:53:29 ace CLOCK: 0.1 days (03:08 hours)
19:51:31 ace TASK: non-editor deployment
16:06:06 ace CLOCK: 0.1 days (02:19 hours)
15:38:42 ace LOG
Camera shake is now on by default.
15:38:06 ace TASK: blackhole loop
14:41:18 ace TASK: font fixup
13:37:23 ace TASK: disable achievements when game is over
13:15:56 ace TASK: fix default skybox selection
12:49:03 ace TASK: non-resizable window
23:55:32 ace CLOCK: 0.2 days (04:18 hours)
21:18:58 ace LOG
Shaders are now pretty much standardized, with all combinations of albedo/ramp/emit for both static and animated assets. The only thing you must have is an albedo.
Also, if you just use an albedo you have the option of using the alpha channel to control emission, which is added on top of the shaded result.
See the log from July 2nd (metal shader) for more information.
20:48:27 ace TASK: metal shader on pixelmesh
19:19:17 ace CLOCK: 0.1 days (01:13 hours)
18:44:04 ace LOG
Moved stuff from View to Settings.
18:05:54 ace LOG
Fixing time usage in all non-game controllers, so various things (like the skybox animation) will work.
17:23:05 ace CLOCK: 0.1 days (02:15 hours)
16:30:34 ace LOG
Removed use of LitEffect, no more AlphaNum.
16:27:45 ace LOG
15:45:40 ace LOG
-fixed new bug introduced with last recoil fix
15:06:01 ace TASK: fix bullet recoil bug
19:05:07 ace CLOCK: 00:26 hours
19:01:10 ace TASK: alphabetically sort constants
17:07:29 ace CLOCK: 0.1 days (02:04 hours)
17:05:46 ace LOG
Emit functions for roids are in the "staticasset" constant context (editor on F2).
17:03:23 ace TASK: emit function editor for roids
15:21:24 ace TASK: rename stationkeeper exhaust objects so vectors can be extracted
13:50:30 ace LOG
This controls how much of the texture (width and height) is used in a single particle frame. 0.25 means 1 / 4 of the texture (i.e. 4 x 4 frames).
13:34:01 ace_art TASK: decoy graphics
13:27:42 ace LOG
To test ramp lighting:
util/OVERBRIGHT: formula is texture X light X OVERBRIGHT (Quake III Arena style mod2x would be a value of 2)
util/TEST_LIGHTING: turn this on to just see the ramp
13:19:45 ace_art TASK: main engine thrust model (mainexhaust.obj)
13:19:26 ace_art TASK: albedo texture and uv map for main engine and stationkeeper exhaust models
13:19:24 ace_art TASK: exhaust.png ramp texture (used for main engine and stationkeeper exhaust models)
21:39:58 ace CLOCK: 00:30 hours
21:38:01 ace LOG
-font blending options
20:41:36 ace CLOCK: 0.1 days (03:02 hours)
19:59:35 ace TASK: store last windowed / fullscreen state?
18:38:01 ace TASK: resolution options?
17:32:14 ace CLOCK: 0.1 days (02:09 hours)
14:57:31 ace CLOCK: 00:56 hours
14:29:41 ace LOG
Switched to additive font in menus, toned down the background brightness.
14:29:11 ace LOG
-New game over menu goes to scores.
-Some tutorial related font adjustments.
14:28:44 ace TASK: game over mode, still in game
13:07:41 ace CLOCK: 01:10 hours
13:06:05 ace LOG
Much clearer anti-gravity effect, now you can see which roids it is affecting.
13:05:47 ace TASK: better antigravity effect
22:40:07 ace LOG
Fixed bad particle emitter reset (programs weren't cleared out).
22:37:00 ace LOG
Fixed bad profile storage when watching a replay.
22:23:46 ace CLOCK: 00:54 hours
22:23:31 ace LOG
Web reset of achievements.
22:23:19 ace TASK: achievement / rank reset option
22:11:47 ace LOG
Reduced creep splat opacity to 0.5.
22:09:08 ace LOG
Better emitter reset.
21:58:57 ace LOG
Implemented local achievement reset, with menus and warning.
21:58:17 ace LOG
Quantized (10) Bumper Cars and Vacuum Cleaner achievements.
21:55:12 ace LOG
Moved bullet spawn point out ship radius from ship center. This bumps the replay format.
19:40:52 ace LOG
-fixed bad colors in options menu
19:40:41 ace TASK: warp in/out effect
18:00:06 ace CLOCK: 0.1 days (01:26 hours)
17:59:18 ace LOG
-fixed font dregs
-fixed font sounds
17:52:07 ace LOG
Now using two separate fonts, due to the fact that their pixels are different for the needs of their various blending modes.
17:51:36 ace TASK: probably need multiple fonts and / or multiple parallel blend mode pipes
17:15:37 ace TASK: remove alphanum
15:56:51 ace CLOCK: 01:05 hours
15:47:50 ace TASK: points effect alpha or add fade
14:51:04 prio CLOCK: 00:53 hours
14:48:00 prionews LOG
You can now change the labels of retired tasks. This is important as it retains the retirement timestamp, whereas activating them (in order to change the label) would destroy this information.
14:46:56 prio TASK: edit labels of retired tasks
13:51:56 ace_art TASK: figure out if we should uvmap main engine and / or stationkeeper models "normally" instead of view dependant (as now)
13:51:46 ace_art TASK: stationkeeper thruster placement for new ship design (stationkeeperexhaust.obj)
15:54:12 ace CLOCK: 0.1 days (01:18 hours)
15:53:11 ace TASK: adjust bullet sizes
15:35:45 ace LOG
Particles now back on real time instead of model time, as the editor stopped working when the model was paused...
15:07:25 ace TASK: add albedo uvs to exhaust vertex format
14:47:30 ace TASK: fix vectors on new stationkeepers
22:31:55 codebase LOG
Thinking, as usual, about ye old tetrahedrons and applications thereof...
It occured to me that the only thing that the whole approach requires is a function that returns a density value for a given x, y, z grid coordinate. This doesn't strictly speaking mean that the dataset behind said function is a 3d grid of values...
It would be interesting to see what a heightfield looks like when tesselated in this manner. One would naturally map the x and z grid coordinates to that of the heightfield, and then the actual y axis height value could be mapped from world into grid space simply enough.
The function would then return "some" value above the iso surface value for y coordinates above the heightfield surface, and "some" value for y coordinates below. These values could easily be derived from the actual height value itself.
Since this tesselation approach is more "voxel-like" than a traditional heightfield tesselation, I'm betting that you could get a lot of mileage out of this cheaper (than a full 3d grid) dataset...
22:05:17 ace_art TASK: finish new ship
19:49:33 ace CLOCK: 0.1 days (01:26 hours)
19:41:34 ace LOG
Testing having Dust impulses affect certain ParticleTypes (right now the creep splats). Pending evaluation.
19:41:08 ace TASK: view side impulses (i.e. on dust) affect Particles?
19:41:05 ace TASK: model side impulses affect Particles?
19:40:47 ace LOG
Fixed particle reset on new game, more artifacts of the switch to model time, as well as the switch to pooled particle instances.
18:51:00 ace LOG
Fixed reset of camera shake on new game (is now of course based on model timestamps like most other things).
18:50:35 ace TASK: decoy shaking when angry
18:22:54 prio CLOCK: 00:35 hours
18:17:39 prio LOG
Added more and (hopefully) clearer info to the New... tab. I'm hoping people will be able to understand the difference between Tasks and Logs even though you can enter them on the same page.
18:16:42 prio TASK: think about new... tab, not the best
18:16:29 prio TASK: add benny
18:07:44 ace LOG
Changed the way the ship orients itself in regards to aiming, feels much better now.
17:47:36 ace CLOCK: 0.1 days (02:41 hours)
16:12:35 ace LOG
Camera shake now enabled on backgrounds, scaled to a fraction of the orthographic shake.
16:12:13 ace TASK: camera shake on background to match, or else get rid of it
15:41:56 ace LOG
-exhaust shader now uses albedo X ramp / membrane, use grayscale albedo to mask the membrane effect
-added obj loader check for bad (empty) objects / groups
15:41:51 ace TASK: additive albedo plus ramp for exhausts
15:41:50 ace TASK: albedo for exhausts
14:28:16 ace CLOCK: 0.1 days (02:00 hours)
12:44:26 ace LOG
Fixed lighting errors when there are no lights.
17:50:34 codebase LOG
After the weekly ACE meeting with Jonas yesterday I couldn't stop thinking about ways to generate landscapes procedurally.
Ever since working on Ground Control I guess most of the guys involved have at one point or another thought about ways to create landscapes that weren't strictly 2.5 dimensional (i.e. classic height fields).
This is looking quite promising as an alternative. It is based on this.
I'm thinking various implicit texture mapping schemes would work out quite nicely, for example using one texture per principal axis and blending based on normals. The field itself could contain hints as to what material goes where, and then one could expand to multiple materials and / or colors.
The big deal is still the data set, which is a 3d grid and can of course get quite large. I'm thinking some kind of run-length encoding in one of the axes might be in order, especially if this technique is used for landscapes that are akin to height fields in most ways, but have the addition of some steep ravines and cave systems in certain places.
22:24:49 ace CLOCK: 0.2 days (04:30 hours)
21:02:28 ace LOG
Now that the decoy is animated it is no longer available for placement in the hangar scene.
21:02:04 ace TASK: decoy stuff to own class
20:19:37 ace TASK: decoy face blending
18:59:31 ace LOG
Fixed some bad loading code in pixelmesh (had changed to core::MaxTracker() for vertex and triangle counts).
16:29:22 ace TASK: hud background edge
16:29:18 ace CLOCK: 00:56 hours
16:29:14 music TASK: backup ableton library
16:29:04 music CLOCK: 0.4 days (08:56 hours)
13:42:01 music LOG
Backing up my Ableton library, GB upon GB...
13:04:45 prio CLOCK: 0.1 days (01:53 hours)
10:18:48 music TASK: install pakbytes
22:30:09 ace CLOCK: 00:40 hours
22:29:14 ace LOG
-removed core::FixedTime instance completely, now only the font animation requires a non-model current time
-bullet rendering is somewhat fudged to not spawn emitters when model is not running
22:28:43 ace TASK: remove view time / run completely on model time?
22:07:02 ace LOG
Added a specific lightramp texture for the hangar scene (hangar_lightramp.png). This is only used for the tech-screen parts that aren't membranes, as the rest of the scene is prelit.
The motivation here is that the regular skybox-dictated lightramp is too heavily geared toward representing the lighting in the skybox, and in this case we are more in an indoors scene.
20:18:13 ace CLOCK: 00:54 hours
18:44:09 ace CLOCK: 00:03 hours
16:42:43 ace CLOCK: 0.1 days (02:03 hours)
16:37:51 ace LOG
Implemented what is stylistically the same as the original AC black hole, with the slight addition of a membrane sphere.
16:37:19 ace TASK: test original AC blackhole
13:31:45 prio CLOCK: 0.1 days (02:24 hours)
13:29:39 prionews LOG
You can now see your retired tasks in a graph representing the displayed timespan (Retired Tasks tab). I'm thinking that it might be interesting to show how rates vary here too...
13:28:11 prio TASK: graph retired tasks
23:53:34 ace CLOCK: 00:39 hours
23:53:06 ace LOG
-removed distance falloff from all shaders, light is effectively directional
-started work on replacement black hole
-removed legacy bullet mesh
23:09:08 ace CLOCK: 00:16 hours
22:24:59 ace CLOCK: 00:27 hours
22:24:18 ace TASK: test ramp based lighting instead of half lambert
22:24:13 ace LOG
Lighting is now completely ramp based.
There is a corresponding ramp texture for each skybox (currently: cataclysm_lightramp.png and solarfields_lightramp.png). The classic stuff like cel shading and of course rim lighting is now possible.
You can view the ramp lighting without other textures by setting util/TEST_LIGHTING to true.
Since vanilla texture modulation is still teh suxxor there is an overbright option (util/OVERBRIGHT). Vanilla modulation is a value of 1, for example Quake III Arena / Ground Control II is a value of 2. There is of course always the risk of flattening things completely with this, but if the ramp doesn't go all the way to white I'm sure you can get interesting stuff going with this.
As mentioned, there is no longer a "shadow color" associated with each skybox; the ramp replaces this.
21:43:32 ace LOG
Switched to texture based (ramp) lighting. This removes shadow color from skybox.
21:06:37 ace CLOCK: 00:07 hours
15:29:17 ace CLOCK: 0.1 days (01:28 hours)
14:01:59 ace LOG
-cleaned up shaders setup to match actual usage
13:11:05 ace CLOCK: 00:39 hours
12:16:15 ace CLOCK: 00:19 hours
22:14:49 ace CLOCK: 00:24 hours
22:10:23 ace LOG
Tested light from ortho view point, but prefer it from the ship as this makes the scene slightly more dynamic.
22:10:03 ace TASK: test light from viewpoint instead of ship light
21:17:33 ace CLOCK: 00:15 hours
19:30:13 ace CLOCK: 0.1 days (01:37 hours)
19:28:46 ace LOG
Fixed bad hud rendering when in replay (was doing tutorial hud).
19:13:46 ace LOG
Lots of experimentation with alpha blended particles...
Implemented UV adjustment for edges of particle frames...
19:09:18 ace TASK: blend modes for particles
17:06:16 ace CLOCK: 00:42 hours
17:04:59 ace LOG
Particles now have a dedicated mesh, also shared by Lasers which are pretty much in the same boat as particles conceptually. The legacy sprites texture is now also dedicated to Particles.
This breaks black holes for the time being, but this will be changed soon anyway.
Adjusted the powerup enable levels, this bumps the replay format to 33.
16:16:05 ace CLOCK: 0.1 days (01:51 hours)
15:42:51 ace TASK: try fixed number of Puff instances to save on dynamic allocation
14:12:39 ace CLOCK: 0.1 days (02:57 hours)
14:12:26 ace TASK: fix program counter / delay stuff
13:19:21 ace LOG
More particle system changes:
-Added friction to ParticleType. This is effectively a "brake" that allows you to have initially fast moving particles slow down over time (i.e. air friction). The deceleration is proportionate to the current speed. Negative values allow for an acceleration over time instead, again proportionate to the current speed.
13:03:34 ace LOG
Updates to the particle system as follows:
-The particle system now has more understandable names (EmitterType, ParticleType).
-Items for a given EmitterType to spawn are now called EmitterPrograms. These point as before to a ParticleType to spawn a Particle with. In addition to the legacy delay value you can now set the number of Particle instances spawned by when each EmitterProgram executes. This is only really useful when you have set a non-zero speed range on the ParticleTypes you are spawning, otherwise you just get non-moving Particle instances drawn on top of each other, making them brighter and also wasting fill rate / Particle instances.
-ParticleType now has a speed range value, a non-zero value meaning that Particles are spawned with random x,y speeds within this range. This, together with EmitterProgram count, allows you to create your typical randomized moving particles. Examples: normal and bounce asteroid explosion bullets.
-ParticleType now also has a keyable rotation rate, which allows for fine tuned control of Particle rotation over time. Zero keys is the legacy behaviour (no rotation). If there are keys in this envelope, Particles now also use a starting rotation based on the first key X current time. Examples: normal and bounce asteroid explosion bullets.
12:36:31 ace TASK: moving particles with editor
12:03:59 ace TASK: keyable rotation angle for PuffType
16:39:03 music LOG
Ok, so I obsessed some more... now phadter ending...
16:23:03 music TASK: mix and master "I Hope You Dance"
16:22:51 music CLOCK: 0.1 days (03:33 hours)
16:04:36 music LOG
In crazy obsessive detail arrangement mode...
13:53:16 music LOG
Comped johno bvs... didn't know I was a cowboy... :)
13:33:13 music LOG
Misc arrangement stuff...
12:49:47 music LOG
Comped johno takes...
11:40:29 music CLOCK: 00:27 hours
11:40:18 music LOG
Comped end (Mad) of "I Hope You Dance"
11:14:05 music LOG
Comped pre-chorus, choruses (Mad) of "I Hope You Dance"...
09:14:41 music LOG
Comped first verse (Mad) of "I Hope You Dance"...
09:14:11 music CLOCK: 0.1 days (02:00 hours)
23:16:45 ace CLOCK: 00:27 hours
23:16:34 ace LOG
Working on extending the particle system with speeds on Puffs (randomized from type), as well as instance counts for each EmitterProgram event. Looks quite promising, but really ups the object counts. Perhaps reuse instances instead of dynamic allocation?
21:30:03 music TASK: record mad on "I Hope You Dance"
21:29:40 music CLOCK: 0.1 days (01:16 hours)
18:43:56 ace CLOCK: 00:57 hours
16:31:19 music CLOCK: 0.1 days (03:15 hours)
16:31:01 music TASK: record johno on "I Hope You Dance"
16:30:59 music TASK: record guitars on "I Hope You Dance"
23:23:49 ace CLOCK: 00:50 hours
23:21:48 ace LOG
Refactored some class names in particle system in preparation for changes.
23:09:20 ace_art TASK: ship redesign: concept
22:23:16 ace CLOCK: 0.1 days (02:17 hours)
22:21:06 ace LOG
It's funny how a small change late in the game can make all the difference.
Creep separation applies to creeps of both types (slow and fast), and was originally intended to keep them from bunching up, as this made it hard to see how many you were facing in a group.
Slow creeps now bounce of every other type, resulting in them generally being pushed around and also very antagonistic and pushy-shovey against one another. Fast creeps power through groups of slow creeps, sending them flying every which way. Both types are still scattered by all asteroid types.
One great result is that it simply looks funnier. It looks like the creeps are fighting amongst themselves to get at the player.
Additionally it added to the solidity of whole experience, and I think that shooting creeps feels like a bigger payoff now.
This of course changes the replay format; needs to be tested again.
22:15:13 ace TASK: creep separation
21:04:18 ace LOG
Fixed stationkeeper thruster memory leak.
20:30:46 ace TASK: achievement icon fade
20:02:32 prio CLOCK: 00:49 hours
19:59:57 prio TASK: be able to view the specific punch clock sessions per label, perhaps a button for the count?
18:09:18 ace CLOCK: 00:30 hours
18:07:58 ace TASK: remove bullet models completely, significant draw call savings
17:08:01 ace CLOCK: 00:00 hours
17:03:23 ace CLOCK: 00:16 hours
17:00:39 ace LOG
Finally fixed the depth sorting issues so that powerups are behind everything else.
17:00:18 ace TASK: depth solution, also use for powerups and similar
16:31:14 ace CLOCK: 00:22 hours
16:09:00 ace LOG
Removed legacy farplane solution.
15:58:20 ace CLOCK: 01:06 hours
15:48:48 ace LOG
Refactored main engine and stationkeeper exhaust, along with relevant textures and HLSL effects, to be contained in a single object.
15:24:56 ace LOG
Animating opacity works much better, using same shader for main engine exhaust as well.
15:24:38 ace TASK: try opacity for stationkeepers instead of scaling
14:49:50 ace CLOCK: 00:15 hours
14:20:55 ace CLOCK: 00:27 hours
14:14:11 ace LOG
Stationkeeper meshes implemented, but due to the need for arbitrary placement scaling won't really work. Going to try a new shader that uses opacity instead.
14:12:59 ace TASK: stationkeeper meshes, scaling / opacity, vectors from names
13:53:05 prio CLOCK: 00:02 hours
13:52:51 prio LOG
Fixed bug in New... tab when user had no previous logs submitted.
13:50:15 ace CLOCK: 0.1 days (01:44 hours)
13:38:30 prio LOG
Better display of punch clock total time and current session.
13:38:10 prio CLOCK: 00:20 hours
16:23:52 ace LOG
Fun math involved to figure out which stationkeeper should fire for a given user-desired acceleration... :)
Need to do tests with mesh placement / scaling / opacity.
16:21:13 ace TASK: stationkeep exhaust
14:52:47 ace CLOCK: 0.1 days (01:28 hours)
12:30:15 johno.se TASK: interleave retired tasks with log posts (in time order)
10:46:34 prio CLOCK: 0.1 days (02:24 hours)
08:05:11 prio CLOCK: 0.1 days (02:03 hours)
08:03:19 prio TASK: counts for logs
08:03:13 prio TASK: factor out commonality
08:03:04 prio TASK: easyread log option (chronological with minimal cruft)
07:56:14 prionews LOG
I have implemented a new History view that aggregates retired tasks and submitted logs into a single feed. You have the standard label and time filtering options, as well as choosing ascending or descending (time) order for easier reading.
00:20:46 johno.se LOG
Published selected labels via the new sneak peek section. Will this take over the manual news post stuff? It certainly is simpler to just hack some text straight into the browser...
00:18:31 johno.se CLOCK: 00:03 hours
23:56:38 johno.se TASK: sneak peek on johno.se
23:56:30 johno.se CLOCK: 0.1 days (01:14 hours)
23:56:28 prio CLOCK: 00:26 hours
22:32:52 prio CLOCK: 00:02 hours
22:32:43 prio LOG
Submitting a new log now takes you to the logs tab, so you can see your post.
22:30:22 prio LOG
Displaying currently punched in labels (working on) in public stats.
22:28:13 prio CLOCK: 00:13 hours
22:26:41 ace CLOCK: 00:00 hours
22:21:34 prionews LOG
You now see which labels that you are currently "punched into" displayed in the Punch Clock tab.
This way it is easier to see if you are still punched into something when you log out.
22:15:01 prio CLOCK: 00:01 hours
22:13:45 prio CLOCK: 00:07 hours
22:11:43 prio TASK: show punched in label names in punch clock tab
22:11:30 ace CLOCK: 00:00 hours
22:06:14 prio LOG
Added total work sessions per user to public stats.
22:05:12 prio CLOCK: 00:00 hours
21:53:25 prio CLOCK: 00:14 hours
21:46:10 prionews LOG
I have removed timing functionality from Logs and instead implemented that stuff in the new Punch Clock.
The intent is to be able to log the amount of time spent on a given label; punch in when you start working and punch out again when you stop.
Every single 'work session' is logged, and I expect to generate interesting statistics from this data.
21:09:27 prio CLOCK: 0.1 days (01:28 hours)
21:07:20 prio TASK: subusers shouldnt be able to access punch clock
21:07:16 prio TASK: remove timing from logs
19:52:21 prio LOG
Implemented punch clock.
19:40:36 prio TASK: separate logs from timer
15:51:35 prio TASK: model as object, pass as replacement to db connection
15:51:23 prio LOG
Refactored model functions into Model class.
15:51:23 prio CLOCK: 00:01 hours
14:22:06 ace_art TASK: hangar first pass albedo / uv map
14:17:54 prio LOG
Refactored idle into several scripts, i.e. distinct controllers.
14:17:54 prio CLOCK: 00:00 hours
18:15:58 ace TASK: specific achievement disable for tutorials and replays
17:30:24 ace TASK: settings local, achievements remote
16:03:56 ace LOG
Lots of shifts back and forth in what to store where, but I think I've come to a good tradeoff (not yet implemented):
for web backend:
-Replays are stored online.
-Achievements are stored per account online.
-All options / settings are stored locally.
The big reason for this is that the system can't know the current account until authentication is complete, and this means that things like music and skybox will shift on authentication.
Local storage is simpler and serves our needs better.
16:03:56 ace CLOCK: 00:02 hours
15:59:04 ace TASK: web::Profile persistence
21:08:20 ace TASK: web::Profile implementation
18:45:01 ace TASK: IProfile for settings and achievements
18:09:50 ace TASK: ingame achievement icons
15:37:04 ace TASK: text alignment options
15:19:50 ace TASK: achievement icons
12:56:20 ace LOG
Most of them are more like "ranks", in that they are a score within the scope of the given achievement.
Thinking that perhaps this should be community-accessible information, so you can compare your "achievement score" with others.
In that case will probably need some kind of score per rank per achievement (i.e. invincible is worth a lot more than daredevil), and then sum all of that to a total achievement score per account.
12:56:20 ace CLOCK: 00:01 hours
12:52:33 ace TASK: implement achievements
16:42:59 ace TASK: optimize hangar mesh loading
14:30:49 ace TASK: fix end of level warp out
17:13:46 ace TASK: tutorial for controls, weapons, powerups
17:13:41 ace LOG
-first pass tutorial
-end of level warp out is broken (is currently instantaneous after powerup popping)
17:13:41 ace CLOCK: 00:00 hours
22:58:12 ace LOG
Some progress on tutorial, making it as simple as possible.
It runs in the Model, augmenting some aspects of the rules.
End of level powerup pop and warp out needs to be re-implemented.
22:58:12 ace CLOCK: 00:00 hours
18:30:13 ace TASK: remove model::ILicense
18:17:30 ace TASK: replay upload status
17:50:16 ace TASK: scoreboard sort by date, score, level, elapsed, both asc and desc
16:13:27 ace TASK: scoreboard status (getting scores...)
14:14:38 ace TASK: evaluate currrent refactoring
23:17:37 ace LOG
-hash check now implemented for online replays
-fixed order dependent update issues that made online replays fail (by fixing the local case)
-hashing is off, replay version bumped to 29
23:17:37 ace CLOCK: 00:00 hours
23:17:05 ace TASK: backend::Replay to namespace? has no state!
22:34:39 ace TASK: bad behaviour in online replays, implement hashing to check
22:34:36 ace TASK: run ace_webtest again with local replays
00:03:08 ace TASK: first level of powerup type enable should spawn that type first
19:00:06 ace LOG
-powerups now get presented / enabled in a specific order, depending on the current level
-powerup enablers in hud, so you can see what is active
-this bumps the replay version to 27
19:00:06 ace CLOCK: 00:01 hours
18:57:50 ace TASK: start of game powerup presentation order
18:57:06 ace TASK: powerup enable hud
17:48:04 ace TASK: think about achievements
17:47:23 ace TASK: remove powerup enable flags?
17:47:17 ace TASK: opwerup randomness
17:47:10 ace LOG
-better powerup order randomization
-removed powerup enable bits
17:47:10 ace CLOCK: 00:00 hours
17:22:32 ace TASK: something else when roids get caught inside a deflector
17:22:23 ace LOG
-powerups now don't collide with dead / unspawned ship
-new deflector "expunge" behavious; roids and creeps get violently pushed out of deflectors if deflectors spawn with them inside radius
-all roids now share braking behaviour; max speed depends on current level and type (vreels go faster), brake factor depends on type (creeps and vreels brake harder to emulate legacy speed normalization)
17:22:23 ace CLOCK: 00:00 hours