17
votes
Timasomo 2023: Week 2 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.
Star Trek, text-based interactive fanfiction in Inklescript
It's progressing well. The storyline is more or less done, and I started actually making the game[1]. I have 105 lines of code and writing interspersed (500+ words) That is a lot to me. The character is still in her room, and I'm in no rush to advance the story. I am still learning the tool, and I expect to get a lot faster with time.
Inklescript
Inklescript is amazing. This kind of tool usually fails to attend to the needs of true beginners. They either sacrifice essential features, "dumbing down" the tool in order to make it easier (example: Twine), or embrace complexity while maintaining that they're actually meant for everyone (example: Inform7).
Some of those tools are actually meant for a very specific kind of beginner who is particularly apt at programming and maths. Few succeed in communicating with those who are not particularly talented or inclined to programming.
That is not the case with Inklescript. Their claims of accessibility are entirely confirmed by my experience. There is just the right amount of documentation, and it couldn't be more clear. I can even grasp some of the more advanced topics (although I haven't used them.)
My only complaint is that, maybe because Inklescript was initially developed to be used alongside game engines such as Unity and Godot, the web export is missing some essential features. For example, there's no native way for me to add links to my text, and all player choices are circumscribes to a list of options that goes after the text. I should be able to do this:
Instead of this
Someone on Discord shared code with me that would allow me to make links from inside the Inky editor, but using it won't be trivial for me. I would edit the HTML export directly, but it is actually not that simple, the data is not on the HTML and the structure Inky uses is a bit obscure.
About the game
Instead of advancing quickly, I'm trying to make the first scene rich in objects and possible interactions. Like I say, there's no rush. The next two weeks should be more productive than the previous one. My code is awful and unstructured, but Inkle is designed to help with that. It feels resilient to my lack of organization. I understand what I'm looking at, and I know how to reorganize if needed.
Today I created a very easy (almost not a) puzzle, and it was as simple as declaring a variable and testing it. When I say that, you may be thinking of actual code, but in reality, it was much easier even than Python. It doesn't feel like coding. This is ultra-high-level programming.
This gives me time and energy to concentrate on the story. So now I'm gonna obsess a little about my first scene, trying to add as much interaction as possible so it feels like a living world and serves as a good introduction. Despite my 1300 words of preparation, this feels oddly improvisational. That is a good change of pace for me.
I also inadvertently found some comedy, which is something I wanna explore in other scenes.
In case I'm not able to do the entire first act, I'm not too concerned. If what I have is interesting and engaging, I'm sure I can find a satisfactory way to wrap things up.
[1] When I say "game", please read "game-like experience", since I'm not even sure if I wanna call it a game.
Exciting! I'm looking forward to playing it!
Between getting sick and having family visit, I have made no progress whatsoever this week. Hooray!
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!)I am still doing very good!
I actually ended up working mostly on systems I'd say. There's still more systems stuff to do though (there probably always is). I have also been doing a ton of balancing. For content -- spells and items, the low hanging fruit was mostly picked, so I didn't add as many items or spells, but I still added a solid amount. Also, here is a video I have recorded a few days ago of the state of the game if you don't want to play the game but would like to take a look: https://www.youtube.com/watch?v=JwElfI4ck8k
The next week I just want to keep on trucking on. Don't really have concrete plans on what exactly I want to do, but I want to just keep on doing a lot :D. I believe I might keep up this level of productivity, since I am still enjoying working on the game so much. Actually, one thing I definitely want to do is to get a few more music tracks in the game. I'll get that done by the end of next week.
Are those assets that you're going to replace later on? Cause I kinda like the retro Atari 2600 vibe.
Your UI is all square and the assets are kinda round. Maybe do everything rounded or everything not rounded. I like blocky things myself.
The music is quite somber. Are you sure that's the tone you're looking for?
Maybe let the character move.
Are the spells thing kinda like Vampire Survivors? I don't think I understand how that works in our game. I select the spell, but then I can't leave the window and have to click skip.
When I click, I aim. When I release, I shoot. I'm here thinking, do I really need the aiming bit? Cause I'm always clicking directly on the mob anyway. Seems easier that way. Why not just shoot on click?
I'd say go deep on the retro vibe. It's awesome. Love the HUD.
Thanks for trying the game!
I am most likely not going to be replacing 95% of the assets, the only one that I know that will get changed is the character, since I'd like to have at least some very simple animations (charging spell, spell ready, casting spell). I was initially thinking that I will make images for items, but I think I will probably not do even that.
No :D. Similarly as you mentioned Vampire Survivors, where you only move and don't shoot, here you will only shoot and not move. (well ok, I am planning a potential thing where your character might sometimes move from the original position, but I am not sure if I'll do it and it also won't be a thing that you can do every run, and it won't be traditional movement on WASD)
You mean in the new spell window between waves? You choose one new spell to get and choose one old spell that you lose -- hence "Spellswapper".
There are many cases where aiming is useful, but also it is true that there can be cases where you don't need to aim. After the last playtest session I did with a friend I got some similar feedback so in the next version I am adding a button that you can hold that will just autocast spells as long as you hold it, and also a button that just toggles on autocasting until you turn it back off.
Thank you! :) Making the UI was really fun -- I originally wanted to use https://github.com/mr-dreich/Godot-Window-98-Theme this already existing theme but it doesn't work in Godot 4, so I created my own one.
Awesome. I haven't talked about the sound. Have you thought about retro sound effects as well? Just because I got an Atari 2600 vibe, I'm kinda thinking Atari 2600 kind of sounds?
Just an idea!
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
Read Week 1 update here.
I'm losing steam, and it's making me sad. I keep finding excuses to avoid working on anything, so this week I only managed three days (hopefully four if tomorrow goes well) out of seven.
However, the days I did create, were lucrative. I started a progressive house track that so far sounds solid, I have the first chorus and now I will focus on arranging the intro and buildup.
I didn't write or draw anything though... and so far, I feel like drawing calls to me more. If I think about missing a day of writing, I'm like 'oh well', but when I think about missing a day of drawing it has a bigger impact on me.
I might consider actually working on a short video game to force myself to do both pixel art and music, and get back into programming outside of my job.
It is possible you chose a challenge that is a bit too intense for you.
I often find that doing ten small different things is more extenuating than doing just one big thing. That is because, with the ten things, you have to start over every time, there is no momentum. The start is when you spend more energy. You're trying to figure out something entirely new. So you become an easy prey for anxiety and exhaustion.
While, when you just wanna do one thing, after you're over the hump, things tend to flow a bit more naturally.
Maybe you should consider revising your challenge for something that won't make you sad. This is not a rule, but it seems to me that Timasomo is supposed to be fun!
Remember how I wrote this last Sunday?
So that's not untrue, I did import all these things and display them on screen, but I neglected to verify that everything was in the same coordinate system. If I'd plotted the planets' positions over time I would have noticed the inconsistency sooner since everything spun the wrong way.
What followed was a week-long overhaul of my data import system – but it turns out things are much better now I've found a better data source.
Data import hell.
I spent a while trying to correct the data I already had, but after a while it was apparent the orbital parameters I had chosen for the planets were out-of-date, inaccurate, and using a coordinates that are tricky to convert to J2000 to match the star positions.
NASA JPL maintains the Horizons System, a database that catalogs the positions of thousands of asteroids, comets, planets, moons, and spacecraft. It is comprehensive and even provides a HTTP API to extract the orbital parameters for any of these objects! Perfect!
Well, no. The system makes... problematic... choices on formatting.
For example, I'll need the radius of each object. Horizons helpfully list their average radius like
Vol. Mean Radius (km) = 58232+-6
. Easy to parse.However, some objects are irregularly shaped, for example Saturn also lists
Equat. radius (1 bar) = 60268+-4 km
andPolar radius (km) = 54364+-10
. Why are the units on the label for one, but on the value for the other? Whatever, I just make a regex rule and move on.But then it turns out some irregular objects list their radius in yet another format:
Radius (km) = 13.1 x11.1 x9.3
.Vol. Mean Radius
andEquat. radius
andPolar radius
are all missing! Now I've got this horrific regex to try to parse all this, and it still fails on even more edge cases. Something listsRadii = ...
, or it listsRadius = R1(km) x R2(km) x R3(km)
. And that's just for one property! What about other properties like mass, brightness, flatness? All to be thrown away if or when I switch to use textures for these objects?Another critical issue with the API is the lack of batch operations. I can only query properties for a single object at a time. I'd prefer not to be ip-banned or DDoS JPL's program. And there might also be some copyright issues with redistributing data sourced from the API. So that settles it, I need to find the underlying dataset.
Horizons sources its data from JPL NAIF as part of the SPICE program. All NAIF data is provided without restriction in a standardized format. There's a free C library to parse it all, and there are even python bindings! Altogether, this is so much easier and faster to run, and it gets me all the data in a consistent format, with consistent units, in the same coordinate system as my Hipparcos skybox. Perfect!
So with my new data in hand, I've got everything imported correctly this time.
Objects now move over time (with a configurable timescale), and I've added some debugging UI elments to navigate to different objects. I've also imported the radii of each object (when data is available) so they're drawn as ellipsoids rather than points (when nearby).
https://i.imgur.com/087Iykr.mp4
https://i.imgur.com/S6UyIAq.png
I played with the viewing controls, so I can control the distance to the focused object along with the field-of-view for telephoto effects. Since I'm not adjusting the exposure for stars, the background tends to be empty at extreme zoom, but I'm not so worried about this for now. Here are some assorted videos with multiple planets/moons in view at once:
Earth, Moon, and Jupiter
Ganymede, Io, and Jupiter
Phobos and Mars
You'll notice in those videos some jittery effects on the nearby objects: these are due to floating-point errors since my rendering uses 32-bit values rather than 64-bit values. I did expect the issue, but I didn't expect it to be so extreme.
A plan for precision
It's most obvious in the clip above with Phobos, since it's such a small object. It's also very obvious with this older wireframe-style renderer for the planets:
Mercury (wireframe)
Moon (wireframe)
Pluto and Charon (wireframe, realtime)
I expected problems out near Pluto, but I didn't expect them to be apparent at Mercury!
My physics and orbital calculations all use double-precision floats, so they don't have this issue. With these, the resolution even all the way out at Pluto is something like 5mm. The artifacts come about because I'm naively converting my (heliocentric) coordinates from double-precision to single-precision and handing them to the GPU for rendering. Therefore when rendering, all the detail is close to the sun and far from the camera, so you get these artifacts.
So my options are either to: (a) use double-precision on the GPU, or (b) do math and bring the detail closer to the camera.
Option (a) is horrifically slow at scale. It won't be my performance bottleneck for a while, but I don't intend to use it and cause problems for my future self.
Option (b) involves subtracting off the position of the camera from all values before converting to single-precision; therefore the detail will still be near the camera, and these artifacts should disappear. I'll still get artifacts in objects far from the camera, but that's fine, because they'll be far from the camera.
It isn't a difficult change, but I do need to go back through all my code to be sure I'm using double-precision wherever possible, and only use single-precision when uploading data to GPU.
Finally: all this exists in the multiplayer world. Here I pilot a craft from Mars to intercept another craft to the north of the Sun.
https://i.imgur.com/0RvycQv.mp4
Well, yes, the scale is a bit... off. The issue is that the craft don't scale with the rest of the system, so when I zoom out to see the orbits, the craft seems huge.
https://i.imgur.com/1BzUL6a.mp4
In my comment in the Roll Call thread I laid out five broad tasks for this prototype. With the progress from this week, I'd say three of the five are complete.
✓ The Orrery
✓ Networking (the hard part)
✓ Ship Physics
☐ Ship Controls
☐ Weapons (the experiment)
So, what's next is Ship Controls, and an implicit subsection of that: Indicators. I'll also clean up some of the debugging components left from verifying the placement of objects in the orrery.
Tasks
Remove (rather, disable) the debugging tools I built to verify planets' orbits and positions.
Improve resolution
Improve rendering. Nothing fancy – some basic features to help the player orient themselves.
Heads-up-display indicators
Numerical values. A small Imgui window(s) to display some state.
App for fitness data analysis
I've spent two weeks trying to figure out why exactly I am not happy with any of the apps that already exist. What app would I love to use?
Minimalist
The apps I know feel cluttered and overwhelming. There is too much information. I need an app that helps me cut through the noise. An app that shows me the metrics that I need to see instead of showing me everything. Less is more.
Reality-driven
Many apps calculate "fitness", "form" and "fatigue" using models like TSS. For many people, calculated "form" is probably close enough to the real one. I am not one of those people - my calculated metrics often do not correspond to how I feel and perform. I need an app that helps me track the real state of my body.
I've been writing a detailed training journal for years. I log how I feel during and after training. I've noticed many indicators that tell me something about my body and how it reacts to training (little things irritate me and I crave chocolate -> I need an easy week or my performance will go down). I would love to have an app that would let me work with them analytically, correlate them with performance metrics, etc.
For data geeks
I am a data geek so I would like to have an app that lets me play with data - grab the subset I want to focus on, compare it with another subset, create my own charts. Answer questions like… I was doing less volume and more intensity this year - how does my FTP compare to previous years? Did the 6 weeks of doing sprint intervals affect my peak power? Did it affect my climbing ability (tested on my favorite 18% hill I try every month as hard as I can to track my climbing progress)?
Your feedback or help?
I would appreciate any feedback. If you want your own training data analyzed, send me your .fit files - I am starting to write some code and I would love to test it with files from other devices, like a dual-sided power meter (I only have single-sided).
Thank you!
New Pentominoes features
hasPentomino
is only known by the derived state of the painted grid, but if I'm going to bind a hotkey to "add/remove pentomino," I need to know that value at the top level in the provider component. But I also feel like I shouldn't be pushingsetGrid
all around my app, so I kind of want to use at leastuseReducer
for that, but maybe I should be using redux?I'm working on a board game about reconciliation, with the aim of getting a playable prototype finished by the end of the month.
I have done pretty much nothing this last week, but that was mostly expected - I was on holiday! I'm back now, and hopefully this week in the evenings I can bash out a really basic prototype that I can sit down and play and see if my ideas are making sense. I've got these ideas in my head, but right now everything feels very zero-sum, so I'm a bit worried that it's just not going to mechanically work, it feel too boring. But I need to play it once to feel things out.
That said, while on holiday, I ended up in Bosnia-Herzegovina, and unexpectedly ended up having a really interesting conversation with a guy in a mosque there about the conflicts in that region, which kind of worked out as interesting research for the game: we talked a bit about the differences between individual identities (how he as a Bosniak was able to work and study just fine in Serbian or Croatian regions of town), and group identities (how the different ethnic groups would retreat back into their own communities whenever there was conflict and tension). It was interesting seeing in real life a lot of the stuff I've been reading about in the last few weeks.
So from a "I have produced a result" perspective, not a great week, but from a "I have been able to do interesting things with this project" perspective, it's gone quite well!
Arrangement was completed last week, and I'm onto recording now! It's going fairly well so far, I have the drums imported into a VST (MT Power Drumkit) and I have done some slight tweaks to the midi file to get it sounding right vs. the Guitar Pro version. I managed to lay down and double track the electric rhythm guitar section, and half of the leads for the A part of the reels. There is still a lot to do, and as predicted recording is taking the longest time. I've not been able to sneak the extra time from work here and there that I was hoping for either, simply because my recording station and my work station are the same desk, so the context switching is hard.
I may have sourced a real bass guitar that I can borrow to lay down the bass parts, but if not I'll need to find a decent VST that I can use in a pinch. I'd prefer to do the bass properly, but I won't deny that the prospect of using a virtual instrument with midi feels like a big win on the time front! I was meant to do some recording today, but other priorities have taken hold (namely flyering for my band's gig next week), so I might not be able to dedicate any time today as I had intended. That's not too bad though, as I have after-work recording windows on Monday and Thursday this week, so there is a good possibility of making some real progress with those 8-10 hours. And another bonus is that I have gained a bit of time back at the end of the month, so there might be a flurry of activity close to the deadline!
I'm still thoroughly enjoying the process, recording music is a very rewarding process, although it is also very revealing. I think of myself as having a good sense of timing, but it's remarkable how loosey goosey that actually is when I listen back to recordings. That's not so bad in a live situation, but tracking instrument by instrument means that you need to be absolutely locked in. The learning curve is also challenging, simply from a "using the software" perspective. I've been trying to branch out and try different software than I'm used to, so lots of digital amplification for my guitar sounds instead of mic'd amps or loadbox outputs. I'm stretching myself which is good, but you can get extremely lost in crafting the perfect digital tone, and learning all of the software (some of which is limited by trial versions, others that only partially work under wine) is eating into my time as well.
All in all, I'm still feeling very positive about the whole thing, and I am excited for the time I get to put into the project this week :)
Challenge: 4 blog posts in October
I just published the second post, Surfacing request errors when using HTMX. To be honest, it sat a 40% completion the whole week (Baldur's Gate 3 is just too good) and I wrote 60% of it today to meet the Timasomo update deadline.
The good
Ghostwriter is a great markdown editor, that I highly recommend. Having it open in the background reduces the friction to write a paragraph and move on. The one limitation is that I'd like to work on several drafts in parallel, but Ghostwriter only allows to open a single file at a time. This is probably a feature, not a bug ^^
Struggling with how much details to give
I am known to dump too much technical details on people, so this will be a big part of "finding my voice". For this post, I'm experimenting with putting a summary first, then giving details for those who want to dig further. I'd love to get feedback on that approach.
Struggling with making progress daily
The first week, I managed to make progress on the post every workday, giving me a finished post to review and publish on Saturday. This week, I got sucked in BG3 and got over-confident as the post was drafted on the first week. I ended up writing most of it today, and rushing to get to the deadline.
The post I want to publish next week is pretty big, so I'll need better focus. I'll make sure this is the first task I tackle after breakfast. Hopefully, it is easier to build that routine in the morning than in the evening.
Shall I start promoting it?
"Building an audience" is not a high priority for me, but it would be great to have some eyes on these articles. Tomorrow, I'll proofread this blog post again then post it to the
htmx
subreddit.My book, ABC Dictators, is slowly progressing. Most days it's small (and unsatisfying) progress, but it is progress, so I'm trying to focus on that.
The biggest issue I'm having is finishing the resin plates that will be each page, because (and I cannot stress this enough) I hate sanding. Detest it. I spend so much time and energy trying to minimize the amount of sanding/polishing that will be required at the end, that honestly it would probably be quicker to just sand the damn things.... But there's ~75 pieces, and that's a huge ask, so here we are, still fighting to avoid it.
The other thing I'm dreading is digitizing the pages (fun fact: the more layers of resin there are, the blurrier the scans are! Yay! :/). But I might have a photographer friend who's willing to help (I hate photography almost as much as sanding, so I'm real bad at it, especially with the glare and reflection you get with polished resin). But he probably won't have time until November, so now there's a hard cap (kinda) on how far I can get for TiMaSoMo, which is a bummer.
I'd really like to post a couple pics, what's the Tildes preferred (free and not sketchy) method for that?
You can post a link to your images on any image hosting website you want, such as imgur, Flickr, cubeupload, etc.
Just avoid sites that cannot be freely viewed without an app, such as Instagram or Pinterest.
cc: @irren_echo
I’ve been happy with postimages.org as an Imgur alternative.
My project: Chess in Godot
Not much progress this week due to a busy second half of the week, but I did manage to get the rules for all normal moves working before the busy hit! You can now load the starting position and "play" a game (move pieces around in turns limited to pseudolegal moves).
You'll notice I wrote pseudolegal moves - the program still doesn't know about en passant, promotion, or even check yet. The first two shouldn't be that difficult to implement (famous last words) but I expect check is going to be a nightmare due to how complex check situations can get. Fortunately I'm far from the first person to develop a hobby chess engine and the internet is a trove of knowledge.
Onward!
One thing I really want on a chess game is a new take on Battle Chess with retro-modern graphics and, preferably, Mortal Kombat levels of gruesomeness.
Stockfish would be nice but ideally it should be connected to lichess so I can battle-chess with humans.
Maybe that's not at all compatible with your project, but that's my first thought when I see that you're making chess on a full-blown game engine.
Continuing on from last week, but this time I actually got some things on the To Do List done! Was a beautiful day in Texas (finally) so much pleasant work was done while my wife and pupper napped the day away in the hammock just outside my workshop.
First up, prepare thy area for success. A lot of delays and energy is used by having to get up and go looking for tools and parts constantly.
The new brakes are also getting new brake lines, so we'll remove the old flexible line that goes to the calipers while we're in here.
Next up it's time to get the steering bellows that keeps dirt out of the steering rack in place. The wide end of the bellows goes on the big lip in the back while the narrow end is the lip in the foreground. First steal a silicone spatula from the kitchen and put a generous amount inside the bellows just to make a little bit more available to the rack. Don't fill it up as the bellows is going to move in and out like an accordion as you steer and filling it up with an incompressible liquid means it's just going to come out somewhere down the line making a horrible mess or splitting the boot. Throw away the plastic zip ties that you're a little ticked about because all the pictures of the bellows the manufacturer has out there show the proper metal zip ties included. Realize you don't have/can't find any metal zip ties and order them. Now take your greasy hands and the greasy bellows and push it onto the greasy inner tie rod. They make a special tool to make this easy, I don't have the special tool, so I just push, grunt, and cuss at it until it goes on.
Onto the knuckle, clean out any old caked on grease, steal a small paint brush, and apply new grease. Nothing huge here, just enough to keep things nice when you put the front axles in later. Onto the balljoints; these bolt to the knuckle on one side and to the lower suspension arm on the other giving the knuckle a place to pivot so the wheels can turn and you can go around corners. They're held to the suspension arm with a castle nut (named such for obvious reasons) that uses a cotter pin through the threads and the cutouts on the nut to keep it from spinning off when you turn. Should it fall off your wheel will no longer want to point forward, not a great thing.
Time for the outer tie rod, which transmits the steering inputs you make to the knuckle to make the wheel turn, it is also adjustable to make alignment corrections to your front wheels. It's easy enough to install, just needs to be threaded onto the inner tie rod, measured to be the correct length per the manual (295mm from bellows to center), then tightened down. Those of you playing the continuity game will notice a nut missing from the later photos, that's because parts are shared across different cars and it doesn't belong on this one, but I noticed after threading the out tie rod all the way in and had to do it all over.
Attach it to the knuckle, torque to spec, insert the cotter pins, and you're good to go. I'll be doing the latter two steps at a later date because I don't want to torque it down before I have the front shocks in place, which require the front axles in place, which requires the front axle seals to be in place, which requires the installation tool, which requires me to get my 3D printer back up and running to print it because Toyota doesn't make them any longer and they're impossible to find. I could just use the axles to press the seals into place, but I don't want to do so with my new axles and it'd be a pain in the ass. Plus I've got enough people asking me if my printer is running yet that I really should do so, it's on the to-do list of things during/after work.
Then repeat all of that on the other side of the car.
When you're done and realize you're at a bit of a stopping point and trying to ignore a potential crisis, mock up the big brake kit, mark, sand down and deburr the hub centric rings that'll center the VW Golf rotors to your Toyota, then call it a day, shower to get all the grease off, and cuddle on the couch with your wife and watch Bake Off.
So of the list, we're here now:
Finish rear suspension (I need to fabricate rear swaybar endlinks to finish the rear suspension, although that's not a requirement for getting the car on the ground)
Replace all front suspension bushings with polyurethane versions (simple suspension means there's fewer of these than I remembered and I already installed the ones on the lower control arms)
3. Install steering bellows4. Install outer tie rodsReplace transmission seals (two out, one more to go, then install)
Install half shafts
7. Install knuckles9. Install ball jointsInstall larger brake setup with new brackets (from MR2), calipers (from Celica), and rotors (from VW Golf)
Install wheels
Achieve TiMaSoMo goal of putting the Tercel on the ground on it's own wheels, even if only temporarily.
My target was quite conservative; I'm just hoping to compose and record a little bit of.music.
I finally sat down with my music theory references and noodled on an old local song. I live in a bilingual region, and for a moment it reminded me of a popular song in the other local language.
I mapped it out, and the two songs use the corresponding major and minor keys and chords, and have similar little riffs and turnarounds. I've hacked together a medley that straddles languages, and I think I'm on to something.
Writing a short orchestral piece.
Life has resulted in me making zero progress. Darn.
Goals this week are to mostly structure the piece, and write a full section or two. Perhaps not full orchestration just yet but we'll see,
https://github.com/Keep-Calm-And-Code/Island
Text game that isn't a game yet. You can move a cursor around a hex-grid island and build stuff. Here's a video of text: https://ibb.co/ZgzTZK3
Each 2 x 3 cell, the left and right cursor brackets and the information in different parts of the screen are in their own TextWindows, which are attached to a top level TextWindow for rendering. The TextScreen module is an old project of mine, the game stuff is new for TiMaSoMo.
I've been trying to journal as I code and get "stuck". I think I'm still overthinking and overengineering, but definitely much better at getting things done now. I'm quite happy with the tools I have in place and can focus on game rules for the 2nd half of Oct. Anxiety and frustration are less of a problem now, my working memory has been getting better and I have a better handle of my executive function difficulties when writing code.
I want to implement Thing, there's lots of ways to do it. I like doing it in ways that are computationally efficient, easy for me to read and understand, involve creating other useful Things, etc. Many times I find myself wanting to implement Thing in a way that I'm happy with, more than I want Thing itself. I spend a lot of time thinking about what approach balances all the considerations best and it's hard to stop thinking.
One approach that's helped this time: if Thing1, Thing2, Thing3, etc are potentially useful functionality for Thing and more, I just go ahead and write those Things first. Rather than keep thinking about whether they're clutter and a waste of effort, I'd rather stay in momentum and also not sweat too much about deleting stuff later. Having those Things already available will probably be useful for making/testing future Things, or at least help me figure out which Things to work on next. Scrolling through a large module still tends to mess with my working memory, but in many other ways I find dealing with large sections of code less confusing now.
I have the luxury of doing all this because I'm writing code as a hobby instead a living. But I'd like to make more things and enjoy the process of making things more. I've had lots of ideas over the years, but all I have to show for my hobby so far are a bunch of small projects that I don't care much about. It used to be just too slow-going and too frustrating after a project gets too big.
Experienced developers of tildes, I'd love to hear your thoughts and experiences.
Project: Photo Zine
I made some good progress this week: 1. I decided on a theme (and title); 2. I chose the final photos that I'm going to include (giving myself a little wiggle room to add/remove as I'm doing the layout); and 3. I dug into the specs from the printers, and set up page templates for myself. Also figured out the proper export process so that my files will work for the printer.
The title will (most likely) be Overworld Underworld with the theme being the visual contrast between what exists above and what exists below: spatially and metaphorically (hopefully both in each image). It's pretty abstract (for my taste even), but makes more sense when you see the images. It won out over some other ideas I had by virtue of being relatively small in scale. It's a tight 23 images altogether.
It was good to dig into the specs and get that all figured out. I really "should" be using InDesign, but I'm not paying for that. So, good old Photoshop it is. It'll be a slightly convoluted process to get a proper file in the proper colorspace for the printers, but I'm 95% sure that what I'm planning will work so sticking with that.
We had guests until wednesday this week so I didn't get much done. But I did make some progress!
I almost entirely finished the prototype/test piece, which will be a laptop storage area/monitor stand combo. It went pretty well and there were a few things I learned which are going to be important to know for the final piece. I need to glue some felt to the feet and apply a few more coats of wax (which takes 2-3 days to cure so it's pretty slow) but it's basically done apart from that.
The main charging station box is all cut, despite dropping a couple of panels, which landed on their corners and had to be recut to remove the damage. Three of the four sides have been glued/screwed, as has another panel which fits inside. The reason it hasn't been fully assembled is because I need to fit internal drawer runners and it would be extremely fiddly to do with the top part on. I've also cut and glued up four sides of the drawer - the front will be fitted later.
I did slightly mess up with the width of the drawer because I wanted it to fit extremely closely and I cut it about 2mm too wide, which meant I had to sand off a tiny bit from each side. Sadly when doing this to plywood it involves stripping the top - aka marginally nicer wood - layer of the laminate. I do have some cherry veneer left over so I might sand off another 0.6mm from each side and then veneer it, but the slightly gnarly look it has right now is growing on me. It has some wabi sabi, which is always nice.
I am probably going to be more busy with actual work work this week but hopefully will be able to find some time to get a bit more done. I think I should be on track to finish before the end of the month though, unless anything drastic goes wrong (or something dreadful like more paid work arrives!)
Darkroom photomontage project
Well, not much progress this week. I had one hour of darkroom time and revised my technique some.
But, right at the end of the session it hit me like a ton of bricks: I have two enlarges! Using one negative in each would streamline the process and give better results.
I the thought hadn't crossed my mind because my other enlarge can't handle negatives of this size/format. But I realized that since I'm only printing one part of that image, I should be able to make it work.
I've only got one (working) easel, so I'll need to sort that somehow, but hopefully I can rig something up.
Pi powered plant watering
briefly called the robotanist until I found the name was of course taken.
I ordered a handful of relays which I gave up on after
my electronically minded friend showed me all the ways they wouldn’t work. In the end I found a HAT with relays on it that will attach straight to the Pi and simplify things greatly. Drawback is it may be harder to scale. On the positive side the setup works like a dream combined with a 12 V adaptor to power the solenoids.
Unfortunately the solenoids I chose have 1/2” fittings and I am in a metric using country. After visiting some shops over the weekend I was unable to find the exact components I wanted, so I now have an unholy mix of sensible units fittings and US / British stuff. A glue gun also got involved and the end result is a functional affront to all decent people.
Now I’m in the process of modelling the various components to figure out a mounting method for a full test. This part at least is right up my alley so I hope to have a functional prototype by this weekend, but given what’s on at work that may be a little ambitious.
The two parts of my project that worry me right now is how I’ll get a professional looking plumbing setup and the battery. I chose a PiSugar2 Plus and it seems like just about every function (besides supplying power) is broken in some way. I’ve tried several different approaches and at the end of it I cannot get the battery’s clock to stay synced and wake up, let alone reliably tell me how much power it has. I have two of them and two Pis to experiment with, I think they’re just crap but I can’t rule out my inexperience. If anyone has experience with PiSugar please give me your tips!
So! A little late on this but wanted to give an update.
Week 1 was a total wash. Work was crazy, I was tired, and I got absolutely nothing done beyond some brainstorming and research on what kinds of materials and tools I'd need.
Week 2 went better. I got my design sketched and divided based on layers, and I bought the wood I'll be using. I'm going with basswood ply; I've read that it's good for this kind of fine cutting. I need to grab a jigsaw and a couple other tools tomorrow (money was too tight this last week to swing it til payday today), but I'm excited to start actually cutting and making real progress.