-
Day20
This is the project code as of the twentieth day of Devember. Today we add in a proper scoring mechanism, a toggleable debug mode, and a mechanism to show a brief floating text to show you when points are achieved.
-
Day19
This is the project code as of the end of the nineteenth day of Devember. We now communicate match information from the bottle back to the scene, which can use that information to calculate and generate a score. Currently the scoring mechanism needs more fleshing out; it just gives a flat 200 points per virus per match.
-
Day18
This is the project code as of the eighteenth day of Devember. Input is cleaner, and the capsules drop on their own now. Some more debugging code is needed to slow or stop the speed of drops entirely, so that we can set up and test for scoring and combos and stuff. Also, the current code for the down key drops the capsule right to the bottom, but it would be nice if this just sped up the drop speed, so that you can advance forward without going all the way to the bottom in one hit. Perhaps by temporarily forcing the drop speed to be a particular (small) value while the key is pressed?
-
Day17
This is the project code as of the seventeenth day of Devember. We're now ab out 90% of the way to a playable game. There is a capsule that appears in the neck of the bottle. You can drop it down and rotate it. When it can no longer drop, matches happen (if any) followed by cascades (if any), followed by a new capsule appearing at the top. Game over is detected by the inability of the capsule to drop into the bottle at all because the neck is blocked. This still needs some work; the input is all wonky and there is no constant drop of the capsule; the only drops that happen are when the user specifically requests it. Still, progress!
-
Day16
This is the project code as of the end of the sixteenth day of Devember. There is now a Capsule entity which wraps two Segment entities and can modify their colors and types based on its own type and orientation. The Capsule class maintains its position in the bottle as its map position, and will update the stage position when this is changed; changing the stage position leaves the map position alone. The bottle now provides an API to translate a point in bottle content space to stage spage, which the capsule uses to set its stage position based on a bottle position. We're now poised to add user interactivity. Oh yeah, and a slight engine change; since I had so many things counting update ticks on their own, I went ahead and put that into the engine, so it just happens now.
-
engine-v0.1.5
This is the Official engine version 0.1.5. o The Stage now keeps track of the tick count and passes it to the update method of Scene. There is a new Stage.tick property which tells you what the current tick is. The tick counts the number of frame updates, which run at a set interval (30 fps unless you change the code). o The Scene now takes a tick count and passes it to the update method of Actor o The Actor now takes a tick count and does nothing with it
-
Day15
This is the project code as of the end of the fifteenth day of Devember. The virus generation process is now pushed out to the game scene, so that the viruses can be generated incrementally and displayed as they're building up. In addition, the bottle counts the number of viruses left, and tells the game scene when it reaches 0 so that the next level can start, which increases the level and goes again. Also the debugging logic has been fortified so that modifying the level also modifies the virus count, which seems an important consideration now. Except for scoring and user capsule movement, we're pretty much there now.
-
Day14
This is the project code as of the end of the fourteenth day of Devember. We now populate the virus bottle with a set of viruses that does not immediately cause matches to appear. This does not fully match how this was done on the NES, but probably good enough for now? I'll have to see how I feel about it.
-
engine-v0.1.4
This is the Official engine version 0.1.4 o enhance the rendering API to allow for stroked shapes o enhance the polygon API to allow for more complex polygons
-
Day13
This is the project code as of the end of the thirteenth day of Devember. The level editing code is tweaked a little bit to allow segment selection via the mouse, and the start of virus population at the start of a level is in. It is currently crude and incorrect, but it generates the correct number of viruses in more or less the correct colors.
-
engine-v0.1.3
This is the Official engine version 0.1.3 o Add properties to allow access to actor width and height
-
Day12
This is the project code as of the end of the twelfth day of Devember This is just a simple change which more closely mimics how the game would actually operate in play; instead of a constant drop happening, instead a drop would only be triggered after a match was found, and a match would be found only after the player placed a capsule in the bottle. The current drop mechanic in the bottle is for the cascade action, because it always runs at a set speed. This is not the code that would be used to control the drop of the player capsule in the bottle.
-
Day11
This is the project code as of the end of the eleventh day of Devember. Here some small engine tweaks were made, and the Rx protoype now allows for pieces to drop and horizontal and vertical matches to be made, including cascades. More work is probably in order to tune this up a bit and make it less ugly.
-
engine-v0.1.2
This is the Official engine version 0.1.2 o Include key codes for number keys o Make all methods in all classes that don't return a value explicitely say that they return void.
-
engine-v0.1.1
This is the Official engine version 0.1.1. o The Scene and Stage class now use KeyboardEvent and MouseEvent instead of Event o The mouse input handlers now return a boolean that indicates if default handling should be disabled or not o The Point class can return an array version of itself and set itself from such an array o The Renderer interface specifies an interface for more easily rendering an arbitrary polygon, and CanvasRenderer implements it.
-
Day10
This is the project code as of the end of the Tenth day of Devember. This includes some object refactoring and engine changes. In particular the engine now supports polygon rendering by way of an array of array of numbers. The Point class can now return such an array instance of itself.
-
Day9
This is the project code as of the event of the Ninth day of Devember. This is just a re-working of yesterday's code to make it more object oriented, but it does include the notion of a virus (three of them, in fact) as a segment type.
-
Day8
This is the project code as of the end of the Eighty day od Devember. Since the official port of the engine is complete, it's time to embark on some actual prototyping of some games to see how the workflow changes affect development (better or worse?) The first thing I'm going to prototype is some of the mechanics for a Dr. Mario puzzle game clone. I'm undecided yet if this will become a fully functional prototype or if I will split away later in the month to try prototyping a different sort of game, just to get more experience with different kinds of prototypes.
-
engine-v0.1.0
This is the Official engine version 0.1.0 This represents the initial TypeScript port of the engine with no other modifications.
-
Day7
This is the project code as of the end of the Seventh day of Devember. On this day I deem the port to be officially completed; all of the functionality is now present, along with the (few) design changes and tweaks that I wanted to make. The next steps will be to start actually prototyping a game to use the rest of Devember to evaluate how much easier this new port is to use and maintain than the JavaScript version was. Thus far I feel cautiously optimistic.