Lunar Lander

Advice on general approaches or feasibility and discussions about game design

Lunar Lander

Postby Myndale » Wed Sep 03, 2014 10:13 pm

This thread is for the development of a Lunar Lander clone. I'll be doing most coding initially and erico has raised his hand for art and game design but all comments and suggestions etc are welcome.

Here are a few links I've found to different versions on other platforms:

Complete history: http://www.technologizer.com/2009/07/19/lunar-lander/
Atari Coin-Op: https://www.youtube.com/watch?v=IzdxjaVm_HQ
TRS-80: https://www.youtube.com/watch?v=3vevlhs1yK4
GBA: https://www.youtube.com/watch?v=Sv4ScUn2LBs
And all the millions of clones: http://goo.gl/9OZju9

Areas that I think need to be addressed first include:

    * Do we keep the ship aligned upright or does it rotate?
    * Do we only do landings? Or does the ship take off and fly over to different screens?
    * Do different pads affect the fuel budget? Or is the goal just to get the highest score with fixed fuel for every landing?
    * Do we have a height-field like the Atari version or more complex geometry like the TRS-80 version?
    * Black & white, gray-scale or both? (My vote is an option, but I'm not doing the art).
    * Fixed landscapes? Or procedurally generated?

Personally I like the design philosophy that Yoda Zang seems to stick to of making his games as close to the original as possible but within the confines of the device. This title is a bit tricky though because there are so many "originals" to choose from and the game really does need display resolution that the Gamebuino simply doesn't have.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Lunar Lander

Postby Matrix828 » Wed Sep 03, 2014 10:23 pm

I can't wait to see this completed :D
Matrix828
 
Posts: 43
Joined: Tue Jul 22, 2014 7:44 pm

Re: Lunar Lander

Postby Myndale » Wed Sep 03, 2014 11:38 pm

Well it's a start...looking forward to seeing what erico comes up with graphics-wise.

lander.gif
lander.gif (1.4 KiB) Viewed 11109 times
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Lunar Lander

Postby erico » Fri Sep 05, 2014 6:51 pm

Great start!
Like you said...
Myndale wrote:Personally I like the design philosophy that Yoda Zang seems to stick to of making his games as close to the original as possible but within the confines of the device. This title is a bit tricky though because there are so many "originals" to choose from and the game really does need display resolution that the Gamebuino simply doesn't have.


Agreed, but I still prefer to borrow some game mechanics from the many sources and possibly come up with an original Gamebuino title.
The resolution display is a challenge to fit gameplay but at least it is a fixed resolution. ;)
While I prefer original work, I´m fine with making a close port too, my guess is that it really depends on what you want to push/experiment through this development.

Also, I have no idea of what is actually possible or too much for a gamebuino to handle, so here I will be shooting for no boundaries just like if everything is possible so then we can pick what works and fits and whatnot for the final game.

