It feels good to come back to this!
That's a very good proposal. It reminds me of a companion of Rod who is a photgrapher for the local newspaper.
After thinking about it, though, I kinda don't mind Rod using a gun eventhough it goes against his full-written character. I think it would be cooler for the game if he uses a gun.
Do you have any preferences on this matter? Because I do like the innovative side of Stringer. I could honestly go both ways 😉
Oh, and I just found this spritesheet I made last year for Rod in the devolution style. I just got the idea that it could be useful for this project.
As we are both very familiarized with the style maybe we can make the whole game with this artstyle, if it's not to late. What do you think?
He could use a gun as a sort of bonus, like the hammer in Donkey Kong:
I like the idea of the gun being a temporary weapon to escape a bad situation, or a permanent weapon but with a very limited number of bullets. The gameplay in Stringer, where you avoid enemies, feels very arcade and robust, just like Pac-Man or the Bugs Bunny Crazy Castle series.
As for the Devolution style, I’ll be honest: I’m not fond of it. Your sprite is excellent, but I’ve seen this style far too many times. It feels like "yet another mod" to me, which isn’t appealing. The last sprite you showed me was the perfect size for clean animations, like the much-needed “open door.” But I admit, animating it is more complicated than Dev’s simple flip-flop walk animation.
Since this needs testing, what I can do is scale up the Baston sprite that’s already in the project to match the size of your last sprite. That way, we can see how it feels and plays, which is the most important part of a game. Then we can adapt the size of the bricks, and add a door object. With that, we can already prototype the game:
The goal of this first demo would be to find the right door. It’s not a very fun game yet, but it’ll allow us to lock in the fundamentals: the character’s speed, jumps (if any), stairs, ladders, or elevators. We’ll also figure out the level size needed for good variety. The basic stuff.
This will help define the final sprite size for Rod.
Then we can add an enemy and repeat the same loop 🫡
I really like the idea of the gun being permanent but with very few bullets throughout the game. I also really like the idea of Rod having to avoid enemies for most of the game, it makes it feel more detective-esc, and if you think it would help the gameplay I'm down for it!
About the devolution style, don't worry about it, I get it. We can continue with this new style. It shouldn't be much harder to handle, it's a very small sprite still 😆
Let's work with the Baston sprite for now then. When we get a proper feel of what the sprite size should be, if you make a list, I can manage the animations needed for these early stages.
You'll send these prototypes to me via dropbox, right? And I'd have to open them in Godot?
First things first: update your version of Godot, since it's been a while since we started this project.
For Dropbox, any file changed inside the rod folder is also changed in the collaborators' folders. So if you're not sure what you're doing, just make a copy of the project first. Then, once you're happy with your changes, move the files to Dropbox.
I made a copy of the Rod sprite sheet and upscaled it to 120% to match the other sprite. It looks like crap, but at least we have something to start working with 😅
Apart from replacing the player's Sprite2D texture with the new one, I didn’t change the collision shape — the 2 extra pixels in height don't really matter at this point.
I'm going to create a door object to get back into Godot.
It’s a bit hard to get back into Godot when I don’t have much experience with it… 😄
The code structure isn’t really what I’m used to. But I have to admit, Godot handles all the complicated stuff like drawing, animating, and collision really well.
So, I added a door object made from an Area2D node.
It contains a Sprite2D with two frames: door closed and door open. We’ll see about proper animation later on.
It also includes a CollisionShape2D so we can detect collisions between the door and the player.
Lastly, I added the door object to a group called "door".
Then I dropped a few doors into our test level.
Now onto the player:
I had to add an Area2D, just like for the door, so the player can detect collisions with the doors.
For its CollisionShape2D, I simply duplicated the existing one used for colliding with the tilemap.
Here are the modifications I made to the player’s script:
In the main loop, we check if the player is pressing up while standing on the floor:
# Handle Player opening door
if Input.is_action_just_pressed("ui_up") and is_on_floor():
open_door()
Then, we check if the player’s collision shape overlaps any object in the "door" group. If it does, we toggle the door’s frame between 0 (closed) and 1 (open):
# Test is the player is over a door
func open_door():
for area in detector_area.get_overlapping_areas():
if area.is_in_group("door"):
var sprite = area.get_node_or_null("Sprite2D")
if sprite:
sprite.frame = 1 if sprite.frame == 0 else
Later, I’ll add this code inside the door object itself so it can handle its state and animation internally, instead of being controlled directly by the player.
And with that, you can already move around, jump, collide with the level, and open or close doors 😎
I spent 5 minutes on this over my morning coffee:
The only “difficulty” was remembering that a sprite sheet’s size must be a multiple of 2. Otherwise, it won’t be centered properly.