Sign in

Daniel / Caaz

@caaz.me
3.2K followers 6K following 4.2K 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! ko-fi.com/Caaz

PostsRepliesMedia
Daniel / Caaz @caaz.me · 28/09/2026
No, you don't
ZN Rock track, written by Generative AI.
000
Daniel / Caaz @caaz.me · 23/09/2026
#FallingBlockJam 2026 entry coming along! I've been trying to figure out a good scoring system, and while time feels like the obvious choice, it doesn't feel very good. It's a bit tricky to plan once there's a lot of pieces on the board. #gamedev #feedbackwanted
3518
Daniel / Caaz @caaz.me · 20/09/2026
Day two of #FallingBlockJam 2026 and I think I've got an interesting proof of concept! Trying to match the spaghetti theme with spaghetti code!
1302
Daniel / Caaz @caaz.me · 19/09/2026
Oh yeah that one's awesome I love it! It's definitely a peak of the whole show in terms of ridiculousness
cowboy character who keeps looking goofier every time the episode cuts to him
021
Daniel / Caaz @caaz.me · 15/09/2026
Okay sorry this wasn't supposed to become a thread I accidentally learned more things you're telling me the default property of an input shows up when you hover over it and also updates depending on what it's connected to?!
Image Texture, not connected to anything, shows it's a 3D vector field...Image Texture, showing the field depends on "position" from the geometry, which is much further down the train of nodes ahead of it.
120
Daniel / Caaz @caaz.me · 15/09/2026
Update after messing with some other inputs, I think it's defaulting to "position" which I guess is coming from the geometry at some point. And that just ever so happens to work out perfectly, but only because the pixels in my image match the size of the mesh.
220
Daniel / Caaz @caaz.me · 15/09/2026
Yeah like shaders I could at least make some intuitive sense of. Geometry nodes on the other hand, I'm... not even sure where values are coming from most of the time and it drives me insane. This height map thing broke me today, like where is it mapping pixels to each vertex?!
Geometry nodes height map graph, which I easily cooked up but did not expect it to work without any logic doing the logicing.
130
Daniel / Caaz @caaz.me · 14/09/2026
Been playing around with my terrain rendering shader in Godot (the same one on my pinned post!) Updated it so that the normals can be inferred from the heightmap alone, so now I can use noise textures for world generation! #gamedev #indiedev #shader #godot
1406
Daniel / Caaz @caaz.me · 30/08/2026
Oh way simpler! So in the video you can see the raycasts on the corner of the car, those are used to apply 4 forces on the car, based on the cast distance. Gravity is disabled entirely so long as any of the rays are hitting. This allows me to allow the car to stick to any surface the rays can hit!
extends RigidBody3D
@onready var groundcasts:Array = find_children("RayCast3D*")
@onready var flipray:RayCast3D = find_child("FlipRay")
const FORWARD_SPEED:float = 20
const TARGET_DISTANCE:float = .75

var pid_thrust:Dictionary[StringName,PIDController]

func _ready() -> void:
	for ray:RayCast3D in groundcasts:
		pid_thrust[ray.name] = PIDController.new()
		pid_thrust[ray.name].proportional_gain = 10
		pid_thrust[ray.name].integral_gain = 5
		pid_thrust[ray.name].derivative_gain = .5
		pid_thrust[ray.name].integral_saturation = .05
		pid_thrust[ray.name].output_max = 100
		pid_thrust[ray.name].output_min = -20

func _process(delta: float) -> void:
	var has_gravity = true
	for ray:RayCast3D in groundcasts:
		var distance:float = TARGET_DISTANCE
		if ray.is_colliding():
			has_gravity = false
			distance = ray.global_position.distance_to(ray.get_collision_point())
		var thrust_strength:float = pid_thrust[ray.name].update(distance, TARGET_DISTANCE, delta)
		apply_force(basis.y * thrust_strength, ray.global_position-global_position)
	gravity_scale = 1 if has_gravity else 0
	
	if Input.is_action_pressed("forward_thrust"):
		linear_damp = .5
		apply_central_force(basis.z * FORWARD_SPEED)
	else:
		linear_damp = 2
	if Input.is_action_pressed("turn_right"):
		apply_torque(-basis.y * 3)
	if Input.is_action_pressed("turn_left"):
		apply_torque(basis.y * 3)
		
	if flipray.is_colliding():
		apply_torque(basis.z*100)