Myndale wrote:...
Areas that I think need to be addressed first include:
    1 Do we keep the ship aligned upright or does it rotate?
    2 Do we only do landings? Or does the ship take off and fly over to different screens?
    3 Do different pads affect the fuel budget? Or is the goal just to get the highest score with fixed fuel for every landing?
    4 Do we have a height-field like the Atari version or more complex geometry like the TRS-80 version?
    5 Black & white, gray-scale or both? (My vote is an option, but I'm not doing the art).
    6 Fixed landscapes? Or procedurally generated?


First, as a concern to the screen size, we have an issue about ship´s size against scenery and ship´s movement.
A.The smaller the ship, the more scenery we can pack on screen but less precise will be the ship´s fine tuning notion of movement.
B.The bigger the ship, less scenery we get but a better notion of fine movement.
Both ways are fine with me as we can bend the gameplay and enrich the choice we take.
Also, I could work a hud to depict velocity vectors for the fine tuning moments.

For the sake of creating a layout, I came up with 2 example sketches depicting the A and B cases, but of course we could also work in between.
The smaller ship size for a game like this would be a single pixel, so set A has a 3x3 sprite depicting the ship where the collision point against walls could be its inner single white central pixel. Set B has a bigger scenery and an 8x8 ship´s sprite, I believe a bigger ship then this would render the scenery curves too unimportant, so I set this as the biggest size.

1-Could be either or both, I´m more found of the upright version but here I believe we could create an original way of controlling the ship.
This issue may also concerns how we play the game control wise. Here an idea:
In set A, the ship is able to rotate into 2 extra positions sideways, a 22.5 and 45 degree angles, where its main thrust could push the ship diagonally too. You can still use the smaller weaker left/right thrusts that acts based on the point of ship rotation.
This would be for the "maneuvering mode", where you can toggle on/off by pressing a button
The other mode would be the "landing mode", here the ship automatically aligns upright and deploy its landing gears. On this mode, only the smaller weaker left/right/down thrusts are available, it is for fine tuning the landing procedure. I´ve got some ideas about this control scheme I could describe if you think this path is a good idea.

2-Could be both too, I personally prefer the taking off as it brings an exploration element to the game and strives away a bit from the simulation of landing only. If we consider set A, we could have a single screen/scrolling game, set B may require scroll only screens.

3-Both score and fuel are fine, I thought maybe we could also add more to this, I will describe this later.

4-I´m more for complex geometry, but we could have both.

5-B/W or grey or both, I´m fine with all, it depends here on what you may want to push visually on this game.
Most of the time, the grey version is easily convertible to a B/W design.
I recall you were looking into the visual libraries of gamebuino so maybe there is something specific you would like to try?

6- Again, I´m fine with both, but I have an idea about it too together with issue 3.
---
Ok, let´s look at set A from the point of view of a full game (again, excuse my daydreamings :roll: ).
A mission based landing/taking off, a bit open ended, game. It could read the mission from SDcard and later we could work on an app to create the missions. Here I could also help code a version for windows/mac/linux/android/etc.
The mission would comprise a set of 9 connected screens with tile based scenery, similar to the racing game Rodot did.
There would be a first and last pad to land to end the mission but some of the inbetween pads may give you alternate routes or ask you to go land on a specific place for a reason. The pads here would be able to give you, other then score (more like an achieving gauge 0-100%), different set of fuels, open new paths and probably some sort of power ups.
Since the ship is small, we could also add some environment challenges like falling meteors, bubbling lava, etc.
Another thing to think about would be if it is possible to have a destructable map, but I didn´t think much about this yet.

Let´s look at set B, while pretty similar to what I said already, here we could work a ´field of view/light/shadows' with dither, so the game would be more about exploring the unknown with care other then the action based idea of before.
We could also have a parallax scroll for background scenery too, but I´m unsure this would be too much.

Anyways, these are just some crazy sketch ideas to boot so we can shape a final idea layout based in accordance to what we can achieve.
landing.png
landing.png (6.85 KiB) Viewed 11079 times
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Re: Lunar Lander

Postby Myndale » Fri Sep 05, 2014 9:33 pm

Great work! I probably like the first idea myself just because it would result in the largest amount of detail with the most flexibility to create varied terrain. The control system is interesting and different as well. Gimme a few days to code something up and we can have a play and see how it feels, if it doesn't work out we can always try something else.

Should the ship fly from one screen to another? Or should the whole game be one long continuously panning background with the ship always in the center of the screen? Either way is doable.

With regards to terrain generation I can do tiling if you like but it's not necessary. I'm guessing our memory budget for terrain data will be somewhere around the 10k region, and the type of terrain that you're illustrating can be compacted with basic RLE encoding into a conservative 200 bytes or so per screen which would give us somewhere around 50 screens before we'd have to start loading off SD card. Using 8x8 tiles would triple that but at the cost of greatly restricted freedom in level design. What I'll most likely have to do is give you an app that you can feed a large BMP into but with the pads color coded (red, green, blue etc representing different types), the app will then export game data to paste directly into the code.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Lunar Lander

Postby Myndale » Fri Sep 05, 2014 10:33 pm

Quick follow-up about the memory requirements....I created a test image that is 20 screens wide and 2 screens high, with the top layer being a repeating tiling of your first terrain and the bottom layer being a repeating tiling of your second cavernous terrain (idea being that the top layer would be the main game area and the bottom would be secret bits that the player can fly down into and explore etc):

http://imgur.com/LPNWMXb

You'll notice I've removed the landing pads since they'll be represented differently. The total terrain image size is 1680x96 and I can compress it down to just 5520 bytes using a vertical RLE representation that is readily expandable in-game.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Lunar Lander

Postby erico » Fri Sep 05, 2014 10:53 pm

Nice! I´m glad you liked the first idea, I think it is a better choice too.
I was just wondering if a sprite 3x3 is cool for coding, if we need to tile the background, it could be with 3x3 too.

The current angles I´ve draw are capable of 360 degree rotation 16 positions if you consider flip/rotation. I first thought only little rotation but what the heck, if we are testing, we might as well test it fully.

I will try to elaborate on a test controls now:

-As standard "manouver mode", you rotate the ship with left/right and A button fires the main powerful thrust.
-If you press B button, the ship auto aligns upright and animatedly deploy landing gear, you are now on "landing mode"
-On landing mode, left/right/down fires weak thrusts (no rotation here). A much weaker thrust just for fine tuning the landing.
-While on "landing mode", pressing B or A (power thrust) will instantly recall landing gear and set you back on "manouver mode".

I can send you some test GFX if you want to code something quick so that way we get the felling of some visuals already.

About the screen, my preference would be scrolling it, but multidirection scroll, the other screens don´t necessarily need to be by it´s side.
I´m not too found of centering the ship forever and moving everything else, here I´d prefer a mix to scroll the screen when the ship enters a 16 pixels left/right borders or 9 pixels up/down borders. Probably having the scroll work out with easy in/easy out. Here I´m not sure this would do the trick, what I expected is that when actually landing, it would be nice for the screen to be still, and when flying around the borders, it would scroll, maybe a chunk, I don´t know, this would require testing to get the proper feeling.

Nice we can pack more then 9 fully detailed screens! :)
About the SDcard use, the main idea was about last-ability of the game, not quite the resource restrictions.
For example, it would be really awesome if the game itself is an engine that reads missions.
While we could pack a few in the main game, it would always be open for others to create and share their own, also, the mission editor could have an option to randomly create one. This way, I believe the game may live forever.

