Here's one of mine, planning an April Fool's Day prank of his own.
Zini Thanks. For design docs I've always used TiddlyWikis so far, so html files. What about concept art and assets like music, sound and graphics? Can git handle those as well? Or would they better be stored in some kind of cloud drive? Do you use some kind of task tracking, like a kanban board or similar?
For those of you who work with a team, especially one that's not local, what do you use for collaboration, discussion of design decisions etc.? Do you just put everything in a git project, or do you use something like shared Google Docs, Notion or other tool? Do you meet up through video or voice calls on a regular basis? Or keep the conversation mostly in written form? I found a graphic artist who is interested in working on a project with me and I'm looking for the best way to communicate and exchange files etc. efficiently.
I used your music in my GameJam project, btw. (don't remember the titles I settled on at the moment ... something with monkeys and something with fishbowl, I think
)
https://missylamotte.itch.io/battlegolf
I put the attribution in the credits. Maybe check if this is how you want it. I'm happy to change it otherwise.- In Game kits?
Kenney has some Godot starter kits (for example the FPS one that @Tomcat mentioned).
https://kenney.nl/starter-kits trizZzle Thanks for trying it out and for your feedback. The game jam ran for 9 days (basically a full week plus one extra weekend). That sounds like a lot, but since I work fulltime, I only really had the weekends and about an hour in the evenings. I'm sure, a more experienced Godot user would have gotten more out of it, but as I said, even little things took me an awful long time (for example to get the coordinate calculations right when the camera was zoomed out). I also programmed my very first shader for this project (the black mask that shows when you select a club, leaving only the areas visible where you can hit the shot to with that club).
The winner takes a card from the looser by clicking on it. The card stays in the same place (simply to make better use of the screen real estate), it just changes its color to show that it now belongs to the other player ... the new owner can use it like all their other clubs when playing the next hole. On the last hole taking the club does not make much sense at the moment, because you can't use it. Not sure how I will handle that in the future. As I said, I'm not sure if this game even has a future at this point. It definitely needs better instructions and/or UI hints.
- Best Answerset by bri777
bri777
You can convert your local coordinates (those of the player in your case) to screen coordinates. So you could check in every physics frame if your player is in the bottom quarter.var screen_coord = get_viewport().get_screen_transform() * get_global_transform_with_canvas() * local_pos
Or you could compare your player position with your camera position (taking the zoom, so the scale of your camera node into consideration as well).- Edited
I entered (and completed) my first ever game jam two weeks ago. The theme for the jam was "Use it or lose it" and I created a very simple battlegolf game for it. Due to the time limitations (and because I'm still a complete noob in Godot and simple things sometimes take me much longer than they should), the game is very primitive an barebones at the moment. There are also a few bugs that I'm aware of and probably a whole lot more that I'm not. It's a two player game (sharing a computer, basically just taking turns with the mouse), simply because I did not have time to add the AI for the second player. The golf course only has four holes at the moment (again, because I just ran out of time). So it's a bit of a desaster, but since I already realeased it into the wild by submitting it to the game jam, I thought I'd share it here anyway.
https://missylamotte.itch.io/battlegolf
Not sure if I want to keep working on this in the future or not. There are a lot of things I can imaging doing with it (from the already mentioned AI to network support, more golf clubs to choose from, more golf courses, better graphics, a scoreboard etc.). But I'm not sure if it's worth the effort. The cool thing is that even in this very primitive form, it does have a truly golf-like feeling to it.
- In COGITO
Guess what. I was browsing through my YouTube this morning and your video showed up in my sugestion list. (My YouTube account is on a different mail address to the one I use in this forum, so I don't think it was prompted by me being here ... I watched some other Godot related videos yesterday, so that's probably why the YouTube algorithm brought it up). I watched it while sipping my morning tea. It's very impressive. I can totally imagine using Cogito in the future. Thanks for sharing it.
- Edited
arrayewhy Yes. Make sure the camera is not in the UI CanvasLayer.
Node2D - AnotherNode2D for everything that's effected by your zoom - Camera2D - CanvasLayer for UI - all your UI nodes
There's an explanation here:
https://docs.godotengine.org/en/stable/tutorials/2d/canvas_layers.htmlCanvasLayer should work. At least it did for me. Just make sure that under "Layer" you put it on a layer above 0 (that's where your camera and all your regular nodes live, if you don't explicitly put them into a CanvasLayer of their own).
BlueNomiki
Yes, in a 2D Viewport, you can mix and match Nodes2D and Controls. They will move around with the camera, though (which is something you probably want for your usecase anyway). If you want them to keep their position (like a HUD or a menu), you have to put them into a separate CanvasLayer.36oboes What do you mean by "triggering text"? Where do you want that text to appear? I guess, you could just make a label, enter the text you want to display and make the label invisible until the sprite enters the area. To detect that, you need collision detection. Sprites do not have collision shapes in Godot, so you probably need to make your character (or other moving object that you want to detect) a PhysicsBody2D of some sort, probably a CharacterBody2D. Then you attach a CollisionShape to it. Your Area2D has a body_entered signal, which will trigger, when any PhysicsBody2D enters it. (There is also an area_entered one, so you could also make your sprite another Area2D if that serves your use case more). You can find an introduction to Godot's 2D physics (yes, detecting collisions is part of physics) here:
https://docs.godotengine.org/en/stable/tutorials/physics/physics_introduction.html- Best Answerset by Annoying-Cat
Try moving the whole thing into _physics() instead of _process(). My guess is that that solves the issue.
BlueNomiki
I was thinking just one label (or a small container) and you then just change the position when you display it. You can make it a subnode of the tilemap itself, for example. And then, when the user hovers over a tile, you move it next to the tile and make it visible. Or do you want to display the information all the time, so that it is visible for all tiles at once? In that case, I would create the nodes dynamically, as @systemerror suggested. They are then all technically children of your tilemap (or whereever you want to put them), but they won't show up in your editor, because they are only created in runtime.Yay. It worked. I programmed my first shader. And it was a lot easier than I thought.
Zini If all else fails, I could make a texture for every golf club instead of creating the shape dynamically. But since the textures would need to be pretty huge (and also I'm not certain all the shot lengths for the different clubs will stay the same), I'd rather calculate them on the fly. Programming the shader should be pretty straightforward, if I get my coordinates normalized correctly.
Zini Yeah, but how do I dynamically create the texture? Also, this kind of feels like something that should be done with a shader, but I haven't used shaders in Godot before, so I'm not sure if that's the way to go. I guess I could do s.th. like have a semi-transparent black TextureRec over my complete tilemap and then have a shader that makes all pixels fully transparent that are in the required distance from my ball position.
Give it some time. When I had to learn python for a project at my job, I felt the same. I'm mostly a C++ developer, have been for more than 20 years now, so pythons use of whitespace as a syntactic feature felt very foreign to me. But only a few weeks later I started to love it. It makes code look much neater and way easier to read. Actually, if I could take one feature of python and introduce it to C-like langauges, it would be the indentation system instead of curly brackets for blocks.
You can continue to use ; at the end of your lines, btw. That should not give an error in either python or GDScript.