Journal of Making a Love2D Point and Click Game

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
User avatar
trentdb
Prole
Posts: 7
Joined: Fri Jun 08, 2018 3:38 am

Journal of Making a Love2D Point and Click Game

Post by trentdb »

Since I've been Googling what's in the thread title for the last week, and procrastinating over watching tutorials - going back and forth with myself over whether I can do this - I figure I'll make a step by step log of my progress making a point and click game in Love2D and maybe someone 2,3 years down the line in my position now will benefit from it.

.... Or I will give up by next week and this thread dies a premature death before it's even begun. That's been known to be a habit of mine in the past, too.

Anyway I figure point and click is the best place for me (as a newb to coding in general let alone lua and love) to start. I'm going with the approach that building small things and completing them is just a better habit for my everyday routine than trying for something major and leaving it collecting dust.

As far as I can gather I'm going to need:

- Drawing Animated Sprites for the Characters (managed to make this work in love thanks to a youtube vid tutorial I can post on request)
- Drawing Images for the room backgrounds and static objects (managed to draw the background image and any image - though I'm a little unclear on scaling for screen sizes/minimizing and maximising right now)

- possibly a Navmesh for the setting out the walkable areas for Characters within the Room (not sure if there are better solutions than a navmesh)
- finding out the love function for drawing a line with point of origin to second point so that the Character will walk the shortest path from origin to point b

- Might need Tiling? I want to make a straightforward third person point and click where the character from move from left to right in the room, I don't imagine it ever being more complicated than that, it would be a horizontal static platform for the floor in the room and I don't think it would ever really deviate from this. For example, the game layout of the Red Strings Club is exactly what I'm aiming for (I get that that game was made with Gamemaker and that I should try it with GM2 but call me crazy, Love2D seems more straightforward and rewarding plus the GM2 forum full of complaints about crashing just makes me not want to start something on that engine right now).

-

There are other things I've just barely scratched the surface on thanks to that Sheepolution tutorial posted on here.

Tables, Loops, might need a Collision Map too.

I'm sure there's stuff I've missed out, probably lots of it, so I'd appreciate your help and guidance love forum members. Meanwhile I'll get to cracking on it some more.
User avatar
Tjakka5
Party member
Posts: 243
Joined: Thu Dec 26, 2013 12:17 pm

Re: Journal of Making a Love2D Point and Click Game

Post by Tjakka5 »

I'm not trying to discourage you, but I do want to bring it to your attention that this project is quite ambitious.

From what I understand from your post, this is your first game in Love. Maybe even programming in general, but you seem to know some terms.
In such a case. Taking on such a project can be really tricky if you have not made something simple to start with. The usual projects being Pong, Snake, Etc.

You may be overestimating the capabilties of Love. Not in the sense that it can't do what you describe, but in the sense that it's quite low level. Something like a navmesh doesn't exist, nor is it something you'd use in this case. You'd be overcomplicating by a lot.

Lastly, I suggest you put your focus on the programming, and use placeholder sprites (Maybe even just rectangles) for now, you'll just postpone potential progress otherwise.


Good luck!
User avatar
trentdb
Prole
Posts: 7
Joined: Fri Jun 08, 2018 3:38 am

Re: Journal of Making a Love2D Point and Click Game

Post by trentdb »

Tjakka5 wrote: Fri Jun 08, 2018 9:18 am I'm not trying to discourage you, but I do want to bring it to your attention that this project is quite ambitious.

From what I understand from your post, this is your first game in Love. Maybe even programming in general, but you seem to know some terms.
In such a case. Taking on such a project can be really tricky if you have not made something simple to start with. The usual projects being Pong, Snake, Etc.

You may be overestimating the capabilties of Love. Not in the sense that it can't do what you describe, but in the sense that it's quite low level. Something like a navmesh doesn't exist, nor is it something you'd use in this case. You'd be overcomplicating by a lot.

Lastly, I suggest you put your focus on the programming, and use placeholder sprites (Maybe even just rectangles) for now, you'll just postpone potential progress otherwise.


Good luck!
thank you, and you're probably right.

But this is the best thing I can think of since these are the kind of games I spent hours playing when I was a kid. If I didn't have those memories as fuel I'd probably have give up and quit way before now.

I did actually build a pong game following a tutorial and then build a bouncing balloon game but honestly half the time I do it following tutorials without it really sinking in what I'm doing. I'm putting together parts of a car without really understanding how the engine is turning.

The only way I can think is just to keep applying myself to these tasks until they become familiar and hopefully in my mind I start to remember some kind of structure. And most of all if I could get some kind of proof down, like you said, not necessarily worrying about top notch artwork but just a proof to show anyone that I understand the size of the task on the code side - then it'd show a lot more seriousness if later on I try to get a developer on board.

Ok, good to know navmesh isn't something I'd need to worry about. Can I just get away with rigging my entities to mouse clicks along a room floor? I guess that's good enough for a proof.
User avatar
Tjakka5
Party member
Posts: 243
Joined: Thu Dec 26, 2013 12:17 pm

Re: Journal of Making a Love2D Point and Click Game

Post by Tjakka5 »

It's good that you have a clear goal in mind. Your expectations seem realistic as well, so I think you're all good on that part.

The best advice I can give you is to make sure to act along your skill level.
If you are having trouble implementing something in your game because you just lack the knowledge, don't be afraid to investiage a bit, maybe in a different file. Don't be afraid to play around and learn.

For your navigation, what you described should work just fine. But do remember that we're talking Lua here. So your entities is something you define yourself. The floor is something you define yourself. And it's up to you to make this work like you want.

As a broad example of how that would be implemented:

Code: Select all

local px, py = 0, 0 -- Player position

local fx, fy = 0, 0 -- Floor position
local fw, fh = 640, 320 -- Floor dimensions

local function pointInBox(mx, my, x, y, w, h)
  return mx > x and mx < x + w and my > y and my < y + h
end

function love.mousepressed(button, x, y)
  if pointInBox(x, y, fx, fy, fw, fh) then
    px, py = x, y
  end
end
User avatar
trentdb
Prole
Posts: 7
Joined: Fri Jun 08, 2018 3:38 am

Re: Journal of Making a Love2D Point and Click Game

Post by trentdb »

Tjakka5 wrote: Fri Jun 08, 2018 11:01 am It's good that you have a clear goal in mind. Your expectations seem realistic as well, so I think you're all good on that part.

The best advice I can give you is to make sure to act along your skill level.
If you are having trouble implementing something in your game because you just lack the knowledge, don't be afraid to investiage a bit, maybe in a different file. Don't be afraid to play around and learn.

For your navigation, what you described should work just fine. But do remember that we're talking Lua here. So your entities is something you define yourself. The floor is something you define yourself. And it's up to you to make this work like you want.

As a broad example of how that would be implemented:

Code: Select all

local px, py = 0, 0 -- Player position

local fx, fy = 0, 0 -- Floor position
local fw, fh = 640, 320 -- Floor dimensions

local function pointInBox(mx, my, x, y, w, h)
  return mx > x and mx < x + w and my > y and my < y + h
end

function love.mousepressed(button, x, y)
  if pointInBox(x, y, fx, fy, fw, fh) then
    px, py = x, y
  end
end

Thank you for this, I'm a little out of it today since I went for so many hours yesterday.

Hopefully something of what I soaked in yesterday sinks in later on this evening when I pick it up again. Though I'm starting to think that the simpler thing would just be to try Gamemaker because what I coded yesterday already went too far into doing multiple rooms for just one level, with the computer reacting to the player's movement too. It was actually good fun but getting off the point.
Post Reply

Who is online

Users browsing this forum: No registered users and 27 guests