Skip to main content

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

Is this out of my scope? (Beginner Dev)

A topic by LilacLemony created 95 days ago Views: 767 Replies: 24
Viewing posts 1 to 7

Hi ya'll! πŸ‘‹πŸ½

I'm very new to game dev and have been working in Godot.  I have no prior coding experience but I'm doing my best to learn and I thought it might be good experience to join this game jam. 

I think my game idea is simple but I'm curious to know if this might be out of my league?

I want to make a game where you're trying to grow a sunflower from a sprout but you have to ward off creatures that would potentially eat it. You do so by clicking on pinwheels (with your mouse) to make them spin, detering the creatures. 

Here's a rough concept "drawing": 

I was thinking of having birds, squirrels and raccoons be the "enemies" of the game and they would come in off screen trying to get to the planter. Depending on which enemy, you have to click certain pinwheels at potentially different velocities to fend them off. The game would be on a timer, which I was thinking would be a day cycle and once the day was complete, the sprout would bloom into a sunflower and you would win. 

Sorry if this post it too long. πŸ˜… But if you don't mind giving your opinion on whether this would be too much for a beginner or not, it would be much appreciated!  Thank you for reading! πŸ’–πŸ’–

Submitted(+1)

I think you could do it. I'd consider going simple on your animations. If you have them hop around "South Park style" it could be pretty simple. Animating the animals to move realistically could be tough being brand new and having a short timeframe. It sounds like fun. If it's something you'd enjoy I'd go for it!

(+1)

This is great to hear! πŸ˜„

And definitely! While I do have some skills in art, animation is a whole nother thing! Lol 

Thank you for your thoughts! πŸ’–

Submitted(+1)

This is a great idea, and you could definitely do it

Thank you!! I'm gonna try! ☺️

Submitted (1 edit)

I would recommend starting super simple with the most important things to get the main idea working and only implementing one "enemy".
If you have time left after that, you can still add more different "enemies".

Yeah, agreed! All 3 critters will be a bonus, but I'll focus on one for now. 🫑 Thanks!

Submitted

damn thats very imaginative, you should go ahead with it

Thank you!! Gonna try my best! πŸ’–

(+1)

Ah... I'm getting a little... defeated haha...

For the past day I've been trying to get the core mechanic of the game to work and I'm afraid I'm just not knowledgeable enough on Godot's terminology quite yet to make sense of things. I've been doing my best to research the issues I run into and have been patching together tutorials to get things "working" so far, but with each action I try to implement I always run into some kind of error. I know it's to be expected as a total newbie but I'm afraid I'm gonna run out of time to make the jam. (Especially considering I've got work for the rest of the week.)

Right now I'm trying to set up a "repelling" effect through a knockback mechanic and I thought I had it all figured out but when I try to run the game it inevitably crashes with this error. 

"Invalid assignment of property or key 'y' with value of type 'int' on a base object of type 'bool'."

(Also I know this is bare bone when it comes to the assets. I just wanted to get the spin mechanic to work first before adding in art because art is my stronger suit and I figured I could get it done quicker. 😭)

How should I proceed guys? Is this something I can figure out within the time frame, or would I be better off trying to collab at this point? Or should I start writing a concession speech? Lol (Jk)

Thoughts appreciated. Thanks for reading! πŸ’–

Submitted (1 edit)

It's hard to tell because I'm only seeing some of the code, but this is quite peculiar. You don't have a Boolean named "motion" do you?

if not, what other parts of the code are you changing/reading motion?

I'm not particularly sure? Boolean is a new term for me so I'm not familar. πŸ˜…

But here's all my code for the squirrel if that helps? (Realizing now I probably should've posted this last night, sorry)

extends CharacterBody2D
const NAME = "Squirrel"
@onready var animation_player: AnimationPlayer = $AnimationPlayer
const SPEED = 80
var motion = Vector2()
var UP = Vector2(0,-1)
var direction= -1
var dir = 1
var gravity = 20
var knockback_dir
var knockback
@onready var ray_cast_left: RayCast2D = $RayCastLeft
@onready var ray_cast_right: RayCast2D = $RayCastRight
func _process(delta):
if is_on_floor():
motion.x += SPEED * direction
if ray_cast_right.is_colliding():
direction = -1
if ray_cast_left.is_colliding():
direction = 1
position.x += direction * SPEED * delta
animation_player.play("walk")
func _physics_process(delta):
if knockback == true:
motion.y = -100
motion.x = 100 * knockback_dir
knockback = false
motion = move_and_slide()
func _on_spinner_knockback() -> void:
var player_dir = get_parent().get_node("Spinner").dir
knockback_dir = player_dir
dir = knockback_dir * -1
knockback = true

