Help a newbie start a platformer?

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
therighttoarmbears
Prole
Posts: 3
Joined: Mon Sep 14, 2015 1:53 pm

Help a newbie start a platformer?

Post by therighttoarmbears »

Hello everybody!
Newbie to Löve here, and pretty rusty at programming (studied CS as an undergrad, haven't really written anything in 10 years, mostly used C++ and Python then). But, looking for a creative hobby and thought this would be fun! Trying to put together a platformer engine sort of thing to mess about with to learn some of the ropes, but having a little trouble getting started. I looked at this (http://www.headchant.com/2012/01/06/tut ... ve-part-1/) tutorial, and it looks right up my alley, but it's using Tiled and ATL, and it looks like ATL is no longer supported, and so I don't really wanna follow that one. Was reading that STI is better and still actively developed, so figured I'd give that a go. There doesn't seem to be much newbie friendly documentation or tutorials for that one, however (that I was able to find, anyway). For example, I couldn't even figure out where to put the files or how to invoke it with a map or even how I can "require sti" when there's no file named "sti.lua" or anything (did I mention I'm a total noob?).

So, now I'm kicking this out there to the community - what do I do if I wanna build an engine that makes it relatively easy to make maps and have a platformer with a little sprite person jumping all over the place? I thought about just scratching it and building my own map editor for the sake of knowledge, which would be fun, but it's hard to pass up robust powerful resources that make life easier. Plus, I made it through the tilemap tutorial listed on the main löve site and understand it pretty well, I just think that one might be a little cumbersome for quickly banging out maps when I have ideas (it's really nice to have a visual drag & drop editor). And, I'd sort of like to focus more of my learning energy right now on learning a physics library and how to make objects interact as that'd feel more gratifying right now, for whatever reason. Speaking of which, what physics library is the right one to use when building a platformer that may or may not have a bunch of projectiles whizzing about? I definitely don't want to build that myself, as someone has likely done that better than I ever could. Where do I go from here? Any ideas?
User avatar
Jeeper
Party member
Posts: 611
Joined: Tue Mar 12, 2013 7:11 pm
Contact:

Re: Help a newbie start a platformer?

Post by Jeeper »

It is very late (4am) so I will only answer one of your questions before going to bed :D
how can I "require sti" when there's no file named "sti.lua" or anything
You require the folder, so as long as you have a folder named "sti" with all of the files that are needed (that come with the library) you are good to go.
User avatar
MadByte
Party member
Posts: 533
Joined: Fri May 03, 2013 6:42 pm
Location: Braunschweig, Germany

Re: Help a newbie start a platformer?

Post by MadByte »

You can visit the Github page to get more informations on how to use it.
https://github.com/karai17/Simple-Tiled-Implementation
Speaking of which, what physics library is the right one to use when building a platformer that may or may not have a bunch of projectiles whizzing about? I definitely don't want to build that myself, as someone has likely done that better than I ever could. Where do I go from here? Any ideas?
I'm not really used to it myself but LÖVE has it's own phyics module, its based on a popular one called "Box2D".
https://love2d.org/wiki/love.physics

If you're heading for a basic platformer game, you could totally code the stuff on your own. Or you use a library like BUMP.
https://github.com/kikito/bump.lua
therighttoarmbears
Prole
Posts: 3
Joined: Mon Sep 14, 2015 1:53 pm

Re: Help a newbie start a platformer?

Post by therighttoarmbears »

Thanks for the help! I'll look into those things mentioned and retry STI later today!
User avatar
Doctory
Party member
Posts: 441
Joined: Fri Dec 27, 2013 4:53 pm

Re: Help a newbie start a platformer?

Post by Doctory »

By the way, any sort of help-related question should go to support & development
therighttoarmbears
Prole
Posts: 3
Joined: Mon Sep 14, 2015 1:53 pm

Re: Help a newbie start a platformer?

Post by therighttoarmbears »

Oh, my apologies. I didn't realize. It'll be in the right spot next time :)
User avatar
NightKawata
Party member
Posts: 294
Joined: Tue Jan 01, 2013 9:18 pm
Location: Cyberspace, Room 6502
Contact:

Re: Help a newbie start a platformer?

Post by NightKawata »

Jeeper wrote:It is very late (4am) so I will only answer one of your questions before going to bed :D
how can I "require sti" when there's no file named "sti.lua" or anything
You require the folder, so as long as you have a folder named "sti" with all of the files that are needed (that come with the library) you are good to go.
I'll start by mentioning Jeeper's quote.
To give you some fun trivia: The reason this works is because the STI folder has an "init.lua" file. When you go requiring an entire folder, it'll look for an init.lua file, which is super awesome when done well.

STI is most certainly usable, I've used it a number of times for Metanet Hunter SE, and the current Metanet Hunter Neon.
For platformer guys, I'm at least a guy who makes them here. I'm not the best or anything, I don't claim to be, I don't need to be, and I'm aware of that!

