jmibo's journal

subscribe to this as an atom feed here.


really need to update this more often. i haven't written anything new since (rimshot)

game is going pretty well besides the thing where i need to make content for the game. i've added a system where after optimizing every level for time you can try and optimize for other criteria, and i added gold times for every currently-existing level * criterion combination. the current gold times are probably way too strict though, i'll have people playtest. but it would make sense to have the gold non-time metrics be at least a bit stricter than the gold times because the alternate criteria will probably only be unlocked after getting all or most gold times. i really enjoyed optimizing all of the levels in a bunch of different ways so i'm inclined to think that this is a pretty good mechanic, but i do know that i have bad taste and a lot of things that i find fun other people do not at all. in any case i think the system makes sense because most of the game is about getting an intuition for a specific movement system, and this sort of thing probably helps for that.

people always say that you should always leave your audience wanting more, but i think this is a bad idea. i want my game to have enough things in it to make people tired of my game. but i don't want anyone to feel obligated to play through literally everything in the game, playing every level in depth seven times to get all of the gold ranks with every metric, finding all of the little easter egg things in every level, etc. i'm planning on using a "completion %" system to discourage this. i would count the player as having 100% completion once they've done all of the Main Things in the game -- gotten all the gold times, found all of the secret levels etc. -- and then tell the player how many Other Things they've done in addition without telling them precisely how many Other Things exist. that way it'd hopefully feel fine to stop after seeing the credits, or getting the number to 100% and having seen most of what the game has to offer, or any point afterwards. it's hard for me tot know how well this will work out because i don't know how other people's brains work and i like spinny game much more than the average person. again this is something i'll need playtesting for.

i really need to write some posts for the blog section i'll do it soon i swear

some interesting things:


i've been able to do more work on spinny game, although it's mostly taking the form of menus and the like rather than making more of the actual game. i'm currently stuck on figuring out how to make the "minecart level" mechanic interesting -- there's not much in the way of puzzles that i can do with it. spinny guy can interact with minecart-like objects either via newton's third law or by jumping, but you can't apply a nonzero amount of force total on the thing without falling off. the original level did have an interesting thing where you have to jump on the left side of the minecart when leaving in order to get more velocity and i might be able to do something with that.

the current menu system in spinny game relies on creating each menu via a script -- i have to write one line of code to define each menu item, one line of code to add each menu item to the menu, and a few lines of code to handle each item's behavior. it's not that much of a problem because pretty much every menu has to be dynamic in some way, but it's a little annoying to have to write everything like that. the main problem with my current system though is the system for changing between menus -- a menu scene cannot explicitly tell the main scene to switch to a new menu, and instead i have to do something like this:

  1. the level select script has a signal level_selected(idx).
  2. when the level select scene is loaded, the main scene connects level_selected to some function.
  3. the level select detects that one of the levels has been selected, and emits the signal.
  4. the main scene decides what to do with the signal -- in this case it's to load the "level manager" scene with the proper level.

this means that every time i want to add a new menu scene i have to create a new script and then edit the main script to transition into and out of the scene. supposedly this is bad practice but menus are ugly and i don't see what else i can do. probably Design Patterns has something for this but i don't know if Design Patterns is actually useful

one of the things that i did with the menu was to keep a stack of previously visited scenes, but initially i did it entirely wrong -- in the function to load in the level select for example i pushed the main menu to the history, but this is backwards:

  1. back stack = []. from the main menu, load the level select. add main menu to the back stack
  2. back stack = [main menu]. from the level select, load the level manager. add level select to the back stack
  3. back stack = [main menu, level select]. from the level manager, go back.
  4. back stack = [main menu]. load the level select after popping it from the stack. since we just loaded the level select, add the main menu to the back stack.
  5. back stack = [main menu, main menu]. this is obviously wrong.

i don't know how i managed this. a stack isn't that complicated of a concept. anyways to fix this i added the item *before* loading the scene rather than *while* loading the scene.

i have a ton of things i'd like to write about on the almost-unused blog section of this site, mostly godot things i've learned about from making spinny game like this. but i'm not very good at writing and explaining complex concepts.

interesting things :


hi again everyone ! again nothing has been happening in particular. still making progress on spinny game although it's slower than before now that i have to Actually Design Things. i'd share all the progress but i want some things to remain a surprise -- most of the design work i've been doing on the game has been trying to make it Surprising even to people who have already played the game. i've started asking people to playtest what i have of the game and the results have been really surprising -- turns out the game is Really Hard for most people and the changes i've made haven't helped too much with that. i think i made some thoughtless level design choices that made the levels unnecessarily difficult.

