I'm starting my next learning curve and thought I'd reach out for collaborators happy to work with github tasks/issues.
I'm thinking old school lunar lander. A retro 2d game that looks a bit like this:
Game play will be beautiful in it's simplicity. Just three keys - rotate left, rotate right and thrust. The traditional game requires you to spawn above the surface and you land gracefully as you fight gravity. I'm thinking something more interesting - you start on the surface and you need to fly above and across the surface to the next "base". You get points and then upgrade your lander. A side-scrolling game I guess.
Here is a concept:
When you land at the next base you get points. Or money. Or fuel. Or something. You can upgrade your lander. That screen might look like this:
Different upgrades do different things of course. Simple physics will be applied (not physics engine). As you add upgrades the mass (weight) of the lander increases which means thrust and handling is reduced etc.
A stretch goal is to make it multiplayer on a LAN so you can race your friend across the surface. Or perhaps save/rescue your friend when he crashes. IDK - perhaps green aliens on the ground and air can make this tricky. Collaborators can help determine which way this goes.
Looking for coders, idea's people, artists. I'm thinking minimalist graphics because I can't do graphics but it can be as awesome as we like. I'm a noob coder so that won't be complex object orientation or classes or anything like that. This means code will be the most unelegant code you've ever seen but perhaps it will make perfect sense to noobs. I think I'll provide the most basic of rules (how to declare constants etc) and then let peeps submit their own functions etc. If it works - it's accepted. That simple. If coders enjoy refactoring then that is fine too. I'll no doubt be refactoring as we go.
'Cards' will be created in github so we can track what needs to happen and who is working on what. No commitment necessary. Drop in or drop out as you like.
Will take an iterative approach where we do a base game that functions then we iterate over and improve placeholder graphics then we iterative again and add new features and iterate again and ... etc (basically an 'agile' development approach).
Game will be open source on github and I'll be sharing on itch.io for free. We can keep iterating forever or until we run out of steam.
github: https://github.com/togfoxy/MarsLander
https://github.com/togfoxy/MarsLander/projects/1
Mars Lander. Any collaborators? Noobs welcome.
Mars Lander. Any collaborators? Noobs welcome.
Last edited by togFox on Thu Oct 14, 2021 2:49 am, edited 2 times in total.
Last project:
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
Re: Mars Lander. Any collaborators? Noobs welcome.
First cut here and is playable but obviously very very very boring:
Left arrow
Right arrow
Up arrow
Help me apply iterative improvements.
Left arrow
Right arrow
Up arrow
Help me apply iterative improvements.
Last project:
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
Re: Mars Lander. Any collaborators? Noobs welcome.
Great idea!! Looks like you're going for a widescreen implementation. My max resolution on my work PC is 1280x1024, so it goes off screen on both sides. Here's a way to achieve widescreen on any display size - put this near the top of main.lua, where you assign gintScreenWidth & gintScreenHeight. Aspect ratio is configurable just for fun.
EDIT: Consider making the window resizable. Make a file called conf.lua and put this in it. (I may have edited love.load or other things to make this work - I don't recall exactly. See the attached .love)
Then instead of using gintScreenWidth & gintScreenHeight everywhere, use love.graphics.getDimensions() instead. Or else, add this to main.lua to update them dynamically:
EDIT 2: You're drawing dots for the ground. Use lines instead to allow for nice looking (random!) terrain. You've even already defined a garrGround[0] but weren't using it.
Speaking of random terrain, here's one approach. It would look much better to use noise octaves, but this is a start.
We'll need to start the lander higher up so it doesn't start underground, lol.
In createobjects.lua, change line 10 to Lander.y = 20
It doesn't really matter, but it seems backwards to me to have a lower y value be higher onscreen. Why did you choose that approach?
Code: Select all
function setWindowSize(aspect)
aspect = aspect or 16/9
local modes = love.window.getFullscreenModes()
local w = 1
for i = 1, #modes do
if modes[i].width >= modes[w].width then w = i end
end
love.window.setMode(modes[w].width, math.min(modes[w].height, math.floor(modes[w].width / aspect)))
end
setWindowSize()
gintScreenWidth, gintScreenHeight = love.graphics.getDimensions()
EDIT: Consider making the window resizable. Make a file called conf.lua and put this in it. (I may have edited love.load or other things to make this work - I don't recall exactly. See the attached .love)
Code: Select all
function love.conf(t)
t.window.resizable = true
end
Code: Select all
function love.resize(w, h)
gintScreenWidth, gintScreenHeight = w, h
end
EDIT 2: You're drawing dots for the ground. Use lines instead to allow for nice looking (random!) terrain. You've even already defined a garrGround[0] but weren't using it.
Code: Select all
local function DrawSurface()
for i = 1, gintScreenWidth do
love.graphics.line(i - 1, garrGround[i - 1], i, garrGround[i])
end
end
Code: Select all
local function InitialiseGround()
-- get a random non-integer offset for the noise function
-- results in coherent noisy terrain, but each game is different
local offset = love.math.random() * 50000
local peak = gintScreenHeight / 2
for i = 0, gintScreenWidth do
garrGround[i] = love.math.noise(i / gintScreenWidth * 5, offset) * peak + (gintScreenHeight - peak)
end
end
In createobjects.lua, change line 10 to Lander.y = 20
It doesn't really matter, but it seems backwards to me to have a lower y value be higher onscreen. Why did you choose that approach?
- Attachments
-
- MarsLander.love
- Includes all my changes
- (14.66 KiB) Downloaded 698 times
Any code samples/ideas by me should be considered Public Domain (no attribution needed) license unless otherwise stated.
Re: Mars Lander. Any collaborators? Noobs welcome.
Thanks Milon. Glad you tried the very first iteration.
I code for a fixed resolution then rely on the
https://love2d.org/wiki/TLfres
module to manage user resizing and different monitors. The fact you're making those comments suggests to me I haven't activated that module correctly. I will investigate. It is probably why you spawned underground. Works fine for me.
Perhaps you can help with the dots on the ground. As you noticed, I had a line but then moved to an array of dots. Reason: an array of dots lets me adjust the height of the ground literally anywhere whilst also permitting collision detection. If I draw lines then I'm not sure how I would do ground detection at mid points along that line. If I had a list of lines for all the ground segments and used fancy maths for intersects then I'm not sure if that's easier. Perhaps it is. I'm on the bus and not seen your code - maybe you did this already?
I need an algorithm for terrain but again - collision detection.
Hope you and others can help further.
Note to all: I've added some bite-sized cards to github. If you're keen on collaborating then take a look at the cards and see if one is simple enough for you to do and then let us know you'd like to try.
https://github.com/togfoxy/MarsLander/projects/1
Some are bugs. Some are design qustions. Some are new features. More cards will be added throughout the project.
I code for a fixed resolution then rely on the
https://love2d.org/wiki/TLfres
module to manage user resizing and different monitors. The fact you're making those comments suggests to me I haven't activated that module correctly. I will investigate. It is probably why you spawned underground. Works fine for me.
Perhaps you can help with the dots on the ground. As you noticed, I had a line but then moved to an array of dots. Reason: an array of dots lets me adjust the height of the ground literally anywhere whilst also permitting collision detection. If I draw lines then I'm not sure how I would do ground detection at mid points along that line. If I had a list of lines for all the ground segments and used fancy maths for intersects then I'm not sure if that's easier. Perhaps it is. I'm on the bus and not seen your code - maybe you did this already?
I need an algorithm for terrain but again - collision detection.
Hope you and others can help further.
Note to all: I've added some bite-sized cards to github. If you're keen on collaborating then take a look at the cards and see if one is simple enough for you to do and then let us know you'd like to try.
https://github.com/togfoxy/MarsLander/projects/1
Some are bugs. Some are design qustions. Some are new features. More cards will be added throughout the project.
Last project:
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
Re: Mars Lander. Any collaborators? Noobs welcome.
Some great progress in just two days with some nudges in the right direction from Milon.
Changes:
- lander has mass and fuel now. Burning fuel reduces mass.
- added a basic algorithm that adds mountains and bumpy terrain. Opted for the retro look instead of Milon's wavey noise (for now)
- drawing points replaced by Milon's drawing by lines. Collision detection retained!
- terrain now side-scrolls as the lander moves left/right.
- screen resizing now works properly
Love file attached.
This is a collaborative project. There are lots of small bite-sized tasks in github. There is coding, audio, graphics and game design all needing some brain cells.
Changes:
- lander has mass and fuel now. Burning fuel reduces mass.
- added a basic algorithm that adds mountains and bumpy terrain. Opted for the retro look instead of Milon's wavey noise (for now)
- drawing points replaced by Milon's drawing by lines. Collision detection retained!
- terrain now side-scrolls as the lander moves left/right.
- screen resizing now works properly
Love file attached.
This is a collaborative project. There are lots of small bite-sized tasks in github. There is coding, audio, graphics and game design all needing some brain cells.
Last project:
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
Re: Mars Lander. Any collaborators? Noobs welcome.
That didn't happen until I added in the random terrain. And please don't feel any pressure to use any of my suggestions - this isn't the milon show, lol!
Yeah, the .love I uploaded previously has collision testing that works correctly. It didn't need any tweaking to work either. (Unless you count the ship not actually crashing, and just getting super stuck for a while. Hold down rotate and accelerate and you'll eventually get out, lol!)
I haven't really used github before so I'll probably stick to making suggestions here.
EDIT - Just tried the new .love. Very fun! For me, it loads at 800x600 (no widescreen layout). I can make the screen wider, but I just get black bands on either side, like when watching a 4:3 show on a widescreen TV.
Are there new controls? How do you collect fuel?
Any code samples/ideas by me should be considered Public Domain (no attribution needed) license unless otherwise stated.
Re: Mars Lander. Any collaborators? Noobs welcome.
I added an offscreen indicator so you can see your orientation and have an idea of roughly how far up you are.
- Attachments
-
- MarsLander.love
- (33.29 KiB) Downloaded 667 times
Any code samples/ideas by me should be considered Public Domain (no attribution needed) license unless otherwise stated.
- Gunroar:Cannon()
- Party member
- Posts: 1142
- Joined: Thu Dec 10, 2020 1:57 am
Re: Mars Lander. Any collaborators? Noobs welcome.
What type of art is needed. Really retro 8bit or less retro 32-128
Re: Mars Lander. Any collaborators? Noobs welcome.
I'm thinking less retro.
Last project:
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
https://togfox.itch.io/hwarang
A card game that brings sword fighting to life.
Current project:
Idle gridiron. Set team orders then idle and watch: https://togfox.itch.io/idle-gridiron
- Gunroar:Cannon()
- Party member
- Posts: 1142
- Joined: Thu Dec 10, 2020 1:57 am
Re: Mars Lander. Any collaborators? Noobs welcome.
Like x32 or x128? Any game you can compare the wanted art style too (not that I'm that good at said game's art style )
Who is online
Users browsing this forum: No registered users and 13 guests