A 2D platformer editor (kind of...)

Started by
6 comments, last by Servant of the Lord 10 years, 11 months ago

Hello everyone.

I wrote a little editor to create a platformer level. It's nothing extraordinary in comparison of other projects on this forum that are pure awesomeness, but I still want to ask for feedback about it, as its my first application to actually have a little potential of becoming a finished game and because I'm new to game developing and programming.

This was more of an experiment to test collision detection using lines, as I've never implemented anything regarding collision.

Anyway, enough talk, here's a video.

And here's the download link, if you want to create something: http://www.mediafire.com/?5ho3zzi0nknnknp

The map is tiled. I'm considering getting rid of the tiles and just use objects (like the player object), as I can place them with pixel-perfect precision, contrary to tiles that are fixed in a grid. But for now, I'll stick to tiles, as my priority was to test collision regardless of the map.

Please let me know what you think, and forgive me if this isn't the correct place to post this (I didn't posted it on the beginners forum as I'm not asking for feedback about the code itself).

Cheers.

Advertisement

yes nice. you can keep it like that, only you need to display names rather than numbers in the sprite buttons. you can't give that editor to anybody else than you in this state.

a bit of rebound for the ball ? multiple times I felt that the lack of rebound was disturbing.

what is the plan for the next ?

Very nice! What did you use to record the YouTube video?

You said: "It's nothing extraordinary in comparison of other projects on this forum that are pure awesomeness"

I fully support giving that video the label "pure awesomeness". Congrats on bringing it this far!

You asked for suggestions, so here's a few:

------------------------------

It looks like your workflow could be improved somewhat - that editor may prove a bit tedious to use as-is.

My suggestion would be that when holding SHIFT or CTRL or some other key, and placing nodes, it automatically connects them to the last node placed at the same time.

This way, you can go:

(holding shift) click, click, click, click, click, click.

Instead of:

Switch to node placement, click, click, click, click, click, click

Switch to node connection: (clickity - click), (clickity- click), (clickity- click), (clickity- click), (clickity- click), (clickity- click)

For the same reason, I like placing multiple tiles by clicking and moving the mouse, instead of clicking once per tile.

Another suggestion would be to add spline support in addition to your existing flat-lines.

A third suggestion would be creating placeholders, so you can place a balloon down AND automagically place down the balloon collision lines, so you don't have to make the same collision lines for every single balloon you put down, or the same collision lines for every single tree.

------------------------------

Overall, very nice work! You should create a GameDev.net Journal so we can see your editor and game progress more into even purer awesomeness.

yes nice. you can keep it like that, only you need to display names rather than numbers in the sprite buttons. you can't give that editor to anybody else than you in this state.

a bit of rebound for the ball ? multiple times I felt that the lack of rebound was disturbing.

what is the plan for the next ?

Yeah, using numbers is confusing, but I kept them because the idea is that people modify the images to their liking (the images in the video are just quick drawings I made in MS Paint). But I could add something to let people modify what each button says in a future version or something, because is indeed unconfortable to use numbers.

About the rebound, the ball is just a placeholder for the player character. Indeed it looks weird without rebound, but a player character (let's say, a human) will look weird as well if it bounces after touching the ground or something tongue.png . Still, thanks for the observation, I'll keep it in mind.

And asuming you meant what's next for a new version, I honestly don't know. I made this during summer break, and I'll go back to college this monday, so I won't have time to keep making it. :/

Thanks for your feedback.

Very nice! What did you use to record the YouTube video?

You said: "It's nothing extraordinary in comparison of other projects on this forum that are pure awesomeness"

I fully support giving that video the label "pure awesomeness". Congrats on bringing it this far!

You asked for suggestions, so here's a few:

------------------------------

It looks like your workflow could be improved somewhat - that editor may prove a bit tedious to use as-is.

My suggestion would be that when holding SHIFT or CTRL or some other key, and placing nodes, it automatically connects them to the last node placed at the same time.

This way, you can go:

(holding shift) click, click, click, click, click, click.

Instead of:

Switch to node placement, click, click, click, click, click, click

Switch to node connection: (clickity - click), (clickity- click), (clickity- click), (clickity- click), (clickity- click), (clickity- click)

For the same reason, I like placing multiple tiles by clicking and moving the mouse, instead of clicking once per tile.

Another suggestion would be to add spline support in addition to your existing flat-lines.

A third suggestion would be creating placeholders, so you can place a balloon down AND automagically place down the balloon collision lines, so you don't have to make the same collision lines for every single balloon you put down, or the same collision lines for every single tree.

------------------------------

Overall, very nice work! You should create a GameDev.net Journal so we can see your editor and game progress more into even purer awesomeness.

Thanks for the kind words, I really appreciate them smile.png

To record I used Fraps. The resulting video was quite large so I used Virtual Dub to compress it.

Thanks for your suggestions as well. I know is tedious to use as-is, but I couldn't work on it more due to, like I said, I'm entering college and I want to rest these two days left. I'll try to implement your suggestions in the mean time.

I'm considering getting rid of the tiles for the background and just use sprites, like the player character. That way I can put, let's say, the balloon on any position with pixel-precision instead of being limited to the grid, AND I could make it add the collision line automatically, like you suggested. That would be neat, and would make the editor very flexible and fast.

My ultimate goal, however, is to try to create huge maps efficiently, because I want to make an "open world platformer" to see if it works. The map right know is 100x100 tiles, but I can make it to 10000x10000 easily, "only" consuming like 200 MB of Ram for the map. The problem is, using tiles the editor is very optimized, but if I made the switch to normal sprites, I honestly have no idea of how to make it efficient and keep the memory usage low. But I'll figure it out, hopefully.

I'll consider keeping a journal, thanks, though I prefer using videos for now. There is nothing more motivating that watching your little baby grow tongue.png

Thanks for the feedback and suggestions :)