one of the things i've been having the most difficulty with is designing levels to introduce specific simple mechanics -- it's easy to make levels introducing the mechanic of rolling boxes but it's harder to introduce the mechanic of "physics objects existing in the physics-based platformer" or "platforms that only physics objects collide with". what i did before for these kinds of things was to essentially try to design conventional 起承転結 type levels, which failed miserably because i am not a good game designer (and spinny game works better as a puzzle game than a platformer -- even the speedrunning challenges revolve around figuring out how to do a specific thing quickly as opposed to routing etc.). since the levels work best when they're showcasing a specific interaction (you can roll the box! you can roll the box from the side!) it's hard to decide what sort of very basic interaction to showcase for the initial level. (what's the fundamental interaction for scales/seesaws? balancing them? it's hard to make an enjoyable level out of that. using them as slopes to launch off of? that would be important if i were designing large levels, but really it doesn't have much use. etc.)

japanese learning is still going fairly well but somehow i've sort of forgotten to practice speaking at all. my passive vocabulary is fairly good but my active vocabulary is probably like 400 words. or maybe i could usethe Complicated Words but it would take me forever to figure it out. i think in addition to the lack of practice i just don't have enough confidence in my speech, like i can't say a single thing without worrying i'm using the wrong grammar. 「こんにちは」 oh no does 11:40 count as morning. 「元気?」 oh no am i supposed to be saying 「調子はどう?」 instead. 「あ、すみません。日本語をまだペラペラ話せない」 oh no should i have put まだ at the beginning should i have said 日本語をまだペラペラ話せなくてすみません instead. (also i just don't know how to say things a lot of the time. tried to say something like 「一年前くらいから日本語を勉強しています」 instead of 「一年間くらい日本語を勉強しています」 which is what tatoeba likes. apparently i didn't know that you could use lengths of time as adverbs ??). i think the way to solve this is to Talk to Other People but i'm not very good at that in english either.

good things:

oh also i actually put something new on the site! another one of those Games With As Few Mechanics As Possible like left or right and grid puzzle. higher skill ceiling than i expected. enjoy


journal update? more than once a month? it's less likely than you think, because i probably won't continue writing this entry until five or so days later!

i've been making a decent amount of progress on the spinny game remake. i've mostly been focusing on making it easier to make the game--in spinny game to make a level i had to manually scale a bunch of rectangles and would usually have to zoom in really far to get all of the transitions between the rectangles exactly right, but in the new one i just use Line2Ds and use a fancy little script to turn the Line2Ds into collision shapes. this does have approximately 1 problem, though: for some reason if a corner is sharp enough it'll render as beveled even though i specifically told the thing to make all the corners sharp, but this same thing doesn't happen when generating the collision shapes for the lines. it doesn't seem like there's anything to be done about this. seems strange that they would have that feature on the bevel though.

various things as usual:


i've been doing a few things recently. i made a small web thing for making decisions by reducing the number of choices you have, and i've started work most recently on remaking spinny game in godot. it's been going pretty well:

my general plans for the remake are to have mostly the same content (maybe a few bonus levels) but more polished and less bad, which means more consistent menu design, replacing physics with a completely different level, etc. it's likely i'll give up on this project after a few days though.

good things that exist:


i haven't magically become productive with no effort yet, so i don't have much to report on. i haven't been working enough on the New Game outside of opening up the project and then giving up immediately every few days. but i haven't been doing nothing--i've been consistent with my anki reviews, started playing through ace attorney investigations 2 in japanese (game only released in japan so i figured i could use that for Reading Practice), etc. i also started writing a new blog post about ordered dithering for no particular reason, although i haven't worked on it in the past few weeks (should finish that).

i have been doing some smaller projects as well, although they're not very good and i probably won't post them on here.

here are some things i found interesting, as always:


i should probably get into the habit of updating this page more often, only been writing things like once a month.

anyways i did some work on the New Game and i'd probably show a video of the game if (a) i wasn't too lazy to find somewhere to host the video, and (b) the game was any good. i haven't been working on it as often as would probably be a Good Idea. maybe i should get started on that