As for starting one, I will recommend one library to you that you really should go for if you want to get up and running quickly:
https://github.com/kikito/bump.lua

I want to give a shout out to kikito. The library contains a plethora of relevant functions for it, a lot of useful functions for general use as well, is generally bug-free from my experiences, and the only thing it can't really do are slopes or rotated stuff. However, I don't care about that and don't really get that much from having slopes in my current project, generally they're a pain in the ass no matter what, etc. If someone tells you slopes are super easy, they're lying to you. Granted, they're not the most difficult thing in the world, but I'm not one of those guys who absolutely wub wubs slopes. Anyhoo, if you want slopes and complex shapes if you're feeling super ambitious:

http://vrld.github.io/HardonCollider/

This is then the way to go if you're up for the challenge. I have no good experience with this, I have not used it, therefore I cannot fully recommend it simply from lack of relevant use cases. It is maintained by vrld, who also made hump and the like, which means good things! Try this one out if you wish.

I haven't ever used Fizz X or Fizz or anything like that, so I can't say anything on those, heh.
HOWEVER, I will give an absolute shout out to kikito for bump.

It's bump-tastic. You'll want to do the bump with friends after using it. It's like wearing a premium condom: You know it's going to get the job done. I am entirely biased towards it. While it's not perfect, it's damn near close. If there's a part you don't understand, he has plenty of relevant examples pertaining to it on that same page, therefore I don't believe you'll have that many problems if you're persistent.

I also cannot recommend Box2D for first-time projects. The wiki says it's a ten-ton hammer, and that's true. Be prepared for more work if you're going for that at some point. It will not hold your hand. It will not warn you when it wants to sodomize you. It will come after you at random times in the middle of the night. But on a serious note, it's really not that... rapey, but I would not recommend it for a first-time project because I think your concern should be for finishing a project rather than making a great engine.

Make a great game as a priority. You can have the best engine in the world, but it won't shine without a great game, anyways. I can easily say just do what works for you. That's the best way to go about it. You may enjoy Hardoncollider, you may enjoy pure Box2D, you may enjoy building a physics engine from scratch. It's all dependant on what you want to do.

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

That should answer the physics engine questions, I hope!
For other stuff to take a look at if you want to make your life easier or if you want to learn new stuff:

* Tweening is a wonderful tool. (Ab)use it.
* Behavior trees can be very nifty if used properly!
* Try to learn about ECS as soon as you can, it's generally really useful for game programming. This isn't extremely high on the list of things to do, but it's nice to learn as you gain experience.

The best advice I can give you for making great games:

* Do NOT give up. A winner never quits, and a quitter never wins. Persistence is a very vital trait to have for game development.
* Never try to be too ambitious. Ambition is fine, but don't go crazy or you may lose focus, you may lose persistence, et al.
* What I mean by that last point is to try not to bite what you can't chew. You'll get sharper teeth soon enough!
* Keep making games. Even if your first project doesn't go that great, that's fine. Don't give up. If you aren't satisfied with your first project, make another one! More experience is always great in game development.
* Meditation is a wonderful thing. Mediate often for best results. It's one of the best disciplines you can practice.
* When you have a big problem (it WILL happen, it happens to everybody), and you can't solve it after trying too long: Give it five minutes. Take a break. Eat some food, grab a drink or the like, play some video games to take your mind off of things, but most importantly, come back to it. Once you do, it'll be easier to solve the issue.
* Premature optimization is horrible. Don't do that until you need to most of the time, or you're dealing with embedded systems. LOVE's target platforms generally don't consist of embedded systems, take that as you will...?
* Stay fresh. Stay mighty.

This is what I can tell you to be a great developer. There is no winning formula. But if you adhere to those philosophies, all is good!
The most important one is definitely to never give up. I cannot stress how important that is.

Platformers aren't the easiest thing to master (nor the most difficult), but they're certainly achievable. Just remember to make one that's fun to make, and fun to play! Those are the best ones.
Shit, I've made plenty:

Image
August 4th, 2013
Image
June 30th, 2014
Image
August 8th, 2014
Image
TBA Q4 2015 or Q1 2016

I'm not trying to shamelessly advertise (I really can't recommend any of those besides potentially SE), those are mere proof of work.

I'm no great developer myself, and I probably won't be, so you probably won't take what I say into consideration.
Just remember to do you. Just be you.

Now go be mighty! I hope you learned a few things today. About 80% of this post wasn't what you asked for, but hopefully 10% of it is helpful to you in general. LOVE needs some more love! Add to it! Make love!

:emo:
"I view Python for game usage about the same as going fishing with a stick of dynamite. It will do the job but it's big, noisy, you'll probably get soaking wet and you've still got to get the damn fish out of the water." -taylor
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 3 guests