30
votes
Timasomo 2023: Week 1 Updates
Update us on your progress so far!
-
What did/didn't you get done this week?
-
Anything go according to plan?
-
Anything go off the rails?
-
Any successes or struggles to share?
-
Do you need feedback or help on anything?
This is your topic to share anything and everything you want about what you’ve made so far.
This sounds like a fun hack! I hope you'll release it once you're happy with it!
Interesting! How are you doing this? Is there some tool to decompile the N64 ROM into C, or is there leaked source you can edit, or something?
What is it?
The first act of my Star Trek Choose Your Own Adventure (CYOA) style interactive fiction made using Ink.
On Inkle
Inkle's documentation is excellent and read it in a day. Ink is a remarkable tool for interactive fiction. Extremely featureful, I can see why many professionals use it in games, but it can also serve well someone with less experience like myself. It facilitates the creation of branched narratives of all levels of complexity, and the depth one can go with it is astounding. With the exception of parser engines (which are a thing of their own), I doubt that there is another free interactive fiction tool even remotely as accessible yet comprehensive as that. I am confident that I can go very far with it, regardless of my limitations as a layman.
User experience
I am actively avoiding the word "game" because I'm not even sure if I'll be able to implement the things people think of as "gameplay". I expect this to be fully enjoyable as a narrative. I will try to subvert some expectations of the genre, and some defaults of the tool. I'm not creating CSS from scratch, coding Javascript, or anything like that, but I will edit some files to try to get it closer to what I want.
For instance, I hate long animations regardless of how elegant they are. So I'll cut them all out, text should be instantaneous. If possible, I'll add some audio, but if I can't, I will link to a YouTube playlist just to get people in the mood.
I have ADHD, and my "game" should reflect that. So no walls of undifferentiated text -- who is talking must be clearly demarcated, and text will not roll up like an ancient scroll. I will clear the screen before every new output, which will be given in bite-sized chunks. I want a simple, quick, enticing format. Not a book simulator.
Additionally, commands should be simple and fast. I would love to be able to have keybinds for all the commands, but given that it is a browser program, it would probably be too much trouble for me. It is not supported in the documentation either, so I would have to come up with some Javascript Frankenstein (since I don't actually code).
On the story
Right now, I have a rough and highly summarized 1300-word treatment for the first act. Previously, I was trying to come up with all the branches at once, and my brain severely malfunctioned. I asked GPT for the steps to plan a CYOA, and it mentioned writing the main line first. Which is obviously the way to go, how could I ever think I could come up with all the branches from the get-go?
My outline (or beat sheet) for the first act contains eighteen significant events and two highly important branches -- the ones with a deep impact on the story. I wanna add one more major branching, and also a good number of low-impact branches that may change how someone reacts to you in the moment or later, but in a way that does not produce ramifications outside of the first act.
I don't wanna share too much of the story because don't wanna spoil it in case someone decides to play.
The main character is not upper rank, but it is not lower decks either. This poses a problem because, in interactive fiction, you are expected to embody a single character, so, if I wanna show something to the player, I need to justify why that character should be there. If the player were Spock or Kirk that wouldn't be a problem, but being one of the big ones might pose problems because the player would feel compelled to make choices that reflected those well-known characters, reducing their freedom in creating their own character through their choices.
Taking this website as a reference, I suppose my structure would be a mix of The Gauntlet with The Quest models.
How I am feeling about it
I think it is going well!
I wanna make a text adventure since forever. I am not a programmer, but I dabble, and documentation is very important for me. Ink's documentation is among the best I have ever seen.
There were days when I wanted to change the project entirely and use Inkle to make something simpler and deeper, like simulating an ultra-long conversation with an AI with dozens of callbacks a mini-consequences. But then I realized that that's what I always do, whenever a project starts taking shape, I change to something else and never finish anything. I am glad I persevered with the Star Trek fanfic thing, but doing an entire episode would be way too much. Hopefully, I'll make an engaging first act so people wanna see the continuation -- I suppose I'll have to learn how to carry their decisions over. But that's a problem for another time.
I'm glad I chose to do one act because interactive fiction means that I'll write several parts of my story multiple times because of branching. So just one act is actually a lot.
Also, I played the beginning of the recently released Star Trek Resurgence. It is a flawed game that doesn't feel very Star Trek[1] in so many ways, but it did make me think about adding some romance to my "game".
[1] So many issues, but I'll share this one here: the soundtrack is awful.
Making good progress on my space flight sim! I'm writing it in C++ without a game engine.
For rapid prototyping, I've built a few elements in separate executables. There's the downside that I don't have a single "product" yet, but it's given me a better understanding of what each element actually needs. I think I'm in a better spot overall than if I'd tried to bodge everything together from the beginning. My goal over the next week is to take this knowledge and combine these parts into one playable experience.
Skybox and Planetarium:
I think I've nailed down rendering the skybox, and drawing markers "at infintiy" on the skybox.
https://i.imgur.com/L7z98JY.png
Hipparcos and Projective Geometry
Rather than using images for the skybox, I use the Hipparcos dataset. It contains positions, brightness, and temperature for some 120k stars. I use that data with a blackbody radiation LUT (†) to draw the star with a certain color, size, and opacity.I use an infinite projection matrix for the camera, and use the Stars' 3D position vectors for placement. By setting the w coordinate to 0, the matrix places the point "at infinity" on the skybox. I draw markers and other objects "at infinity" in the same way.
I can also set the w coordinate to the star's parallax angle. This places the star in 3D space with coordinates measured in parsecs. In fact, in homogeneous coordinates, this is more-or-less the definition of a parsec. See Parsec and Homogeneous Coordinates on Wikipedia; the parallax angle is the projective coordinate.
https://i.imgur.com/CHyICO6.mp4
Bear in mind, this view still uses the stars' apparent brightness as seen from Earth. For a more accurate view I should use the stars' absolute brightness and account for the distance to the camera. I don't plan to include interstellar travel in my game, so I haven't bothered to do the math on how to do this properly.
(†) Since I plan to lean heavily into thermal management for this game, I'd like to use this same LUT for coloring radiators based on temperature and power output. It might be a neat aesthetic for certain sci-fi high-power radiators to pump so much heat into such a small area that they glow blue. Using this LUT should give a nice transition from red to orange to white to blue.
I've also imported orbital parameters for the major planets and asteroids, although I'm not plotting their positions over time yet, just tracing their orbits.
Some key points on the screenshot above:
Physics and Networking
This one's a real doozy. I tried to do things "the right way" with multi-threading, but – as this is the first multiplayer project I've tried to build – I don't know what I'm doing. This led to race conditions and random segfaults. Generally a bad time.
For now, I'll keep everything on the main thread. Once I decided to do this, I made great progress!
https://i.imgur.com/uV41dS1.mp4
High-level Networking Architecture
I've created a simple client and server; the server maintains ground-truth state and physics for all connected clients, and the client handles simple thrust/attitude controls. The server periodically broadcasts ground-truth state to the clients, and the client maintains a local physics simulation to extrapolate state between these broadcasts.Message queue headaches.
When a thread wants to send a packet, it places that packet in a message queue to be consumed by the networking thread. Similarly, when the network thread receives a packet, it parses a tag byte and places the packet in an appropriate message queue for another thread to consume. All my pain points come from improper synchronization of those message queues and the components that might be modified when consuming those message queues.
In hindsight, I think this is a classic case of (unnecessary) premature optimization: the root of all evil. I'd like to eventually revisit multi-threading for the network, render, and physics systems, but only once I better understand the relationships and bottlenecks between these systems.
Besides, in the short term I think I'll get more performance for less effort by focusing on reducing the amount of network traffic overall rather than attempting to process things concurrently.
Physics and Energy
I've implemented angular momentum, so the craft tumbles as you'd expect. The integrator I'm using is not energy-conserving, though, so eventually errors accumulate and the craft tumbles only about its figure axis, which is incorrect.I've also implemented a keybind to automatically counter the ship's current angular momentum; the player can just press spacebar to slow or kill their rotation if it gets out of hand.
With that, I'm okay with a little bit of error accumulating over time. The player can manually counter the accumulation of error – they'd probably tap spacebar at some point to maintain control anyway. I do want to revisit energy conservation later.
Some key points on the screencast above:
Camera controls
To escape synchronization hell, I spent some time working on a special trackball-style camera control.
The player will want to inspect the surface of their ship in detail, but I'll encounter an issue because the ships are long and thin. An orbit-camera control scheme is not sufficient without additional controls for skew angle or panning. I don't want to require any controls from the user except for viewing angle in the flight view. Here's my solution:
https://i.imgur.com/491txTA.mp4
Ellipsods, Quaternions, and Warships. Oh, my!
This is an imitation of the Port camera view in World of Warships. It has the same dilemma, where warships are generally long and thin, but the player wants to easily inspect the surface details. There is no pan control, only viewing angle controls.Here's a video (timestamped) that demonstrates the WoWS Port camera. https://youtu.be/cls6e0lgafI?t=25
A typical orbit-camera scheme is insufficient because the player would need to zoom in on the broadside, and would not be able to focus on the surface near the bow/stern (the "cheek" armor
referenced in the video) without separate panning controls since the orbit-camera would only look toward the center of the ship.
I model the camera control with a Quaternion to hold the "forward" view direction, and a focal ellipsoid. The quaternion is rotated with traditional trackball-style controls. Remember, there's no up in space! (†)
The camera is translated to the point on the ellipsoid perpendicular to the view direction. Zoom translates the camera forward/backward from that position.
Here's a geogebra demo of the model: https://www.geogebra.org/graphing/zn3hfprx
(†) Actually, with torch-ships, there is an "up": the direction of thrust. I'd like to experiment with rotating the camera to align with the direction of thrust. When there is gravity, the camera will behave use a "normal" orbit control scheme, but when there is no gravity the camera will use a trackball control scheme. I might need to drop this if it's unintuitive or disorienting, but I hope it'll lend a sense of gravity to engaging the main drive, and a sense of weightlessness to floating without it.
Incompatibility with a rotating ship
I'm not sure how to reconcile this camera control scheme with a rotating ship. Naively, the ship's rotation would cause the camera to erratically shift around. This kind of control scheme should only be used when the ship is not rotating relative to the camera, when the player is trying to inspect something on the surface of the ship. There is definitely some more thought to be had before I integrate this control scheme into the main program.My project: Chess in Godot
I'm making good progress (considering I restarted a week ago). I originally planned to not include the GUI the second time around, and while this had some architectural benefits at first, it would make debugging move generation a massive pain so I decided to port that code over as well.
One of the challenges was adapting the GUI to the fact that I rewrote the position representation to use an array where a1 == 0, rather than a8 == 0. The reason it was a8 before was because that's top left which is (0, 0) in game engines, so it made the screenspace math for placing pieces on the board fairly straightforward. Now, with a1 == 0, the backend makes more sense logically (since a1 is sort of the origin on a chess board), but the calculations for finding screen coordinates based on a square index are essentially backwards.
The next steps are fixing knight moves and pawn capture moves being able to select squares that are off the board/wrap around the board. The move generation for the sliding pieces and king is already done. I may mess around with mapping the 8x8 array to a 10x12 array that indicates out of bounds squares for this. We'll see!
Worth mentioning is that I followed Sebastian Lague's chess coding adventures video as sort of a tutorial. It's only useful up to a point however, since he's telling a story more than teaching, and he skips over many details. Additionally, he's working in Unity/C# while I'm in GDScript.... and I haven't learned C#! So there was a lot of translating to do at first. But it was fun and now I (kinda) know some C#!
Ha. Well. I have had a time. Firstly all my plywood arrived warped, but that was in late september. It spent 10 days being alternately moistened and clamped and/or placed under a stack of bricks. I didn't count this as timasomo time as I wasn't actually making anything and if I hadn't done it right away I would still be sitting watching some bent wood take up all my bench space. This wetting and clamping did, eventually, appear to work.
So come timasomo time proper I spent a few hours very, very carefully and using my best squares and straight edges, building a track saw jig/proto-MFT - in order to make sure my upcoming cuts were all square and repeatable. Which did mostly work - one point on the jig was a little out and needed a shim but the rest aligned perfectly and it does what it's supposed to do. Except... I'd made a mistake with my initial design measurements, so what I actually did was repeat all my mistakes very accurately over multiple cuts.
I decided than to make a monitor stand for my wife's office using the bits of wood which were the wrong size to make my charging station from. It would be good practice, and mean the mis-cut wood didn't go to waste. So that is what I mostly spent my time on the week. I glued it up and applied a little filler to the parts of the mitres which didn't quite line up. Sanded some faces, applied a little finish to exposed areas, that sort of thing. Things were looking pretty good, and I got some nice - but cheap - cherry veneer from my local wood shop to practice with. It was at this point that the warping from the original ply reasserted itself and I ended up having to flatten the outside of the unit with a hand plane. For like two hours. It's still not flat but the ply was getting pretty torn up. I think I've been able to hide the warp, but we'll see.
Anyway, I just glued the veneer on today, it's still under clamps but hopefully it's going to turn out OK. I haven't done veneering before.
I also bought some more plywood, in person this time so I could check it for flatness, and have used the jig to re-cut my panels for the charging station to the right size (actually slightly over, but I can cut it down later if it looks wrong). Next week will be cleaning up all the mitres, finishing the inside faces, marking up and pre-drilling for drawer slides and getting it glued up. Unless something else goes wrong in which case perhaps I'll end up making a wardrobe or something. Who knows!
If nothing else I have a tracksaw jig now which is nice. That's going to save me a lot of time and effort in the future, I've been meaning to make one for ages.
I got my blog re-tooling finished and published a first article: Books I read in September. While I'll mostly post technical articles, I want to first experiment with posting what I feel like, to find my voice.
I'm happy I managed to not get sucked into the fine-tuning of things, and just ship something. To manage the writer's block, I have keep a couple of drafts open, and set myself the following tasks:
I found that strategy of small daily goals very helpful to tackle big things. For example, I have a daily "read for five minutes before bed" task. The five minutes usually turn into 30, but if I'm not feeling like it I'm free to close the book, and I still made some progress.
Any feedback on the post itself and the rest of the website are very welcome!
Nice first blog post - those three books span a wide gamut of topics.
Static web pages are a breath of fresh air. What made you pick Zola instead of Hugo? And what's your method of pushing updates to the website?
Thank you!
The previous iteration of this website used Hugo, but I grew a strong distaste for the gotemplate language and wanted to try something else. Also (and that's the perk of being a younger project), Zola feels more cohesive while Hugo's feature set feels disjointed at times. Moving the content over was pretty easy, and the tabi theme is beautiful.
The repositories are private (for bad reasons), but the blog is built as a nix flake and deployed to my NixOS server with deploy-rs. Believe it or not, that was the simplest way, as I already deploy other projects this way. I'll work on a simpler CD setup later on, but didn't want to lose energy in that side-quest right now.
"I can't edit this. I have to stare at the typos. They're just there... taunting me."
--one satisfied early build tester
Your Laptop Is Now A Typewriter (YLINAT), my text-not-an-editor, is coming along great! For one thing, it has a name now!
I'm putting this together with PyQt6, and I'm doing a lot of learning on the fly because I haven't done much Python GUI work before. So far I've got a very basic UI (complete with superfluous greyed-out Edit menu because I thought it was funny), file loading (but not saving just yet), and a customized text box that ignores all mouse inputs and as many keyboard shortcuts and cursor control keys as I could think of. I also tested building a standalone binary with PyInstaller and that worked out pretty well aside from a depressingly-large file size.
Next steps: finish the file i/o, including autosave, then start work on other features like font and color customization. By next week, I should be able to draft my Timasomo update using YLINAT. (But I won't. Probably.)
Antique Photo Montage Project
Well, I've made some small progress!
Tl;Dr First Attempts
I spent some time going through the negatives. I've been wanting to get clear plastic sheets to put them in a binder (like baseball cards) but this format of film was discontinued int he 80's so I'm not going to be able to find anything like that, which is a big hit to organizing/cataloging them.
Looking over the source material I've realized that there's no way I can emulate Mutter or O'Reilly using just the antique negatives. I'm okay with that though, I'm kind of excited to try my own thing.
I spent some time in the darkroom last night experimenting with double exposures and masking, along with some original techniques I'm trying to develop. You can see the results in the link above. All of this was done purely in the darkroom with no digital manipulation. I was trying to take the eyes face/eyes of a picture of a child and superimpose them on woman in the couples picture. These three pictures took about 3 hours to produce, and the results pretty rough.
I would really love any feedback that anyone has. Which one do you like the best? How do the images make you feel, what vibe do they give? What would you do different?
My next step is to practice, refine, and (hopefully) streamline the darkroom techniques I'm trying to use. I think I'd like to try a few more things with the couples photo:
There's so much to do and explore!
This week I upgraded my Phutball web interface from "Bad UI, nearly unusable UX" to "Bad UI, passable UX" which to me is already a very big improvement. It's still definitely that the level of "you need to know what Phutball is or have someone demonstrate it to you for it to make sense", but as a tiny webthing to show the point I think it's getting somewhere.
The UI is still essentially interactive ASCII art, but the game interaction can be done entirely on the board with the mouse, which is leagues better than the developer-only coordinates-based control panel that I hacked together previously to make sure it worked.
I think this week I'll try to dedicate more time to making the UI more presentable with the hopes of having an actual graphical board and "pieces", though this may be a several-weeks endeavor.
Beyond the "upgrading the UI past ASCII art" I'm hoping to also add a move highlighting system and with the option to partially undo moves (instead of just a full move revert). Actual web interaction is floating around somewhere in the back of my head, but I still suspect it won't happen this month.
I'm still working on Pentominoes. This week, I've:
I still have a few outstanding issues and I want to write at least 1-2 more blog posts about it, but I'm really excited about the state it's in right now!!
Cool stuff!
I like the concept of using the tiles but honestly it's pretty hard to make out, and that's after being primed by looking at the URL. The irregular height and lack of gaps (such as on 'P') isn't something I naturally process as a font.
It seems hard to get a glyph from 5 pixels, but maybe using an 8x8 while preserving some overlap color or the removed borders to indicate distinct pieces would work?
ooh, I didn't think of the height of the I tile. I've now pushed an update that transforms that tile to be 75% of its original size. Does it help?
I really want to use the tiles to write out the name, but what I wouldn't mind doing is adjusting the opacity on some of the squares (the handle on the P that's rotated to be an O, and maybe the 3rd square in the long part of the N). I haven't done that yet because doing so would hurt component isolation a bunch, unless I put some encoding of wordmark coloring into the pentomino object itself, and I'm not sure if I want to commit to that if it's not 100% necessary. But I might just go ahead and do that too.
That might have helped, but I don't trust my memory? The diagonals and 'I' still come above/below the line. It isn't awful, and I'd say get more opinions, but I can't think of any great fixes for 5 pixel glyph aesthetics.
I'd have to see it, but I'd worry you'd be drawing attention to it by making it contrast with the rest of the pixels. Either you set opacity so low you lose the pentominocity of it by muting an unwanted handle in an O, or you have it visible and just kind of there.
Maybe one other thing to mess with would be including the centering dot?
Thanks, that picture was really helpful. I've pushed another update. This time what I did was:
O
s.How do you think it looks now?
The kerning improves it!
The opacity makes the glyph look less consistent (things like the white on the 'I' stand out) and that clashes a little with how uniform the tiles below are.
Think you're right that scaling introduces issues since you get an idea of how big a pixel "should" be from the boxes, and you're trying to shrink something to 3/5ths.
The N and O still are a little awkward. Some rotation might help with the first hump of the N being so much lower than the second, possibly the 'I'. You could also try shaping the "line" that they're on-- instead of the logo being straight add some element like a line above/below that curves it in/out where the glyph size requires it.
I actually haven't changed anything with opacity. The problem is, for the tiles that aren't rotated, the box-shadow shows up way brighter than otherwise, I think cos it doesn't have to apply any anti-aliasing for diagonal lines. (I tried box-shadow, outline, and border for the white lines & box-shadow by far looks the best.)
Anyway, so, I've now rotated the T, P, and I tiles an exciting 1 degree, and it fixed the brightness dif a lot.
Which way do you think I should rotate O? Right now it's a multiple of 45deg so that it's at a "perfect" diagonal, so I'm not sure what might be better.
I changed N by 10deg though, and I think you're right, it's a lot better now.
Edit: Oh yeah, I also had one other idea but I haven't done it because it feels like such a pain in the ass to implement & I'm not even sure if it's a good idea. But I could try putting one of the "this is the center of the tile" dots position:absolute; in the center of the tile, and then translate it by -50% in x & y so that it's perfectly centered there. What do you think?
Ah yeah sorry I did mean in the middle of a group, that's why the entire thing would be kinda annoying - if it's in a cell i just, show the dots (currently im sending a prop to actively suppress them). but if it's in a tile overall center (so where O and P the actual letters have holes in them) then i need to calculate the correct width/height and position:relative; the parent and position:absolute; the dot with translates.
Maybe I could do a bit of a refactor so that I have 2 different pentomino tile components, one for the wordmark & one for the header (thats what im calling the place where you pick tiles & see which one is current), but i dont really see a good way to do that honestly, unless i copy a ton of code which I don't want to do. but I'll think about it. Maybe I could at least hardcode something to see if it seems worth it & then decide how much it's worth it to make this component even more of a mess.
Writing a short orchestral piece.
What I've done this week:
That's about it. The beginning steps of a composition tend to be a bit boring in my workflow, but eventually I'll put a note down, then another one, then that'll continue until there's a finished piece.
What I'm going to do next week:
More structuring: Motivic material, broad formal layout, etc.
Write a few small sections and showcase them here.
Get a feel for where the piece is going and further hone in on what I want it to be like. No idea is set in stone in these early formative stages; maybe I'll end up going a completely different direction than what I'm thinking right now.
Project: Photo zine
Not a huge update, but I got the first big step done: I reviewed all my edited photos and collected what I think are my best and worth sharing overall. At some point I will cut these down into some kind of portfolio, but for the next month at least, I'm going to focus on the zine.
Next step is to choose the photos for this project. I have a theme in mind, but I want to do a pass of all my chosen photos to see if any other ideas shake out from that. Considering that sequencing and layout will probably be the most time consuming task, I want to get that started this week also.
So, hopefully soon I will have more concrete decisions made and then I can share in more detail what I think the zine will actually look like.
Excited to see how everyone else's projects are coming along!
First, before I begin, here's a link to the current version of the game: itch.io link -- to access the page you will need to use the password
timasomo
. (If you play the game please let me know what you think! anything that confused you, that you liked, or disliked -- all feedback is useful!)Productivity
I am very happy with my progress! Frankly, I spent so much time on the project this week that I think it's quite likely I won't be able to keep up doing as much the next weeks. But I'd like to try! I am still enjoying working on the project fully, so I hope it will last. I spent most of my free time this week only on this game, basically coming back from work and working on the game until I went to sleep, so again not sure if I can keep this up :D.
Stuff I did this week
Now, what did I do this week? Literally too much to list all of it.
First thing I did is to do some refactoring and reworking of some core things. Game jam games tend to get a bit hacky, making things quickly, so to make sure the project is nice to work with I had to remake some of those hacks. As an example, a big part of the visuals is a drop shadows shader -- this shader was made in a super weird way which required me to use a mono-colored background, which obviously would prevent me from having more interesting background visuals. That is now fixed, and even though the backgrounds are still not very interesting, I can now make them more interesting when I'll want to.
Another thing I did is adding a few big mechanics to the game. One extremely important quality of life feature is targeting indicators for the different spells. Next, I added a fully new mechanic -- items. This will allow runs to have a lot more variety, allowing you to get a ton of different "builds" and making the game a ton more roguelity. Also, I added an options menu, for now with just a few options, but already allowing you to change the volume for the music and the sound FX. Speaking of music, I modified and repurposed an old track of mine for this game, because the old music was a bit too repetitive for me. Last major "systems" thing is that I added a debug console that allows me to setup any combination of spells and items -- this allows me to test things much more quickly then previously. Even after all this there's also just more stuff that I did.
And the biggest thing is that I just made a ton of content. There are now 21 base spells, 7 spell variants, 45 items and 7 different enemies. Still not enough, but a good start to have a lot of variety for a roguelite.
Future
Now that I have proven that I have some staying power for this project and it's not just a tiny fluke, here are some of my plans. Next week I'd like to continue in a similar fashion. There are a few more small systems that I want to add, but nothing as major as this week. I'd like to mainly continue adding more spells and items. Also I'd like to add a few more music tracks so you aren't listening to just one track the whole time -- for this I will probably repurpose some more of the music I made in the past.
In the remaining weeks I'd also like to add different maps, different characters and some progression system that will unlock the various content in the game piece by piece (similarly to what Slay the Spire/Binding of Isaac and basically every other roguelite does).
Oh and in the final week I'd like to decide whether I am putting the game on steam right away or not. I'll see in what state game is in. I kind of wanted to put my game in steam next fest, but theres one thats going to be happening right this month I think and the one after is so far away.
The challenge
Create something, every day for the month of October.
(Something can include, but is not limited to, making music, drawing pixel art, writing 1 page of fiction, or going out on a photography session.)
Additionally, finish, mix, master, and upload online at least 1 song by October 31st.
How's it going
Pretty well by my standards. I did skip one day because I let myself fall prey to the 'I don't feel like it' syndrome, but I was so angry at myself that I finished a track the next day.
It's not a very good song to be fair, but the fact that I can listen to it without wanting to set my desk on fire means it's good progress. I haven't finished a song in over 2 years, but I also didn't make much music in that timeframe either.
I also have 3 drawings done, 4 short stories, and 7 journal pages where I reflect on my processes and habits.
What's next / reflections
This week I plan on drawing the cover art for the song I just finished, and upload it privately to either Soundcloud or Audius (I never used it but I heard it's popular nowadays). I'm not gonna share it because I'm going to be very embarrassed.
After that I want to start a new song, and work on my arrangement skills (more specifically learning how to transition from a verse to a chorus, or from an intro to a drop if it ends up being an EDM track).
Pixel art seems to come naturally to me. I don't struggle the way I struggle with music, and it's actually a lot of fun. Technically, I'm hot garbage, but I like my end results even if the shading is unnatural or the backgrounds aren't as detailed or whatever. I haven't attempted any animation yet, I should explore it, since I want to eventually draw my own sprites for a 2D video game.
Writing is easy enough. I force myself to journal every day so I can record all my thoughts and feelings, and whatever ideas come to mind, so at the end of the month I can reflect and see what to pursue next. The fiction part, prose is easy and kinda fun, although it ends up being waaaay too edgy and dark and weird. I tried poetry, I suck and I hate it, I'm not touching it again, which means I probably won't be writing my own song lyrics any time soon.
I did snap some cool photos on a hike, but it was the day right before Timasomo started so I won't mention them further. No new photography since then, since I haven't been outside in nature enough to do that. I don't like urban scenes.
As a reminder, I am arranging, recording, and hopefully filming a metal version of Reel Around the Sun.
I'm clipping along at broadly the expected pace. I have managed to just about complete the arrangement of the song I'm going to record, although there will need to be a bit of experimentation during the recording process to add some keys and orchestral harmonies that are definitely missing at present.
I'm tabbing everything out in Guitar Pro, which has been my go-to tool for quick composition for years, and I'm quite fluent with it these days. I managed to chew through about 40% of the arrangement last Sunday evening after D&D, and although it led to a very late night, I was happy with the progress I'd made. The next day was probably about 20% completion of the full tune, simply because it involves a rather long (2 minutes!) vaguely free-form section at the introduction that proved very hard to come up with. A lot of listening to a couple of seconds of the tune, consulting some half-decent sheet music, and then putting digital pen to paper. The last 40% came together in a hurry on Tuesday evening, and it's sounding pretty good! There are definitely sections which need tidying up and building on more, but that can be done during recording.
For the most part, writing a drum part was quite easy, which is something I normally struggle with. The version of the tune I'm most familiar with includes the tapping of the dancers' shoes quite high in the mix, and I've basically transposed that into drum beats, with a little simplification where necessary. It make the whole thing pretty smooth, as I have an ear for rhythms. Bass was a little more challenging, but it lead to some wonderful discoveries in the original that I had never listened out for, and listening to my version it sounds incredibly effective when the bass and rhythm guitars hit together.
All in all, a good first week, although progress stalled after Tuesday. That was expected, so I'm not behind in the schedule I've made for myself, but we're getting into recording now, which is bound to take a lot longer than I would like. I have a suspicion that (barring some incredibly good first-takes) I am going to spend much of the rest of the month in the recording phase, leaving little-to-no time for filming a video at the end of the month. My plan is to use a little spare time tomorrow during my lunch break to set up the recording environment in Reaper, and to get the VSTs I need working. An extra layer of challenge to this whole affair is that I only use Linux as a desktop OS, so compatibility is a huuuuuuuge issue.
My project was to create a board game about reconciliation, at least to the point where I have a playable prototype.
The last week and a half I've been on holiday, which has made it difficult to actually do much, but has given me a lot of time to think, which has been helpful. I've gone through about three different designs: firstly a deckbuilder- type thing, where the idea was that past incidents would keep on getting brought up over time; then a kind of very basic CDG-esque thing that I wasn't very happy with; and now finally a kind of engine-builder thing that might be a bit too zero-sum, but I think now I just need to start trying it out and seeing what happens.
The process thus far has been really interesting. I've read a bunch of articles about forgiveness, justice and truth/reconciliation processes in different places, and tried to formulate a model out of that that hopefully represents the ludological arguments I'm aiming for: trying to contrast justice and forgiveness, and exploring what breaks down in group reconciliation.
It's also spun up a lot of stuff that I'd love to explore more but felt to hard to use. For example, there was a really interesting article from a researcher who went into the GDR shortly after reunification, exploring the ways victims tried to reconcile with their oppressors. There was one story about a woman who found the Stasi officer who had been keeping tabs on her, and tried to offer him forgiveness, but he refused. In his eyes, he'd done nothing wrong, so he couldn't be forgiven, which meant she shouldn't forgive him, which meant she couldn't heal and resolve her own trauma properly. That sort of asymmetric prisoner's dilemma sounds like a fascinating idea to explore more, but I don't really know what that would look like right now, so I'm going to continue with a more symmetric, cooperative format for now.
Next step when I get home from the holiday is to compile a list of card actions and build the most basic prototype I can put together, and play it once to see what happens.
I love that idea. A lot of games are about betrayal and deception and I just can't handle the feelings these games evoke in me. A game about forgiving sounds lovely and wholesome and I think I would enjoy it.
TiMaSoMo hath begun! Was working with the guys this weekend, so a little light on the photos side of things, you'll just have to use pure imagination...
Last week I mentioned that there was a mystery around the throwout bearing, well the mystery has been solved! We removed the engine/trans, separated them, and found the throwout bearing in place ...but... while it was on the input shaft, I hadn't actually installed it, it was just on the shaft so I wouldn't lose it. Sucks to have missed that the first time, but not as much as it would have sucked if I hadn't thought about it afterward, came along several months later, and been wondering what of the million things I screwed up along the way to make the car not start/go into gear. At least now I know, it's not the throwout bearing.
Engine mated to the transmission again, and installed into the car. Next!
Of the list of things I said I wanted to do this month, one of these isn't on the list, the other is on the unnecessary-but-nice list.
Item the first: The Tercel, as many generally low-powered cars of the day, has a cable operated clutch. Many/most manual transmission cars have a hydraulically operated clutch, at least those that need such due to the force multiplication possible with hydraulics and higher clamping force clutches to handle higher power. A cable operated clutch has a braided steel line inside a sheath that runs from the clutch pedal to the clutch fork lever, nothing fancy about it, just not a lot of mechanical advantage. The original engine for the Tercel had the exhaust on the passenger side of the car (as well as the intake manifold); the new engine is crossflow, so the intake manifold is on the passenger side and the exhaust is on the driver side. The issue presented here is the path that the clutch cable wants to take is the same path the exhaust wants to take. That rubber line touching an exhaust that can run in the 500-1000F range is bad news even if we ignore the whole two-things-taking-up-the-same-physical-space problem.
Getting a shorter clutch cable isn't really an option, but longer most certainly is! Quickly Robin, to the
Batcave...err... parts bin! Lo and behold, vintage clutch cables aplenty! I purchase two, one for a late 80's Isuzu pickup truck and one for a late 70's Honda Civic. They're both 10-14" longer than the stock part, just may need a little finagling to get to work, but I'm an expert in finagling! In high school they called me The Finagler and I was known far and wide for my finagle-y prowess.I start with the Isuzu cable, partially because it looks like it might need a little less precision work, has a feature I'd like to use, and a much longer variant of it has been known to work on a similar car in a similar fashion. Fits into the pass through on the bellhousing, hooks onto the trans without issue, did have to remove most of the feature I wanted (a large rubber donut for the firewall) as it wouldn't fit, and by cutting off the clevis to just leave a bit of a "washer" on the cable, slides right onto the clutch pedal without issue. Well it all fit without issue outside of the usual grunting, cussing, tight spaces, busted knuckles, and being underneath the dash where you need two hands to get it on the pedal and a third hand to hold the flashlight while you dangle upside down from the passenger side in a position that your body no longer appreciates.
It works and it clears the exhaust manifold by running along the block, above the oil filter, then loops back toward the firewall, under the fuse box, and into the cabin. Despite this, I think I'll still remove it to try out the Honda cable...
Item two - the iteming: This one was on the unnecessary-for-TiMaSoMo list, that is replace the factory brake booster and master cylinder (MC) with better setup. I've mentioned that
with great power comes great responsiblitymaking your car faster without making it stop faster as well is a bad idea and followed up a test fit of the big brake parts with the note that I was seeking a booster/MC to pair with it. Since then I found a booster/MC from an 80's MR2 that fits the bill. The booster is 1:1 with the stock booster in regards to the power assist it provides, but has the correct bolt pattern for the larger master cylinder. Master cylinder and braking math gets complicated and boring to the average reader pretty quickly, so I'll just sum it up this way: The new front brakes have a larger area, a larger area requires more fluid to move them, a larger master cylinder moves more fluid when pushing the brake pedal. It's more complicated than that and there are drawbacks to a larger master cylinder (more fluid vs more pressure), but for the Tercel I've done the math to make sure I'm not endangering myself or making things worse overall.Removal of the old master cylinder is easy, just two bolts and and a few brake lines, removal of the booster requires yoga bending skills under the dash, but got it out, and the new booster in place. New master cylinder uses four bolts, also easy to install, but the brake line connections are in different spots. So it requires very gentle bending of thin walled, metal brake lines to get them into the right place for the new master cylinder. If you aren't gentle you'll kink a brake line, blocking fluid flow to that end/corner of the car and your brakes won't work properly. Need to de-pin the old fluid level sensor plug and swap it to the car's plug, but that's a minor wiring step for later.
That's all for weekend one, really doesn't seem like much in the end, but lots of methodical fitting, testing, adjusting, fitting, testing, adjusting, takes up time and simply removing an engine and transmission, separating them, fixing a mistake, combining them, installing them, replacing a clutch pedal, brake booster, and master cylinder (of which only the transmission is actually meant to be in the car) took up about 6 hours of relaxed-pace work. See y'all next week!
I had a sibling and accompanying nibling in town so I didn't have a ton of time but I finished a first draft of the lyrics and like how it went.
I downloaded a bunch of ThatKidGoran instrumentals and listened to them until I found one that I think works, though I'll have to try to do some basic editing. Finding out the name of the track was "Nostalgia" was a nice coincidence, since it's about
a friend
I knew since age 3/4, up until he pulled a knife on me when I was ~13.I'll probably have a personal copy and try to trim some stuff that's identifying or which I don't think translates well to strangers?
Like...
You were raised on MTV, showed us beta MTGCoulda played some EDH instead its games with EDC
Coulda gone to EDC listened to some EDM,
Guessing if you would've met him that you would've liked [redacted former Vietnamese roommate]
Besides some revisions, I'll probably try to make some annotations and an explanation of the situation/relationship.
I've done very few creative projects in my life, but I've always been around folks that do and liked them more for it, and it lets me feel connected to them. There's also some significant life events or philosophy-adjacent thoughts that I think I'm trying to dip a toe into writing to process.
So I've got hangups. I don't sing, not even in the shower. Not sure I can listen to a recording of myself, so I'm not quite sure what to do with that. I feel pretty self-conscious about something that's borderline trauma dumping in a generally happy/cool/constructive event, but with the misappropriated help of Vi Heart's bird bowl I'll try to convince myself that's the good stuff.
Constraints of form and the goal of rendering something intelligible to some possible audience are also good things, I think, but I'm not a particularly good writer. My thoughts branch out a bit and it takes a lot of effort to reign them in. Plus I like wordplay, which captures some capras. If nothing else I stumbled on "a little bit of column A, a little bit of calumny" so I'm calling this a success.
I tried joining etiolation's Tildes Writing Club, including former accounts. He had a post months after his last one, now deleted, where he was worried about contracting COVID after an already hard patch of life. I reached out and we talked, ending on "don't be a stranger", but I never heard anything more. I was awkward and I don't think I understood or helped. Another hangup.
Project: Grandma's button ornaments
After a lot of trial and error I found the right material to thread through the variously-sized button holes and I think I've got the right materials for the wings.
I also came up with enough buttons that would stack appropriately for each ornament that were also colored correctly. Which I think I've got now.
So sitting on my workdesk are baggies for each angels with all of the supplies. Now it's a matter or getting the prototype lined up and cutting the thread/ribbon. And then I think I can probably knock these out somewhat quickly actually.
Famous last words
All those "little 5-minute tasks" (that may or may not be finished in under 2 hours) keep stacking up in my way. Part of the problem is that there are a lot of minor and medium tasks I'd also like to complete before the month is done, as a way of clearing my to-do pile before the holidays and new year. If only those 5-minute tasks were only 5 minutes—they'd take significantly less time if I had a secretary to keep me on task.
Regarding the Pi server, the important first things to do are:
With those steps in place, everything else could be done while I'm traveling.
Bit late with my update but the plant watering system looks viable so far. I have a battery powered Raspberry Pi that charges off a (probably too small) solar panel and reads the signal from a capacitive soil moisture sensor through an analogue to digital signal converter. All appears to be working fine. I’m still thinking about how to power and control the water solenoids and haven’t begun to think about the reservoir or pipes.