I am making a game in which the player can draw their own platform similar to line rider but still have it be a standard platformer. Where the player would create custom drawn platform s to jump on to
That should be possible. What part of it is giving you trouble?
I am fairly new to godot so I just am in sure on how to go about it. I tried looking up a tutorial or something similar but couldn’t find anything.
My suggestion would be to do this in steps.
The first thing to do is probably start with a basic platformer with a standard (fixed) level. There’s plenty to learn there, including things like:
- tuning jump physics
- dealing with jumping and the edge of platforms
- making platforms collideable
- physics in general
- health
- pickups
- enemies
Once you have that worked out, you can think about adding things like movable platforms. Once you have movable platforms working, it won’t be much of a lift to get you to your player-drawn platforms.
I wonder how true this is. The SmartShape2D add-on has been in development for years, and all it’s doing is using the editor features to draw shapes. But you’re saying it would be pretty simple to translate this feature into the game. I’d be interested in knowing how you’d do this.
Also, I disagree with this advice in general. Why would you make another generic platformer first, and add your unique killer-feature last. No. You need to make sure you can implement your killer feature first, otherwise there’s no point to any of it.
I understand the very basics of godot. It’s just the system I want to Implement would essentially have players go in a different scene( kinda like a mini game but not really) and draw a line to add a platform or a block a projectile. Similar to scribblenauts but with a more drawn rather than prebuilt structures
I would still start with the prebuilt structures, because the way you add the shapes to the game would be the same, no matter where the shape comes from. This is actually quite easy to do in Godot. Just make a scene, instantiate and add to your tree, and it’s there.
The difficult part in my opinion would be the drawing, and making the drawing into a shape that you can then add to your tree. I don’t know how you’d go about doing that.
There are a variety of ways it could be done. At the simplest, you could draw tiles into a tilemap layer by treating it like an image with really chunky “pixels”; that gives you collision, and can be built easily on top of regular platformer infrastructure without much modification. Tilemaps can have fairly small tiles; you could go down to 2x2 pixel tiles, for instance, to give you fairly smooth lines. The drawable tilemap could be a layer on top of everything else. On the other hand, a tilemap scheme does make it harder to make lines/shapes that move, and erasing/removing individual drawings might be harder unless each drawing was a newly spawned tilemaplayer or the tiles encoded what drawing they were part of.
At the other end of things, you could turn the user’s drawn line into a series of straight line segments. Those could be turned into 2D meshes, and combined with 2D collision nodes as appropriate. With these, they could be full physics objects. You could even potentially detect when the player draws a closed loop and use that to make a solid 2D shape by tessellating it.
There were some games a few years back that experimented with generating 3D models from 2D drawings, including some academic papers about it; unfortunately, I can’t remember the games that used it (they were kind of draw-your-own-pokemon half-game half-tech demo things), and it’s hard to google for now that everyone wants to sell you AI 3D model generation.
At the basic level, though, Line2D
and CapsuleShape2D
cover the bases. Look at the mouse path, split it into line segments, make a Line2D
for each segment, give it a child node to handle collision. Parent them all on a Node2D
you can move/transform/hide/delete as needed.
OP says they’re fairly new to Godot, and was asking for advice for how to start this. Starting with the platformer bits they’re going to need anyways seems like a better strategy than tackling the hardest and most unusual part first. Even if the game is going to be only user-drawn platforms, a lot of the basics of a platforming game are going to be necessary both for the game itself, and for testing the user-drawn platforms.
If you’re an experienced game dev, sure, throw together a tech demo for the feature upfront and see if it works. If you’re relatively new to game dev or Godot, though, it seems like a better strategy to tackle the basics you’re going to need anyways, and work towards building the more complex or unusual parts when you have a better understanding of how it all works.
A lot of hopeful would-be game devs come in with a big vision of the Cool Game they want to make, and then get demoralized and quit when they try to tackle all of it at once (especially the “cool” bits), get lost in the weeds and decide they’re not smart enough. They probably were smart enough, but lacked the experience to choose a good development strategy. When you’re new, you’ve got to start with the basics and work up from there.
If you can, have a look at the Wii game Max and the Magic Marker; it was a platformer where you had a marker with “ink”, and could draw lines you could walk on. The lines became physics objects, so you could do things like make a lever, stand on one end, and drop a scribbled “weight” on the other to launch yourself.
They wind up using the scribbling for a variety of things.
You might want to look into Crayon Physics Deluxe as well.