010
Daniel / Caaz @caaz.me · 30/08/2026
Anyway here's what it looks like on a track by people who know how to make tracks. Also tuned the camera and floating a bit better #Godot #gamedev #indiedev
4628
Daniel / Caaz @caaz.me · 30/08/2026
Yeah, basically just lerping helps a ton. I'm sure a more polished environment would be a lot more smooth and it could be a little tighter but this feels super cinematic
120
Daniel / Caaz @caaz.me · 30/08/2026
So I started messing around with this idea again for a drift-heavy floating car thing. Spent a bit of time playing around with the feel of it and it's way more controllable than my earlier attempts when learning Godot.
2181
Daniel / Caaz @caaz.me · 23/08/2026
Anyway menus up and here's how it looks in the actual use case!
2163
Daniel / Caaz @caaz.me · 22/08/2026
Well little toddler-proof storybook project coming along fine, I just gotta work out some menus for selecting stories and populate the pages with some data.
1192
Daniel / Caaz @caaz.me · 15/08/2026
Been mocking up games again. I want a cool mix of monster hunter/punch out. On the GBA.
one weird little goblin dude in a big mech, facing off against a fighter dude.
0161
Daniel / Caaz @caaz.me · 13/08/2026
Big shout-out to the porting community also. Been playing celeste and dead cells on this and it plays like a dream. Recently got a godot game of my own ported and I am excited to do some games at gba resolution as a challenge.
Anbernic RG34XX running Celeste!
330
Daniel / Caaz @caaz.me · 14/07/2026
You know what you must do
1k followers confirmed
020
Daniel / Caaz @caaz.me · 28/06/2026
Got spawning Pokemon working! Movesets in! Shinies in! Stats in! Getting the battle ui set up! Fun shaderglass stuff also!
0100
Daniel / Caaz @caaz.me · 26/06/2026
Update on this, I am summoning demons and making pacts to ensure this game fits into a single cart. I hit a bit of a bump getting move + learnset data properly added, as my previous attempt had some big gaps in the data! Now, things should be fine. Using lets go pikachu data for the moves!
Compressed cart results via shrinko8Code/data abomination on one line for compression reasons.
150
Daniel / Caaz @caaz.me · 24/06/2026
I have a palette I created for a game jam game! It was used to mix noir scenes with these vibrant colors of cosmic horror stuff. lospec.com/palette-list...
Godscrown card examples
070
Daniel / Caaz @caaz.me · 07/06/2026
With the right shader settings the trails on objects look exactly how I wanted them to look! The lighting looks a lot smoother too! Pretty neat effect! Also happy pride! #PONGDFECT
3170
Daniel / Caaz @caaz.me · 07/06/2026
Had this bouncing around my head. Little whack a mole zombie style game with a fun perspective. Moon would move to show the time remaining in the level, zombies getting close would deal damage to you. Maybe I'll do this for a halloween jam or something #pixelart #pico-8
2292
Daniel / Caaz @caaz.me · 03/06/2026
I didn't look super closely but I'm pretty sure it's just drawing the circles first and drawing the sprite over it. But also, is this sprite compacted to half size!? @sako.works i must ask why! This is some extra wizardry I did not expect Oh my god the code for this is tiny too
The spritesheet
130
Daniel / Caaz @caaz.me · 01/06/2026
However many you're thinking, probably more. Here's a quick brows of the pico-8 screenshots, most of em are pong, some of em are other projects. This isn't even accounting for the actual screenshots/screen recording folders of other projects.
110
Daniel / Caaz @caaz.me · 31/05/2026
Good news I realized I did my math way wrong here's how it's supposed to look when done correctly
150
Daniel / Caaz @caaz.me · 31/05/2026
Been playing around with some title screen stuff! Who's that pokemon?! Lots of the gameplay scenes are planned out now, and I'm starting to implement them!
150
Daniel / Caaz @caaz.me · 30/05/2026
Yeah, most of the data is formatted in a spreadsheet which pumps out code I copypaste in, then I do some bitpacking to turn that data into binary and store it in the cart. The color table is just reference for code, but most other things look like this
evolution tableitem table
020
Daniel / Caaz @caaz.me · 30/05/2026
Courtesy of @natanmaia95.bsky.social We have Gym Leaders and Trainer sprites! I'm still working out how far I can push the visuals, but right now they're only 1bit sprites. Once I polish up the player sprite, I'll have a better idea if we can add a second color for more detail.
Battle scene, now with koga!
151
Daniel / Caaz @caaz.me · 29/05/2026
I'm planning on making battle and travel seamless, the character will just run forward until they reach the next event! The parallax layers will shift to take up more of the screen when the battle UI isn't there.
180
Daniel / Caaz @caaz.me · 27/05/2026
After trying a few different options, the palette has changed again! Removed a green so that I can guarantee a white regardless of scene. This allows for better contrast with ui elements. The parallax system before was drawing unseen tiles, so I decided to add treetops and not draw over the sky!
130
Daniel / Caaz @caaz.me · 27/05/2026
However, something I've noticed with a lot of noir movies is that the lighting feels very flat, hard shadows, with maybe some rim lighting. There's also some strong contrast on the outfits.
The Dark Corner (1946), some investigator guy.The Dark Corner (1946), the same investigator guy.The Dark Corner (1946), assistant lady, this is Lucille Ball!Impact (1949), guy turning around