What I thought would be one mission inside the game:
-Game´s title with a "press whatever to start".
-Mission select screen.
-Mission´s main full screen ilustration + a text window depicting its primary goal.
-Set of 9 screens (or more) with some 27 pads (or more).
-A start pad and an end pad with the proper text windows.
-Each middle pad when landed, gives you fuel and a text window with information about the next goal and a bit of story or alternative goals (sub missions).
-Some pads might open up places on the map or ask you to land on another specific pad (even if it is one you already did).
-For example, one pad might say "go on to the next one on coordinates bla/bla" and them present a sub mission "On coordenates bla/bla, miners are in need of water", then maybe at the miner´s pad, they say" some miners are in need of rescue at coords bla/bla, we will dinamite a passage if you can rescue them and bring back here." then a wall explodes and you have a new path. So in a certain sense, you can complete the mission the easy way on the main goal or try to get through all sub missions. Score would be time and the percentage of mission completition, something like the main objective would give you 67% and doing all the sub missions and landings would give you 100%. Each pad carries a percentage to a full 100% if you land on them all.

Now suppose this mission is a text file, first it would pass some main parameters to the engine, like gravity of the planet.
Then you would have all screens and a list of each pad and its texts and bonus.

These are just some more ideas, I will put together a set of images as an example using the preferred set A.
You could use those gfx for testing.

Final questions, is it ok to have 3x3 sprites? Or I should not worry about it?
Can I do them with the grey or B/W only for this testing?
I will draw the screens freely and post it in a moment, most likely B/W, but if grey is possible already, I can add it.

Also, I noticed on the videos with grey that it is more close to white then to the black, If that holds true (no gamebuino here yet damn Br post offices) I will use it acordly.

Also bonus, Is the dither shading for light fxs a good idea? We could use it on the more underground caves.
We could probably keep the light map in a tile fashion to reduce resource usage.
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Re: Lunar Lander

Postby erico » Fri Sep 05, 2014 10:54 pm

Just read your previous post, amazing!
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Re: Lunar Lander

Postby Myndale » Fri Sep 05, 2014 11:04 pm

Answering my own question here....

Myndale wrote:Should the ship fly from one screen to another? Or should the whole game be one long continuously panning background with the ship always in the center of the screen?


The more I think about this the more I'm leaning towards flying from screen to screen. The resolution is so low that any movement of the entire screen is probably going to be quite jarring, especially when you're trying to do fine landing maneuvers. Also having the entire screen scrolling upwards means the player will constantly be seeing areas down in the cavern layer (assuming we do it like that), areas which you might want to keep secret. Finally, if I use the RLE compression scheme then decompressing an entire screen at a time will be much easier than having to update it on a per-frame basis.

But as always I'm open to anything.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Lunar Lander

Postby Myndale » Fri Sep 05, 2014 11:25 pm

erico wrote:I was just wondering if a sprite 3x3 is cool for coding, if we need to tile the background, it could be with 3x3 too.


No problem with sprites, although for terrain I'd probably prefer to keep it free-form. It means people can just use PAINT.NET or whatever for level design without being constrained to a fixed set of terrain tiles.

erico wrote:Can I do them with the grey or B/W only for this testing?

erico wrote:These are just some more ideas, I will put together a set of images as an example using the preferred set A.
You could use those gfx for testing.


Awesome, thanks! Grey-scale is fine, just post them here as PNG or something.

erico wrote:Also, I noticed on the videos with grey that it is more close to white then to the black


It depends on the user's contrast settings, if they're set properly then it should be reasonably half-way between the two.

erico wrote:Is the dither shading for light fxs a good idea?


I'd probably prefer to leave this out for the time being. W'e're going to be running a bit tight on RAM with this title, especially with both SD card and grey-scale support, so if we want free-form terrain then I'll have to do collision detection against the back-buffer itself. If we go corrupting the scene with effects like lighting etc then it will make fast collision detection a lot harder.

One last thing....I'm going to create a GIT repository for this project, what do you want to call it?
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Next

Return to Project Guidance & Game development

Who is online

Users browsing this forum: No registered users and 36 guests

cron