mostly been focused on reading and listening to things in japanese--most recently that's been taking the form of trying to play deltarune in japanese and making flashcards for all the words i didn't know. which is working pretty well. actually haven't been using anki for the deltarune flashcards just cause it's more convenient to use the "japanese" app i think i talked about--i've been using it to look up the words anyways, and then it's not too much effort just to press a button and put it on a list, instead of having to deal with switching windows to anki and manually writing a definition etc. i've been putting the line from which each word appears for reference as well (although the app does give example sentences for Some words), which is a little tedious cause i have to type the whole line out every time, but i'm sure it would be much more of a pain to like. figure out a way to copy-paste the line directly from the game. anyways this seems like a pretty good way of studying now that i have some basic grammar down. for other reading/listening practice i read NHK easy (which i think i covered in the post), looked at like one youtube video in japanese, tried to watch your name / 君の名は with japanese subtitles (but there are still english subtitles embedded in the video & it's hard not to look at them), and downloaded an anki deck containing every(?) line of dialogue from persona 4 (out of order which is pretty funny--i'm sort of trying to figure out the plot from random lines of dialogue. seems like some Things are Happening and some People Exist, but i haven't figured out everything. also none of the lines are tagged with the names of the characters saying them). hope i will keep the habit of consuming media as well as doing anki etc.

i bought the album knower forever recently, it's really good. actually most of the things by knower and louis cole are great. there are a few really good music videos that you should check out (and do not cost $10!)

apparently i passed 100k anki reviews at some point and didn't notice. oops

will stop rambling now


i've started working at least a bit on the New Game! there's nothing demo-worthy, mostly just a movement controller and a ton of bugs. and the movement controller doesn't even feel good, it's gonna need a lot of balancing & polish for the game to work ok.

as usual, here are a few somewhat-interesting things i found over the month or so i didn't post anything:

hopefully i'll remember to update the music recommendations post at some point, i've been listening to a lot of new music


today-ish is the spinny game 2nd anniversary! unfortunately i am terrible at time management etc. and the update is nowhere near finished. it's not too big of a problem cause probably nobody cares the exact date at which i add a small amount of content to my very bad webgame, although it means i won't get to start work on the other game for a while longer. stay tuned for the 2.somethingth anniversary i guess.

speaking of arbitrary milestones, i've almost reached 100000 reviews on anki! this means literally nothing but i guess i'm making progress on things??

some cool anki stats, i guess

as usual, here are some cool things i found. the journal entry was delayed a bit because i couldn't think of anything to put here before.


haven't been very productive recently, mostly just have been busy with less important things. starting to fall behind on my flashcards a bit but hopefully i'll be able to catch up with em soonish.

some more cool things again, there are only like two of them again:


mostly been working on the larger projects i've described earlier, work on spinny game anniversary update coming soon or never, drafting ideas for new game, etc. there was also a blog post about resources for learning japanese a week or so ago but pretty much nothing else has been going on.

i decided to actually try playing chapter 9 of celeste again and managed to get past the worst room this time! everything past it has been a lot easier but i expect i won't be able to beat the whole chapter (esp. if i try for the moonberry)

some things:


i updated my terrible static site generator to allow for more dynamic rendering via javascript code. this keeps me from having to manually update the projects and blog index pages whenever i add a new project/post, and just makes the thing a lot more versatile. i might publish it to github in case anyone wants to use it, but there are a few obstacles to this: the code is really unclean and has no error handling (if you mess up something in your templates it'll usually spit out some nonsensical error and you can't tell the difference between a bug in your code or a bug in the generator) and the way i made the node files executable depended on where i have the node executable (i have it in /opt/homebrew/bin/node while almost everyone else probably has it somewhere else; i just used a shebang to make the file immediately executable, probably bad practice).

as for actual content on the website, i haven't had too many ideas recently. i want to make another arrow-based game for Playdate to go with the grid puzzle and left or right (maybe i could put all 3 of them in a collection of sorts?) but i haven't had any ideas. i find it really hard to just generate ideas and i haven't been feeling particularly inspired lately. i'll see if i get any new ideas anytime soon.

i feel like a lot of the text in spinny game shouldn't really be there now that i have a website that anyone visits; most of the things in the game were inside jokes & various other things that i don't think fit here. i'll have to reinstall unity at some point and fix all of that. the game probably also deserves a half-hearted update of some sort, maybe some new levels, design improvements (remove the physics level because it sucks and makes the menu look ugly with one extra row with only one level in it, or at least replace it with another level that gets the point across better and is more fun to speedrun). there's also a game i made a long time ago that i didn't put here (might have mentioned it a few times on this journal) which i might end up remaking in godot, but i haven't started on it besides talking with someone who might collaborate on it and it probably Will Not Happen. we'll see.


i've been checking out the bit generations series of gba games and i think they're neat enough to merit sharing here. all of them are fairly minimalist and simple, with really good sound design. they're essentially the kind of games that i want to make.

some less general comments on the games i've played:

i'd recommend checking these games out. (physical copies are really expensive so probably just get roms from wherever)

as for new things i've been making, there hasn't been too much going on. i have some vague ideas but nothing i've been working really hard on.


i still haven't been able to figure out what exactly makes the projects css not work on individual project pages, when the blog posts all work perfectly fine. hugo seems to just be the wrong tool for this site so i've decided to just..make a new static site generator! how hard could it be?

the static site generator i made is fully functioning (although not at all fully featured; the only thing you can do on it is define things and put the things you've defined in pages, but this seems to not be a subset of hugo's functionality, somehow). i haven't converted the site over yet but it shouldn't be too hard.

update: i just switched over! please contact me if i ended up breaking literally everything on the site. the main disadvantage to it is that i can't autogenerate the blog and projects pages, i'll have to manually add each thing once i make it. not too much of a problem.


the theme editor is gonna be deleted rather than just inaccessible because it involves lots of bloat and javascript, especially if i want it to work with the multiple-style thing. if you were using it (unlikely), there are browser plugins such as stylus that let you create custom CSS for any site.

i still need to fix the bug with the CSS where the actual project pages don't have the project styling because hugo is the worst. using a static site generator was probably a good idea as the site got bigger, but ghjgfkdafkqweruqwoefv

UPDATE: the css is being fixed! rather than re-add all the margins i'm just making them more consistent. most vertical margins between elements are the same as the line height, except that the lh unit that i would be using for that is experimental and will take a while to be implemented in all major browsers. instead i just hard-coded a number that's around the same as the default line height for this font on firefox (the default line height varies depending on font because of Typography Things, but i can't find a resource that shows what the formula actually is). i also have some margins as 1ch (the same width as a single character) in cases where other options might not work, e.g. for the textarea elements. the result of this styling is that running text is always aligned to the same lines, but other things will deviate from the fixed line rhythm, which is probably fine for forms etc. i'm quite satisfied with this although i'll have to remember to check back on lh in a while. css is fun.

also might phase out the contact form since nobody uses it. i don't know.


the website has reached 60,000 views! that's a lot. thanks everyone

for some reason i've been worrying about the fact that the views per visitor is barely above 1, which either means that the homepage is just really bad and nobody wants to look at the rest of the site (not good), or people are linking the projects and such (good), or that statistic is just useless. and there's no way for me to get any more detailed analytics data without Google Analytics or some other evil solution.

i probably just shouldn't worry about that sort of thing and be happy that people are seeing my stuff, but just to be safe i'll probably try and make the site look a little less bad. the homepage is a bit of a mess and the reduced top & bottom margins on everything makes stuff inconsistent. maybe i'll just revert that part of the css

there's actually a game i made a while ago that i didn't put on this site because it wasn't very good or finished. but everyone i asked seemed to like it so maybe it's actually good?? if i have any time or motivation i might either open it back up and improve it, or remake it entirely in a game engine that doesn't "failed to load window layout" every two seconds. probably won't though.

also have to update spinny game so that the post-game stuff doesn't suck as much, and probably replace the Physics level with something that does not completely suck in every way possible.

some media i've been consuming:


the grid puzzle now has an html version. i could put it on my projects page but that would require editing multiple pages and such. here's a link, and here's an embed:

update (2023-02-06): i put the thing on projects just now in case people want to play it without scrolling down in the journal.


i made a few games for playdate, you can find them on my itch page (although the set of people who both view this site and have a playdate is probably very small). i might make a web version of the one that isn't left or right because it turned out to be a surprisingly passable game.


here's a free survey! it tests how well people can read words when put through the image crunchifier. i'll post something about the data later, maybe.


happy new year! i haven't updated the site in a while, mostly because i was busy doing nothing at all. hopefully i'll think of something to put on here soon


hugo is really bad at doing what i want it to do. i'm probably using it wrong or something. i just wanted to write raw html without writing as much boilerplate for my headers and such

there's probably a better way to do this, just like making my own library or something. that's a really bad idea actually, someone's probably already made a thing that would be good for what i want

and i suck at coding and trying to make a static site generator sounds like a difficult thing


i've been doing advent of code in rust for the past few days. it's pretty fun. here are my solutions so far, i'll update this whenever a new one exists.

14 13 12 11 10 09 08 07 06 05 04 03 02 01

rust seems to be a pretty good language for these kinds of things, although i'm doing pretty badly in the elegance department. people are solving all of these in like four lines of K code or whatever

speaking of which, i should learn k. seems pretty fun and cool


wow it's been a month since i last updated the journal. just checking in to say that i updated how the themes work on this site! it still needs a lot of work (i've just completely disabled the theme editor while i figure out how to fix it again) but now different sections of the website have different styles! just need to fix up the blog color scheme a bit and maybe make a new one for the journal, and make it compatible with the theme editor. shouldn't be too much but the website will be in a sort of unfinished state before that.

here are two things that i found interesting. there are probably more i'm missing given it's been a month but i just stopped writing em down, i guess.

might post another thing soonish. probably won't. who knows


after 2 weeks of looking on the internet, i've found....2 whole things that were cool enough to share !! maybe my method of internet looking isn't very good for finding interesting things, unfortunately. but they are pretty cool.

probably some other things i've forgotten. i'll probably post again next week becuase this is at least some sort of regularish content for the site

wish i worked on programming things more. it's fun
wish i did more things in general i guess, the last few weeks have been pretty devoid of thing-doing


i haven't updated this site in a month or so. maybe i should get on that. i've been mostly focusing on learning japanese and haven't really had any inspiration lately, but it would be nice to just go and make something. making some sort of generic game would be fun and a nice change of pace from the weird things i usually make, number facts turned out (i think) pretty well despite being a pretty bland concept.

here are some pretty cool things i've coem across while not being productive:

i think i might start sharing more interesting things i find later, so stay tuned i guess? chances are you're never gonna come back to this site again though so that seems like a silly thing to say


as a fun little side project, i decided to port Left or Right to graphing calculators. the framework that i used, the CE C/C++ Toolchain, is really neat and i highly recommend checking it out if you have the specific kind of graphing calculator.


you may have noticed that weeklyish games has not seen any updates for a few weeks so far. because of this i will unlist it until i can actually make a game, for once. might never happen, who knows?


some things have happened. i made a new 'game' in a few minutes, fixed the minimal theme so the code font wouldn't be times new roman, but i still haven't made any weeklyish games. honestly having the page still up is a little bit embarassing. i mainly didn't make any games because i had no ideas, or at least that's what i said to myself. when i tried to brainstorm ideas i came up with like 5 of them, i guess i just don't want to actually do work. but now that i've written the ideas down i might end up actually doing the thing? who knows!


i was worried my site looked bad so i made a theme editor. that means that now if my site looks bad, it's the fault of the user! it has a few preset themes, such as "minimal" (a nice alternative to the default that i considered switching to) and "best" (which has a slightly misleading name). have fun making my site for me! feel free to send over any styles that you're particularly satisfied with.


i'm still not sure whether switching to hugo was a good idea. i can pretty easily switch back if i want but even still it would be a waste of time migrating. time will tell, probably.

i don't have many ideas for content on this site and i've pretty much exhausted all the things i've already made. i might commit to doing a 1-game-a-week thing and just force myself to have ideas, which could work out either really well or terribly. i guess we'll see how it turns out in about a week. i'll set up a page for it and delete it if i give up immediately.


i impulsively decided that a static site generator was a good idea so i wasted a few hours learning hugo and converting my entire site! this was a useless exercise as i barely need any features of an SSG but, i guess it made the blog lower maintenance and, uhh, i don't have to copy paste a bunch of things into the head tag anymore? also there are no good extensions to deal with the front matter highlighting in html. maybe this was a good decision but i'm too angry about bugs to think clearly.


i made a little programming language! it's not very good but it was fun to make. it can do quines really easily and can probably do other things if you believe in yourself.


i've added a few new things to the site again today! the ones that i can think of are:

part of the reason i made the second is because i'm planning a new game soon! it's a rhythm game that's purely about getting into the groove of complex rhythms. polyrhythm notation system might be useful for notating the rhythms and parsing them ingame (rather than painstakingly placing each beat), and since it describes rhythms i can use the grouping functionality to make the on-screen rhythm notations more helpful and intuitive. before i do any of that, though, i need to find some cool music with complex rhythms that i can semi-legally use or make some myself (a really daunting task because i can't really make music that well and just give up immediately all the time). but it might exist in the distant future, and that's...something, i guess?

i've been making new things pretty quickly recently and probably won't be able to keep up this pace for more than a few days. in the meantime you can go and draw some cool circles and maybe check back later when i'll have some other stupid little game for you to play.


been working on this new website and putting some of my little games on it. it's been really nice to work on, even though my workflow consists entirely of copy-pasting things that should be part of each page (or, more recently, VSCode snippets).

cc0 everything on this site is freely available under CC0 1.0 Universal.