This movie is crazy, watch it. It's on youtube! All of these are, actually
110
Daniel / Caaz @caaz.me · 27/05/2026
The game will have to set the palette based on what pokemon are out, hp status, trainer colors, and then finally, the scne itself, which is shared with some of the ui elements. So, a cave scene might feature browns which will be used for the text!
A table of the palette indices and their uses
2110
Daniel / Caaz @caaz.me · 27/05/2026
I've been hard at work implementing the mockup in pico-8 today, this meant I made a tileset and set up parallax scrolling! I also had to plan out the colors really meticulously. A clever eye might've noticed I removed quite a few colors from the mock, compared to previous posts. I had to!
2160
Daniel / Caaz @caaz.me · 27/05/2026
#PKMNDFECT Megathread! I'm going to try to contain all of the project updates in this thread going forward! If you're interested in the project, don't forget to save the post and check back in every now and then. If not, mute the thread! #pico8 #gamedev #pokemon #pixelart
The latest mock-up of PKMN DFECT. It features a Gengar vs Nidorino, and two trainers!
318221
Daniel / Caaz @caaz.me · 26/05/2026
You know what, this didn't take long at all actually. #pokemon #pixelart
0100
Daniel / Caaz @caaz.me · 25/05/2026
#PKMNDFECT Progress update! I've got all the sprites in, and I've wrote up the code for displaying them! Only problem is, now I have to go in and create the palettes manually. Not too terrible to set up though, just gonna need to go through this 150 more times!
1180
Daniel / Caaz @caaz.me · 21/05/2026
Saw this one posted the other day
Tricking Google AI into acting like a search engine
012528
Daniel / Caaz @caaz.me · 21/05/2026
As for the phone, it's a pixel 8. I figured it'd be some weird api nonsense lol. Been a while since I tried android dev though
Various phone details
110
Daniel / Caaz @caaz.me · 20/05/2026
Okay this is really really neat! I noticed the clipboard feature doesn't work. I use this for exporting/importing settings and have some future plans for crazier stuff. Any chance it'd be added in the future? Also the bbs browser shortcut doesn't seem to open up my phone browser.
110
Daniel / Caaz @caaz.me · 20/05/2026
Quick little mock up of #PKMNDFECT for pico-8. Here's hoping I can accomplish this because I think I really like the style I've created here! All the data is there, I just want to do some planning/mocks for gameplay and then I'll jump into the code!
A battle scene featuring the classic Gengar v Nidorino.

I learned recently nightmare got removed as a move, and I'm kind of mad about it. It won't show up in the game I'm making, but here it is anyway.
67911
Daniel / Caaz @caaz.me · 14/05/2026
Speedrunning through these at this point
Growlithe, 8xMankey, 8xDiglett, 8xPoliwag, 8x
030
Daniel / Caaz @caaz.me · 14/05/2026
Ah yes, the Mt.Moon gang is all here
Paras, 8xZubat, 8xJigglypuff, 8xClefairy, 8x
140
Daniel / Caaz @caaz.me · 13/05/2026
Smol beans as far as the eye can see
Vulpix, 8xSandshrew, 8xSpearow, 8xRattata, 8x
140
Daniel / Caaz @caaz.me · 13/05/2026
it's been a lot of progress
Pidgey, 8pxPidgeotto, 12pxOddish, 8pxHaunter, 12px
3101
Daniel / Caaz @caaz.me · 13/05/2026
some progress for today
Nidoran M, 8pxNidoran F, 8pxDratini, 8pxCharizard, 16px
1122
Daniel / Caaz @caaz.me · 12/05/2026
Alright! The data portion of my #pico8 #pokemon game is set! I could be crazy here, but I might actually have enough space to cram the game in with the remaining tokens and characters! Taking requests for what Pokemon you want to see next!
After compressing down the 151 pokemon data, with sword and shield movesets, I've got 1709 / 8192 tokens, 25162 / 65535 characters, and 17626 / 15616 compressed characters.

This means I won't have a .p8.png release, but a .p8 one should be fine.The first spritesheet.The second spritesheet
2111
Daniel / Caaz @caaz.me · 08/05/2026
This week's #FragmentFriday, Tactics RPG! I didn't really have a plan here, but this is again one of my earliest dips into shading, I made the tileset and wanted to make the water edges look nice, and then I figured I could make reflections as well! #godot #gamedev #pixelart
062
Daniel / Caaz @caaz.me · 06/05/2026
Good news, the user no longer has to sit there for ages. I sped up the algorithm by like, not being an idiot.
020
Daniel / Caaz @caaz.me · 04/05/2026
I still have more data to shove into it, but this is what it looks like behind the scenes. I've got code to parse this data into actual, usable tables. That gif is how long it takes to load each pokemon (and only the first few have movesets intact)
gibberish.

This is 151 pokemon displayed as a single cursed string.
130
Daniel / Caaz @caaz.me · 04/05/2026
I have been doing unspeakable things to #pico8 in order to load up the first 151 pokemon with palettes and movesets. #gamedev #pokemon
2252