Daniel / Caaz
@caaz.me
2.2K followers 4.8K following 2.3K posts
Web & Game Developer, 3D Modeler, Bug Smasher. I could use some help! If you're in need of a Godot Developer or a Web Developer, I'm looking for a job! https://ko-fi.com/Caaz
Posts Media Videos Starter Packs
Pinned
Hey! I go by Caaz, you may remember me from tumblr and twitter.

I'll be sharing various nonsense containing but not limited to
- Blender Modeling, Texturing
- Godot Shaders
- Web Development, Django/Python mostly
- Pico-8
- 3D Printing

Into the same stuff? Make my feed interesting #promosky
Baaah it's just the easiest go-to shader trick to use lol. I didn't want to get too in the weeds for effects just yet
Day... 7? of #CosmicHorrorsJam! I've been hard at work adjusting this game's balance to ensure it's engaging enough to play! Each role now has their own deck of action, and those actions can have additional effects! I've gotta figure out UI for explaining those effects now...

#indiegamedev
er, match statement, whatever similar thing
Oh, you can do this without the switch statement!
Something like this, using .get, you can also provide a fallback value if it can't find the key.
var string:String = "Common"
var enum_value:Rarity = Rarity.get(string.to_upper())
assert_eq(enum_value, Rarity.COMMON)
Every now and then I do something and think "wait a minute, am I an artist?" which never happened a year ago.

#indiegame #gamedev #art #noir #godscrown
New York City pixel art, showing the night sky over buildings in a noir style.
Yeah! David Brevik did a talk once and briefly went over that bit, real interesting
'Diablo': A Classic Game Postmortem
YouTube video by Game Developers Conference
youtu.be
Reposted by Daniel / Caaz
Today is my Blueskyiversary!

Here's how far #HighwayNoir has come in that time (sudden volume at 5 seconds, music by @marinahascoffee.bsky.social)

Thank you to everyone who has engaged with me. You've made this site what it is and I'm grateful to learn what positivity it's possible to find online
It's okay I'm absolutely positive you have me way beat on car stuff... I don't even understand what's going on in my old car project at all these days. I'd have to rebuild it if I ever wanted to do it again lmao.

But yeah! I'm gonna have to lean harder into the cosmic horror stuff for sure though
Oh you wanna learn about my lord and savior await?!

Check out the main gameplay loop, it nearly boils down to the actual rules of the game! Also the fact that I can capture it on one screen is kinda crazy too. The rest of the game is just signals to make the UI animate and such.
## Starts the game with a human player set to a role
func start(player_role:Role):
	var player = Human.new()
	player.role = player_role
	add_player(player)
	add_bot_players()
	
	# Play turns until someone wins
	while true:
		# Select a new horror for this turn
		horror = Resources.horrors.pick_random()
		# Get the losing player of this turn
		var loser:Player = await turn(players)
		# give them the horror
		var should_die:bool = loser.add_horror(horror)
		
		if should_die:
			players.erase(loser)
	
		if players.size() == 1:
			break
	
	game_won.emit(players[0])

## Returns the player with the lowest score
func turn(_selected_players:Array = []) -> Player:
	var chosen_actions:Dictionary[Player, Action]
	var score_buckets:Dictionary[int, Array]
	# Dim any players not playing this turn
	for panel:CharacterPanel in player_container.get_children():
		panel.active = panel.player in _selected_players
	# Have all players select their action, and score them
	for player in _selected_players:
		@warning_ignore("redundant_await")
		var action:Action = await player.choose_action()
		player.hand.erase(action)
		chosen_actions[player] = action
		player.hand.append(Resources.actions.pick_random())
		
		var score:int = action.value
		if player.role.weakness == horror.type:
			score -= 1
		if player.role.resistance == horror.type:
			score += 1
		
		if not score_buckets.has(score):
			score_buckets.set(score, [])
		
		score_buckets[score].append(player)
	# Sort all scores
	var scores:Array[int] = score_buckets.keys()
	scores.sort()
	# check for ties, if so, do another turn with just the tied players
	var tied_players:Array = score_buckets.get(scores[0])
	if tied_players.size() > 1:
		return await turn(tied_players)
	# If there's no ties, return the lowest scoring player.
	return tied_players[0]