My ultimate goal, however, is to try to create huge maps efficiently, because I want to make an "open world platformer" to see if it works. The map right know is 100x100 tiles, but I can make it to 10000x10000 easily, "only" consuming like 200 MB of Ram for the map. The problem is, using tiles the editor is very optimized, but if I made the switch to normal sprites, I honestly have no idea of how to make it efficient and keep the memory usage low. But I'll figure it out, hopefully.

That's a very fun problem to solve! I won't give away the answer and ruin the fun (unless you are requesting solutions), but I'll just point out that it can be solved for tiled-maps just as easily as for freely placed sprites, in 1MB of RAM or less (including multiple layers of tiles and full 24 bit color images - so no sacrificing visual appearance).

That's a very fun problem to solve! I won't give away the answer and ruin the fun (unless you are requesting solutions), but I'll just point out that it can be solved for tiled-maps just as easily as for freely placed sprites, in 1MB of RAM or less (including multiple layers of tiles and full 24 bit color images - so no sacrificing visual appearance).

Please don't give away the answer, I want to figure it out myself smile.png. The main reason I started developing this thing is to become better at problem solving. In college, we are just making simple console apps, so making the jump from that to this was huge, and I have learned a lot in the process.

Still, I'm intrigued, and forgive me but I find it hard to believe that I could show a huge map that is made of thousands of sprites using that little amount of memory (unless it was an hyperbole, but still). The only thing I can think of is to split the map into smaller sections (using quadtrees or something) and loading sections as I aproach them, deleting from memory the previous one, but loading on the fly can result in little freezes when passing through a section (a thing I want to avoid) but I'm probably underestimating the power of a CPU; perhaps the loading will be so fast that it will be unnoticeable. Still, I doubt I can do that with only 1 MB. unsure.png

Well, I got 4 full months to think about it before winter break. laugh.png

Cheers.

Hello, I just wanted to show a little update on the editor. No download link because the thing is very unstable, but I made a video (after a lot of tries).

Basically, the differences with the previous video are:

- No grid. The objets can be placed freely on the game space. Man, using tiles was so tedious.

- I -kinda- got the big maps problem (that I was discussing with SOTL) down. I separated the map into sections: each one is saved in a separated "txt" file (I'm not sure if this is good or not, but it was the only thing that occurred to me). So, the editor only loads one section at a time (well, 9 actually...), so I'm keeping the memory usage low. Not "1 MB" low, but definitely lower that in the previous video. Oh, and now I can make maps of virtually any size biggrin.png

- In the previous video, and as SOTL noticed, placing the nodes was very, very tedious. To solve that, I made some changes: the most important one is that now the objects and the nodes are joined together (while in the previous video they were independent), so If I place an object the collision nodes are placed automatically. Also I made a "pattern editor" to modify the nodes of the objects: any change will be updated automatically to all instances of said object. Finally, behold "The Magnet", which is just a little piece of code that conects automatically two objects that are close enough to each other. All those things together save A LOT of time.

I'm very happy with the results biggrin.png.

Thanks for reading.

Excellent job!

This topic is closed to new replies.

Advertisement