Design Large, outdoor maps?

bill0287

Member
Hello all.

I recently purchased GMS2 with the intent of building a top-down shooter/survival game that exists mostly in the suburban outdoors. I am tryin to think this this through a bit before getting into the process.

My question is this: what is the recommended method to build a map will look very much like a real town (viewed from above, of course)? Do I build every single object in a full 3D environment to make the town, then have the camera view the action from above? Can I use a top down 2D image of the terrain as the base, and place transparent collision boxes around things like buildings and cars, etc? Some other method?

I am 100% green so please be gentle. I just want to know what I am up against for the map layout.

Thanks
 

NightFrost

Member
Yes, if you're going to do a 2D top-down game, then you'd work in 2D. Topdown images as terrain, and objects and invisible collision boxes as movemens blockers. But rather than large terrain images, you'd use topdown tilesets to build your environments. Trying to use a huge image would immediately run into problem of not fitting into video card's memory, so the usual practise is to use a set of tileable pieces that does fit.
 
@NightFrost pretty much resumed the 2D top-down principle. As for 3D, there's 2 styles: Isometric and real 3D. Isometric games are games Ć -la Sim-City where your objects are drawn to resemble like 3D but everything is actually programmed as a standard 2D top down game. Your objects can hide behind things and it requires you to learn Y position depths to appear behind or in front of things.

As for actual 3D, you will need to learn how the Game Maker 3D engine works AND learn how to draw objects in the 3D world. Yes, the 3D engine pretty much calculates depths and visibility, but the drawing techniques are wayyyyy different than standard 2D games so there is a bit of a bigger learning curve here.

Since you just baught GameMaker Studio, and this is a first game (I presume) you may want to seriously build, I suggest to go for the 2D style with tiles. There are VERY good games that are done in 2D and very popular. If this is also your very first time in serious game making, you will realise that building a game alone is quite a challenge. The begining is usually fun and quick, when you reach the part where you need to integrate graphics, sounds, logics in more depth, normally, the production slows down there and many people actually quit there. It's not rare to have several different game projects at once and not finishing one of them. The interesting part of GMS is it's fun learning curve. You learn and you try to do better with what you learned by starting a new project. But if you have a good schedule, great planning and eagerness, you can most definately end up with your game on Steam.

In your nice ambitious idea, I would really go with NightFrost's suggestion, small 2D tiles with objects to delimit and interact with. Isometric or flat is your choice, both are easily done, just a few basic differences easily programmable in GMS2.

Hoping this helps.
 

bill0287

Member
In your nice ambitious idea, I would really go with NightFrost's suggestion, small 2D tiles with objects to delimit and interact with. Isometric or flat is your choice, both are easily done, just a few basic differences easily programmable in GMS2.
This helps. What I am thinking, however, is 100% realistic image of the town (think Google satellite image) that represents the terrain the player will navigate, with collision boxes of some sort to prevent walking into buildings etc. Would a single image be too big for that to work? If so, does it make sense to use software to cut that image into tiles and simply sew it back together in GMS? Because that terrain would not be uniform I don't anticipate there being too many common tiles to reuse. I am not sure if I have explained my thoughts correctly. Maybe I am jumping the gun, too.
 

Rob

Member
This helps. What I am thinking, however, is 100% realistic image of the town (think Google satellite image) that represents the terrain the player will navigate, with collision boxes of some sort to prevent walking into buildings etc. Would a single image be too big for that to work? If so, does it make sense to use software to cut that image into tiles and simply sew it back together in GMS? Because that terrain would not be uniform I don't anticipate there being too many common tiles to reuse. I am not sure if I have explained my thoughts correctly. Maybe I am jumping the gun, too.
I think you should do a few small tutorials or test projects to understand how you're going to do the collisions. It's going to be hard to plan out how to design all your systems, and how you're going to make the town if you don't know how you're going to handle collisions. At the very least you'll have a better idea of what to expect and what you're doing before you're 50 hours in, realising your initial method isn't cutting it.
 

NightFrost

Member
I'm unsure where, besides Google's maps, you'd find topdown town imagery with high enough fidelity to work as game backgrounds (if even there). Those aren't completely top down either, and they are owned by Google. Cutting the map to smaller parts and reconstructing the displayed area would let the hardware handle it, but it won't change the total amount of memory the map is going to need.
 