Day 4 of #CosmicHorrorsJam and I've got gameplay! And a name! Godscrown! This has been incredibly quick to develop thanks to Godot's coroutine and signal stuff!

#indiegamedev #cardgame #screenshotsaturday #yesiknowimadaylate #godot #art
oh you beat me lmao I didn't see this tucked away
This is actually from the game design/pitch document of Diablo! www.graybeardgames.com/download/dia...

I was just reading over this the other day!
A fuller image of the dungeon from OP
I've never used SpriteFrames before, so I looked into it and you're right, there's no keybinds for those feature or buttons for it. Might be a good proposal to put down, doesn't seem like there's any existing proposals for either of these features.
godotengine/godot-proposals
Godot Improvement Proposals (GIPs). Contribute to godotengine/godot-proposals development by creating an account on GitHub.
github.com
Juciest game I've seen in years wow
meet the bockman

he got sword, he got grace

#gamedev #indiedev
Yeah totally aaaand as-is the current ruleset would totally work in paper fine sooooo hell now this sounds like a fun thing to at least offer on release aaaaaaa
it used to be a little fancier but I limited the palette a bit further. But anyway I donno, maybe. I did wind up making them very close to the standard card size (off by like, a pixel for mirroring purposes) so technically I could print these out as actual cards which might be neat.
Original Eternal Twilight art
Day 3 of #CosmicHorrorsJam and I'm having a blast drawing some cosmic horrors!

There's 20 cards in the horror deck, and I've done 6 so far, I feel like I'm on a reasonable pace!

I spent most of Day 2 writing up descriptions for these cards so today is just bringing them into reality! #gamedev
Six cards displayed, Eternal Twilight, The Truth, Grasping Smog, The Birds, Maddening Device, and Spatial Spirits.
Personally though I don't think I've ever really vetted any addon I've used to see if they're AI written. I would prefer that it's not though. I don't use autocomplete (Just cause it interrupts my thinking quite a bit) and I wouldn't use AI for code of any kind.
I think if you were so against genAI as to care about that type of thing, you could write your own. This isn't terribly uncommon among some companies I've worked with, where most code was done in house to prevent third party shenanigans.
Crazy cool and ridiculously simple? Gotta be a game changer for so many people
Ahhhh I didn't expect it to be this cute! I messed around with Line2D more and turns out it's the most underrated node in the entire Godot engine! #indiegamedev #gamedev #godot #cozygame
Thanks! Yeah this is like the first time I've entered a jam with like an entire actual idea so it's been really smooth sailing -- but everything here right now is mostly mock up, there's barely anything hooked up except for some mouse hover to read card effects
Oh yeah, I've been working on a tool to make building a palette as simple as possible. It's taught me a lot of stuff about colors so far, but limited palette still feels real difficult for me. I think right now my current game makes use of probably like 20 colors or so and most of it is grayscale
Alright #ScreeenshotSaturday I'm bringing my palette builder! Saving, Loading, Base colors, a UI overhaul, and exporting the palette as an image! I'm really close to feature complete! But I've got a few things to work out and I've got to rework saving, loading, and exporting for the web build.
yeah that'd probably totally work. I kinda like this 4 color style, really reminiscent of older stuff like gameboy. I've never tried doing anything like that
Day 1 of #CosmicHorrorsJam down! As I wind down from here, I'll be writing up some technical documentation to figure out how exactly I want this game to be structured. it's mostly been art so far and I'm going for a film noir, art deco style! #gamejam #indiedev #gamedev
A card game showing a card back depicting some kind of three eyed skull with tentacles wearing a crown, some cards played, and three characters, a scientist, detective, and cultist. Each have three stats... but it's unclear what those represent, for now. They also each have three cards. a popover shows card effects when hovering over a card played.