Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

"Counterspell" dev log

A topic by BaseCase created May 16, 2024 Views: 378 Replies: 11
Viewing posts 1 to 11
Submitted (1 edit) (+3)

Hey all, looking forward to the jam! I'm new to Lisp but I decided I wanted to finally learn Clojure for real this year after admiring it from afar for a long time. Since my day job is web dev, I figured I'd try to make a browser-based game to limit the unfamiliar stuff to just the language, so I'm going to try using ClojureScript and Reagent to build a word game inspired by the likes of NYT Games and Puzzmo.

Planning to keep short dev log entries in this thread, and I'm also thinking about livestreaming some of my work sessions (although I'm not a regular streamer, so we'll have to see how much of a hassle that is to get going).

Looking forward to starting!


edit to add: decided on a title: "Counterspell". updated thread title to match.

Great. Clojure is an amazing language.

Submitted(+1)

I have no livestreaming experience, but I did a little test stream last night and it seemed to go OK, so I am going to stream all my jam work sessions on Twitch! The plan is 7:30 PM to 9:00 PM CDT each evening of the jam. Feel free to join me if you want a little background noise while working on your own project! http://twitch.tv/basecase

Submitted(+1)

Day 01: Got off to a bit of a stumbling start, as it's my first time using ClojureScript and Reagent, but I ultimately got through my todo list for the evening! I'm generating a grid of random letters and rendering it to the screen. I was hoping to include setting the random seed so I could get random-but-repeatable game boards, but I ran out the clock for the evening and that turns out not as simple as passing an extra arg to rand-nth, so I'll have to figure that out next time.

Submitted(+1)

Day 02: Whew! Got my audio working for my stream today (couldn't figure out microphone for the first stream, so it was just music and no talking). Turns out I am not naturally very good at talking and programming at the same time, so that's taking some getting used to. Project-wise, not quite as much progress tonight as I'd hoped, but still some. Refactored some very goofy state decisions I made yesterday and got some basic interactivity around letter tiles happening. I'm optimistic that by the end of tomorrow's session it's going to look game-ish if you really squint.

Submitted

Day 03: Wasn't able to stream this session because my internet was being flaky, but I was probably more productive as a result.

Got all the rules around tile selection on the game board working tonight, and cleaned up some stuff from yesterday. I managed to get myself into a situation where I was swap!-ing an atom inside the update function of another swap!, and I spent a good bit of time trying to understand why a state update didn't appear to be happening even though the function was obviously being called. Feels like I have a better understanding of atoms now, though, and my stated goal for this jam is learning, so I suppose it was worth it. 

I imagine that once I've gotten a few dozen practice hours in with Clojure{,Script}'s data structures, I'm really going to love them, but I'm definitely having to spend a fair bit of time translating from my old mental model at the moment.

Submitted
Clojure{,Script}'s data structures

Maps. Maps everywhere. :)

Submitted (1 edit)

Day 04: It's starting to look vaguely game-ish! I added a dictionary of words and can check player entries to see if they are real words or not, and then some stuff happens, depending. Spent some time this evening getting tripped up on paredit navigation and some other editor usage stuff, which is good: that means I'm getting practice. I try not to minmax too much with my dev env, but I do like to develop at least some fluency with editing tools for whatever language I'm working in, and knowing how cool the editing facilities are for lisps means I want to keep practicing that.


(huh, no idea why the formatting on this post is going so wild. I'm not putting weird whitespace characters in there...)

Submitted (1 edit)

Day 05: No progress today because I got 15 minutes into my work session and had to go down to the basement due to tornado sirens! Exciting! Hopefully I can make up some time next session.

Submitted(+1)

Day 06: No tornadoes today! It matches my prediction, but good to have actual data to back it up: I am more productive when there is no tornado than when there is one. Tonight I got some truly disgusting animation happening when letter tiles get cleared. I think some of what I'm trying to do (typography, mainly, and if I get to it, sharing features) is easier in the HTML/CSS/DOM events universe that I decided to work in, but some other stuff (position-based and element-size-based animations, animation chaining tied into game state transitions, etc.) would be much easier in a more traditional graphics environment or even like a canvas element. Oh well, I think I got the worst of the maybe-not-the-best-environment-for-it stuff out of the way tonight, and tomorrow will be Clojurey stuff like the scoring algorithm!

Submitted

for real though what is going on with Itch's message board post formatting??

Submitted

Final day: Whew, got it all done! I gotta say, this project reminded me that I like to learn new languages, and I like to do game jams, but I don't know if doing both at the same time is the best idea! I backed myself into quite a few corners during the course of this project. Still, I learned a ton about ClojureScript, and I'm sure it'll be much smoother if I do another project with it. Time to check out other entries!