This helps. What I am thinking, however, is 100% realistic image of the town (think Google satellite image) that represents the terrain the player will navigate, with collision boxes of some sort to prevent walking into buildings etc. Would a single image be too big for that to work? If so, does it make sense to use software to cut that image into tiles and simply sew it back together in GMS? Because that terrain would not be uniform I don't anticipate there being too many common tiles to reuse. I am not sure if I have explained my thoughts correctly. Maybe I am jumping the gun, too.
3 things.

1. Getting a realistic game is a very ambitious project and no company has ever created such a game, none up to this date. And yes, some have come close but because of the complexity of the human skin details and how light interacts with the environement, getting a realistic game, for now is impossible without distributing it for extremeely high end computers able to to run tons of image data in memory and this is not a big player pool, we're not all rich. So realism in a game will go as far as what you are capable of presenting to the player and for now, the closest one can get is: "Wow, this game has some very stunning graphics and a heck of a lot of details on everything, from water to skin textures, they thought of everything visually." But you won't have anything that can compare a real life image, really. You CAN re-create a 3D rendered image to resemble another rral life picture, but integrate THAT in an actual game, never seen it because there's too much movement and things going on.

2. If all you want is to have a map and collide with it. I think that 1 single 1920x1080 image won't fill the entire memory of the computer and all you have to do is put invisible objects on top of it. That is as simple as your game can get and NO, the big map size will not be too much for even modest laptops on the market.

3. 3D is where you will get a hit on your performance. YES, you can have a huge map displayed in it's full size, but you need to simulate walls, lamp posts, benches, fire hydrant, grass, trees, etc... These objects need sprites of their own OR tiles of their own because you NEED to draw them in a 3D space OVER your map at different angles depening on where your camera is. NOT only this, if you REALLY want a TRUE 3D effect, you also need images representing the SIDES of your buildings and if you are looking for realistic, you need to have details, broken bricks, scratches, holes, rotten wood, etc... AND to top it all off, to acquire realism, you will need depths on those images (called textures). Depth to simulate cracks and holes, brick bumps, woud and tree height maps AND the light for reflection and refraction. You will also find a lot of work with water effects in case of lakes and oceans or rivers because they reflect city objects with different curves and distortion. So all of these require extra images ON TOP of your FHD map and of course, if you also plan to get closer with your camera, you will need HD wall and building top graphics as well SO yes, you may end up with memory issue if you don't learn to draw things properly in your 3D world which is where optimization takes up your time and where game developpers choose what to draw and what not to draw and up until how far should they draw. You will also learn that LOD details are seperate images and you will need to calculate the distance that will make you draw these low quality images by yourself because the engine won't do it for you.

Normal people would say as @Rob said, find tutorials and try something less ambitious to first of all get used to the system.

I'll say, we never know when a prodigy can pop up or when a surprise can arrive. If you feel capable of spending the time for such a big game with soooo many details, go for it, but realise that you are alone OR maybe you have a few friends that can work as a team with you. You need a lot of time and patience. So I hope you have that in large quantities and that you also have orders ready on Amazon for extra Patience boxes and Time pills :p But I would certainly be curious to see how such a project would develop itself, some people can be very surprising :)
 

Yal

šŸ§ *penguin noises*
GMC Elder
I messed around a bit with a lowpoly 3D engine earlier this year and here's my advice on performance:
  • Drawing a huge model with the entire map geometry takes about as much time as drawing a single sprite if your GPU is good enough. (GPUs are optimized for few but large vertex batches these days, not tons of small ones)
  • Collision checking, camera movement and 3D lighting are much harder to get right than the terrain bit.
  • A proper 3D pipeline forces you to turn off GM's built-in renderer entirely and stitch together half a dozen surfaces yourself (using different shaders).
I've had issues getting a 3D environment to run properly, and i've used GM for like 1Ā½ decades. You probably don't wanna mess around with that kind of thing before you know what you're doing.

There's a basic top-down shooter engine in my abandoned project grab bag, where I simulate 3D depth by drawing a stack of sprites displaced so they point away from the view's center. It's GM8 levels of old and probably won't run super well in GMS2, but there might be a bunch of ideas in there that you can learn from. All you really need for that effect is a for loop and some trigonometry.

1602518288319.png
 
Top