Working on a personal website/portfolio!
Looks pretty awful right now, but you gotta trust the process…
Log in to leave a comment
Working on a personal website/portfolio!
Looks pretty awful right now, but you gotta trust the process…
Log in to leave a comment
Shipped!
Was fun trying to make something purposefully bad, and also it allowed me to be lazy with CSS styling, which I am genuinely, atrociously bad at, which should lend it some credence as Bad UI (tm). I also flaked out of the Accelerate YSWS very early, so writing this little “Plinko Engine” (engine doing a lot of heavy-lifting there) felt vindicating, like, see, I can do physics, kind of, just don’t drop the ball straight down, but just kidding I hard-coded it so you couldn’t, so I win, actually. Freakin’ owned B-)
But yeah fun short project.
Added a way to release the plinko ball manually, a direction preview, and a way to reroll “holes.”
Also, speaking of, most “holes” are in! Each hole does a specific thing when the plinko ball lands on it, depending on its type.The types are:
Colors (really, the styles in general) are temporary…
It’s probably impossible to actually put a phone number in, but, hey, they did ask for bad UI :-)
Log in to leave a comment
Basic Plinko physics (hand-rolled, this is just an HTML canvas…) The goal is to have holes with numbers at the bottom, and where the ball falls will be the number that is typed >:-D
I also want to do some special/bonus holes too, that would, for example, allow you to type a number, delete a character, start over, etc.
Log in to leave a comment
GameLISP is (mostly) done!
Was nice to learn more about stack-based virtual machines, lexers, and parsing… I’m also even more fascinated by lisps now—elegant little things, and so easy to work with, too! I’m proud of the VM the most, but the little Environment system I cooked up is sort of elegant too…
Hope people enjoy, uh, Pong, just as much as I enjoyed programming everything around it :-P
Done with Pong, so I declare that I’m done with my MVP!
There’s still a lot I’d like to improve, such as adding documentation and making it, y’know, pretty, but I suck at CSS and I’d like to use the documentation generator I’m writing to document this. so those will have to wait. I think this will make a good ship, though: A fully featured programming language and game framework, with a cool game bundled in!!
Now, watch in awe as I totally own my own creation in my own creation! (that’s an awkward sentence…)
Log in to leave a comment
Did mostly internal changes.
In more devloggable news, Pong is on its way to feature completeness! You can currently “win” and “lose,” though, since you control both paddles, it does not really mean anything. Also, “winning” or “losing” looks a lot like freezing the game. That’s because “winning” or “losing” freezes the game. I’ll add a text drawing function next for the score counters and the big “YOU WIN” or “YOU LOSE” end text, which will finally make this a Real Game in a Real Language.
Also, I added an example selector and a credits button, really only for the fonts used (IBM Plex Mono ftw,) though the credits button does not work yet.
Log in to leave a comment
Logic is in place for Pong, and the built-in update and draw callbacks have been implemented!
Performance is very much awful, however, which is to be expected, as I had been more concerned with getting functionality in up to now. I’ll now be mostly busy with profiling and trying to get the VM to run at a reasonable speed (the hard part, since this is all done in JavaScript…)
Please, wish me luck.
(P.S: a fun thing: the callbacks are implemented as a hidden bit of code tacked on to the end of the user’s source code, as you can see in the second picture. I thought that was funny.)
Log in to leave a comment
I CAN WRITE PONG IN MY PROGRAMMING LANGUAGE + GAME FRAMEWORK NOW!
I still have to improve a lot (namely, add PICO-8/Processing/P5.js style init, update and draw functions to fix flicker) but look at this! Simple games can be written using GameLISP!!!
In the next devlog, I hope to add functions, and then, write a full version of Pong, which should help me notice missing features, bugs, etc.
(NOTE: the first video is from an earlier devlog from when my project was bugged out…)
(I wanted to work on my other project, GameLISP, but it’s borked until the website is fixed so, I guess, docgen work :-P)
There’s not much to talk, except that the project is undergoing a restructuring. Rather than one single .md file generating documentation, this will be a slightly more complete solution for projects. It will still, at its core, be a documentation-focused Markdown to HTML converter, but it will also be able to extract documentation from code comments!
It should be relatively simple to write a regex to match a wide variety of comment styles (I’m thinking users will also be able to write their own regexes) with the only problem coming to mind being strings like, for example, "// not a comment", which would get erroneously matched… I’m afraid the users will simply have to Deal With It.
As internal code redesigns are not very visual, have a code screenshot instead
Log in to leave a comment
Further work! We can now parse bold text, italics, strikethrough, code blocks, lists, etc.
I’m thinking I’ll start figuring out some way to automatically generate documentation from the LISP code I’ll be writing for my other project, or some separate file containing function descriptions… Or maybe it’ll just all be markdown. Who knows!
Log in to leave a comment
Split this project from my main one, GameLISP. It’s a basic documentation generator which converts .md files to .html. Currently, headings are working, but the rest won’t be too difficult to do :-D
Here’s the TKinter frontend, and a side-by-side comparison of the original file and the generated one…
Log in to leave a comment
hey there! cool project! is it supposed to be a gui for generating the docs?
Thanks!!! Yes, the GUI is part of it, though the main part is really the doc generator, so I’m not putting a lot of effort into it, haha
Improved function parsing, and started work on documentation! Docs will be generated from a Markdown file using a tiny little python script. A smarter cook would turn that into a separate project to farm cookies, but I have… scruples… and won’t…
… Hey, I just had a great idea!
Log in to leave a comment
Implemented opcodes, and made the VM stack-based!
Previously, the plan was just parsing tokens and evaluating them, but:
Log in to leave a comment
The VM is better now (still can’t see it,) lots of types stuff were worked on (also intangible,) and “let” statements are in (that is, variable declaration! See below for visual proof!) This involved creating a little environment (“Env”) system.
An Env is just a Map which maps identifiers to values. The evaluator keeps a stack of these (currently arbitrarily capped to 256 Envs,) that, when we need to set or get a variable, is traversed to find it. The global Env contains stuff like types, global functions, etc., and sits on the bottom of the stack. As, for example, functions get called, Envs get pushed in, acting like local scopes, and popped out when no longer needed… it’s pretty nice.
Log in to leave a comment
Worked a bit on the frontend! Also did some backend stuff, such as some light tweaks to the evaluator and initial implementation of the VM, but you can’t see that…
…what? No, I mean, like, literally you can’t see it. It’s just code.
Log in to leave a comment
I have the basic lexer (source code to tokens converter,) as well as the basic skeleton for the expression evaluator working!
I have also written a fairly comprehensive spec, which should expedite development (normally I just freestyle things…)
Log in to leave a comment