Skip to content

Commit c0c95b7

Browse files
authored
Merge pull request #71 from sam-mfb/sound-mixer
Sound mixer
2 parents e275e1a + 0e331e7 commit c0c95b7

24 files changed

+2531
-383
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes
22

3+
## 1.1.0 - 2025.10.11
4+
5+
Add new multi-channel audio system to allowing mixing sounds
6+
37
## 1.0.5 - 2025.10.09
48

59
Upgrade Audio System to use AudioWorklet

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ All of the original developers files are in the `orig` folder in this repository
1010

1111
You can try it out live at [continuumjs.com](https://continuumjs.com).
1212

13+
NB: as explained below there are a things I have tweaked from the original implementation to make the experience a little nicer on modern systems. Specifically: (1) a fixed background, rather than moving, (2) a modern collision-map for collision detections, (3) a sound mixer. If you don't like any of these (or if you find bugs in them), you can revert to the original game implementation via options in the Settings wheel. (Of course, if you find bugs, please report!) Your settings will persist over reloads.
14+
1315
## Project Origin
1416

1517
Continuum was one of my favorite games on my first computer -- a Macintosh Plus. A smooth-scrolling, physics-based "asteroids in a maze" type of game, I spent hours playing the game, trying to beat my high score, defining levels, etc. It was also one of my first, if not my actual first, experiences with a high quality shareware (ok, "beerware") game.
@@ -82,7 +84,9 @@ The other thing with sound was separating it out from state management. The orig
8284

8385
This is implemented with a Redux listener that listens for the relevant events in Redux and plays sounds accordingly. Similar to the original game, this is not synced to a frame. Sounds fire whenever the redux event occurs -- however the timing may not be exactly the same largely because I can't really control how fast Redux runs vs the original Mac hardware or how our sound service plays vis a vis the timing of the original Mac sounds. (Or to be more precise, I'm not spending the time to figure things out at that level of granularity). But I think it's pretty close regardless.
8486

85-
Interesting thing about the original game is that it didn't "mix" sounds, even though sometimes it sounds like they are. Instead, it implemented a "priority" system for determining which sounds could "override" other sounds. These priorities for certain sounds also decayed every VBS interval allowing in theory for multiple sounds of the same kind to override each other. This is all implemented in our sound service. An interesting project would be to move to a true multi-channel sound system.
87+
Interesting thing about the original game is that it didn't "mix" sounds, even though sometimes it sounds like they are. Instead, it implemented a "priority" system for determining which sounds could "override" other sounds. These priorities for certain sounds also decayed every VBS interval allowing in theory for multiple sounds of the same kind to override each other. This is all implemented in our sound service.
88+
89+
There is now an implementation available that actually mixes sounds to avoid the occasional "choppiness" of the original system. I thought a bit about what the "default" should be and decided to make the default the modern system with mixed sounds. I think it is still true to the spirit of the original game, and in fact slightly enhances the air of chaos that was there when multiple shots and explosions are going on at once. If you are a purist, you can switch back to the old system in settings.
8690

8791
### 4. File Parsing
8892

SOUND_UPDATE.md

Lines changed: 0 additions & 351 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "continuum",
3-
"version": "1.0.5",
3+
"version": "1.1.0",
44
"type": "module",
55
"description": "Recreation of the 68000 Mac game Continuum for the web",
66
"scripts": {

0 commit comments

Comments
 (0)