And here's my spinner which does the knockback (or is supposed to, haha)

extends CharacterBody2D
@export var animation_player: AnimationPlayer
@onready var spin_attack: Area2D = $"spin attack"
@onready var animation_player_2: AnimationPlayer = $AnimationPlayer2
signal knockback
var knockback_dir = Vector2()
var knockback_wait = 50
var dir = 1
func _input(event):
if Input.is_action_just_pressed("spin attack"):
animation_player_2.play("attack")
for body in $"spin attack".get_overlapping_bodies():
if knockback_wait <= 0 and body.get("NAME") == "Squirrel":
emit_signal("knockback")
knockback_wait = 50
knockback_wait -= 1
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
animation_player.play("Spin")

Submitted (1 edit)

motion = move_and_slide( seems like it's not using a 2d vector but a bool. Stands for boolean which is a value that can be true or false. If motion is a boolean it doesn't have a value motion.y. This would cause motion.y = -100 to cause the error you see. You may need to use velocity.y = -100 instead of motion.y to fix it. 

I am not a Godot expert so please take this suggestion with a grain of salt.

(+1)

Yeah no worries!! 

I'll give this a try later tonight and let you know if it works out! Thank you! πŸ˜„

Submitted

just looked it up, move and slide returns if there was a collision (true or false)
try calling the function without the "motion ="

(+2)

This did fix the error!... but my knockback still isn't working for some reason... Lol.

Submitted(+1)

you are calling move and slide only once (in the knockback function), but you need to call it every frame for it to continuously update

like

func _physics_process(delta):
    move_and_slide()
Submitted

Glad that helped. I think SimulatedGravity has your next step. You need to process the action as long as you have velocity to keep it animating. Consider friction or something similar to slow it over time or it will just continue to be blown away.

Submitted

Try cutting down on scope. The idea is good and could be implemented in a great way, but for now, try having just one type of enemy, and make the assets like art and music very basic. You could download assets online if you credit them.  When i got my game idea, i had a huge scope in mind but i had to cut down on a LOT of stuff. Just make the game really small for now, and you can expand on it in the future after the game jam if you want

Definitely am only working with one enemy for now (which is the squirrel). After work tonight I'm gonna focus solely on art and get that done so I'll have the next couple of days to hopefully figure out the coding. 

Thanks so much for the encouragement. It's really appreciated! πŸ’–

Submitted

Yay!  The nice thing is, if you get the squirrel set up, you can set its script as an enemy.gd (or similar), use @export variables for different attributes like speed and health, and if you want to make another enemy, you can change those export variables in the inspector an voila, new enemy using only one script!

(+2)

Figured I should say something instead of just disappearing out of shame but I've officially been defeated... πŸ˜…

I've spent the past couple of days just battling the code and going to bed frustrated every night. I've come to the conclusion that I just need more knowledge/practice with Godot that I don't currently have to get this done. Regardless, I wanna thank you guys for the encouragement and aid you offered. 

Hopefully in the future I'll be able to complete the game to what I envisioned but for now I've got some studying to do. 

Good luck with the jam ya'll! πŸ’–

Submitted(+1)

It's a good place to give something new a try. Well done on giving it your all

Submitted(+1)

No shame in that - I’m an actual software developer for a job and I’ve lost count of how many game jams I’ve entered but failed to submit anything because I just couldn’t get even the most basic version of my β€œsimple” idea ready in time.

You might want to do some basic programming tutorials. Not spend a huge amount of time on them, you can totally dive into the game dev side pretty early on, but just a super basic introduction to get more familiar with the terminology. The problem you had with the β€œmove_and_slide” is something you might have solved yourself if you knew what the error message was telling you, but if you don’t have that familiarity it’s just a string of scary computer words. Unfortunately I don’t have one to recommend specifically.

For what it’s worth, the idea itself sounds perfect for a beginner doing a first jam. Lots of people go way too ambitious, this is something you can definitely pull off if you get that basic foundation.

(+1)

Gah! Thank you so much for the kind words it means a lot! πŸ’–

I actually ended up starting over with the project and things seemed to be going well but ultimately ended with the same problem of not being able to get the knockback to work properly. (It was able to print knockback but nothing would actually happen...) And as much as I tried to research the error, I found that most of the time I couldn't understand the answers I came across, so I wholeheartedly agree that I need to gain some familiarity with the terminology going further. 

As frustrating as it is to not being able to complete the game, I'm still so hungry to learn. I wanna make something! Although I am gonna take the weekend to rest and reset, lol.