Advertisement

Suggestions on 2D free-roaming worldmap that has 2D scrolling levels?

Started by May 12, 2010 12:44 PM
8 comments, last by WavyVirus 14 years, 9 months ago
I'm currently planning a new game that is based on underwater exploration; the exact details aren't completely hashed out, but you're a scuba diver who's treasure/fish-hunting, and when you dive beneath the surface, you can explore the world in a 2d scrolling interface, where you may swim up,down,left,right. Then, you can return to your ship on the surface, and the game reverts into a birds-eye view of your ship on the open seas. You can then pilot the ship around to another diving spot and jump in. At least, that's the way my game is looking in my head right now, but I'm unhappy with it, because I want the game to be open world. I would much rather the game be in complete 3D, so that there's no difference between the ship perspective and the diving perspective, but I don't know 3D, and I feel like I, with some graphic design skills, would be much more capable of figuring out some good looking 2D sprites myself. But, since I cannot have it in complete 3D, I am fumbling for how to make it still a nice open world. A: The 2D ship interface is in bird's eye view, the diving is in 2D, and the map is a number(decimal) grid. Specific coordinates have very specific levels, but perhaps I have a way to randomly generate levels and enemies for any coordinates that aren't specific, so that someone could really just dive around anywhere and play. B: There is no 2d bird's eye view, but instead, the game is an ENORMOUS 2d plane, so one could really explore anywhere in this plane with his diver. The idea is that there will be very dangerous parts of the sea that you don't want to venture to until you've acquired better equipment, which is made from doing tasks in the easier seas. But I want the ability to accidentally wander into the dangerous waters, or have something dangerous that is passing through. Questions? I realize this isn't really a programming question but a game design question, but it would of course have enormous impact on how the game functions. P.S. Also, do you have a language suggestion? I am very amateurly familiar with the Java2D and Swing API, but if there's a better suggestion for how to construct this, I'd appreciate it. [Edited by - CyJackX on May 13, 2010 12:55:34 PM]
My suggestion would be that each tile on the birds-eye view corresponds to a "level" in the underwater view, and that each level has connections to the levels for the 4 adjacent tiles. These could be at the boundaries of the level, or through "doors" (e.g. a tunnel into the background of a cave). The correlation between movement in the underwater view and movement in the birds-eye view would be intentionally arbitrary; the important thing would be that you can use the birds-eye view to move to specific levels, from which point you can do more detailed exploration.

As for language suggestions, I'm fond of Python + Pygame, but there's no reason you can't use Java.
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels
Advertisement
I feel that that compromise will be what I'll have to do, although I was hoping to avoid transitions between levels as much as I could. I've thought about having caves as the transitions between levels. I mean, that is the way games have worked for a long time, so I suppose I can't be going wrong with it; I'm just trying to figure out if there's a way to get the freedom I want in the exploration without making it seem very, er, walled in.
Would an isometric view work? All directions would then be available although I'm not sure what the best way to deal with caves would be though.
The thing about 2D is that you can still make it look 3D.

So just add a slight curve to the horizon on your overworld map and when you move it'll appear as if you're sailing over a little world.
No walls, it'll just loop co-ordinates.

As for diving, you could always just decrease the amount of grid points and just randomly seed maps every game day to replace the current ones.

So nobody could know what's under the ocean every time they play, then just have a simple sonar system to detect basic wildlife, like sharks and whales, etc.

I think a game like that could provide an interesting player experience if coupled with random events.
Like oil spills and nuclear waste leaks etc.
Random seeding is what I describe with my A option, but I'm trying to figure out if there's a way to get rid of the overworld ship interface completely but still be open world. The problem is the playing space is 2D in one plane, but the overworld is 2d in another. I'd rather there not be bounded levels.

And you predicted what I've already had in mind with sonar, available as an upgrade. Random events would be more like lochness monsters, mermaids, great whites in the area, and whether you feel confident enough to stay in the area to fetch whatever riches there are.

And I thought about isometric, but if I have full up down left right backwards forwards movement, I'd want to be able to rotate it 360, instead of in 90 intervals...I guess I'm picky that way. Plus fighting fish from certain angles would become hard to gauge, maybe? But isometric has always had that kind of perspective problem, hasn't it?
Advertisement
It seems to me that if there's no real point in allowing the player to swim around the world or enter land from a bird's eye view tile then one way you could do this would be to ignore tile sizes for the purposes of swimming and implement an endless 2d plane. The player then drives their boat to a given tile/region, you get a nice transition, and then they're doing the side-scroller stuff. I would limit their range of movement via energy or oxygen, however.

Another really wacky idea (probably less appropriate for a diver and more for a sub) would be to generate level content based on the facing direction in the bird's eye view and allow the player to change the directional plane using a minimap. So the whole game would be 2d, but the minimap would allow you to access adjacent planes. Enemies could join from adjacent planes with a quick front/back swimming motion, fading in or swimming from a nearby tile, but the 2d plane would be preserved at all times.
--------------------Just waiting for the mothership...
Well, basically, without the top-down view, you're going to have some trouble with managing upgrades and points to take treasure back to.

Like that old Game and Watch game with the octopus, really.
I think what you need to do is just find out what you really want the game to be.
Maybe something will come to you.
I think this game ha an example that might be close to what you're looking for.

http://www.xgenstudios.com/game.php?keyword=flow

You swim around in a 2D plane, and then hit certain things to dive deeper and certain other things to surface. While you can see a blurry version of what is on the two planes nearest to yours.

To make movement more free in your game you could have a button to switch planes (dive/surface), instead of objects. And if you really prefer the side-scrolling view, you could rotate the concept to any axis.

This gives you a 3D undersea world, that cane be adequately displayed with 2D graphics.
Quote:
Original post by Wavinator
Another really wacky idea (probably less appropriate for a diver and more for a sub) would be to generate level content based on the facing direction in the bird's eye view and allow the player to change the directional plane using a minimap. So the whole game would be 2d, but the minimap would allow you to access adjacent planes. Enemies could join from adjacent planes with a quick front/back swimming motion, fading in or swimming from a nearby tile, but the 2d plane would be preserved at all times.


Something like this would certainly be possible...

Given a birds-eye-view heightmap of the ocean floor, you can generate the floor for the side-scrolling view by drawing a straight line through the heightmap at the current angle, centered on the player's position, and sampling the series of sea-bed heights along it. This is then "projected" onto the 2D plane that you are swimming along. You could even have this plane "rotate" while you're swimming using two buttons, giving you full quasi-3D movement.

The problem with faking 3D movement in this way is that you'd need to figure out a way to render it nicely and allow the player to see some in-out-"depth" or things would pop horribly into view as you rotated. Adding complex structures would be a nightmare (overhanging rocks and caves - caves would probably just have to be an entry point to a cave mini-level on a fixed plane). You would need to keep track of enemy and player positions in 3D. It's at least as difficult as using a 3D environment with 2D sprites moving around in it (which is what I'd probably recommend).

I also like the idea of returning to the ship and sailing about looking for diving spots - it allows you to add so many more gameplay mechanics like returning to port to shop for equipment, returning to the boat to get more oxygen, running a string from the boat so you can find your way back etc.

Good luck with this, the idea sounds interesting and, dare I say it, fun.

This topic is closed to new replies.

Advertisement