Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

[OPEN SOURCE] Procedurally Generated Open World Adventure Game

A topic by Gurpreet Singh Matharoo created Jul 31, 2018 Views: 689 Replies: 14
Viewing posts 1 to 10
(11 edits) (+1)

•- Procedurally Generated Open World Adventure Game -•


Engine Used: GameMaker Studio 2
Repository (GitHub):

~Procedural Generation: How does my system work?

At a time, a certain square area is generated. Its size is in the AREA constant, currently at 512.
The constant DIVISION is the size of the distinct parts of an area (of the size AREA). A division currently is 256 (so each area has two divisions). Each division is of a certain type; it can be a village, a forest, a hostile area, and so on.

The constant SIZE (12) is the size of each individual block that holds something (grass, tree, house, etc.). You can also call it a cell or a tile.

So when the grid for the current area is creating, the divisions are generated, and looping through the divisions, tiles are placed. Different tiles have different chances of being placed inside different divisions.


Music/SFX: Micah_DS
Everything else: Matharoo

Working on procedural generation

Green blocks are trees, yellow ones are houses and red ones are enemy camps.

No specific algorithm used. Just filling grids randomly based on certain rules that I am still working on.

(2 edits)

New areas being generated

Uses rectange_in_rectangle() to check whether the camera view (plus margin) is touching the current area's edge. If it is, it again uses that function to check which outside area it is touching. That area is then generated using DS grids.

Created the player's sprites and more
Added a dynamic sword system
Implemented a depth ordering system

The sword is not a part of the player's animations. It's dynamically attached to the player, so it's a separate object.

This will allow me to easily add new swords, which I didn't originally plan to do. So, good!

Added the HUD!

Thought the HUD was taking a lot of space, since 64*64 is already too small, so made it hide like this.

I'd appreciate suggestions from you guys!

I was personally going to use a hidden hud like that as well. Not quite the same, but like if you are at full health, it would be off the screen and would only show health left, lives would only show up when you died or paused, etc. It's a good idea to save space. You can also potentially use sound to indicated low health, or change out some of the art like Mario does.

It's looking great though. Can't wait to see some enemies in place.

(I also want to say, your profile pic is pretty much my games character XD)


> (I also want to say, your profile pic is pretty much my games character XD)


This seems really interesting!

I like those cinnamon roll bush things :D

I feel like your hud is taking up more space that it needs to. Wasting pixels on big fancy curved panels that seemingly don't need to be that big, at least from what I can tell looking at that bottom left corner ¯\_(ツ)_/¯ The auto-hide thing is neat though.

Oh thanks for letting me know, I'll be sure to make it as compact as possible. I made the bottom panels big because there will be many different kinds of swords so I just made it big enough to fit the swords I would make in the future. :)

Oh, that makes sense.

I would probably just define a specific size for items (8x8 for example) and never make them bigger than that, assuming it's posible enough to draw enough unique looking versions of similar items at that size. I'm doing something similar for weapons and spells, and so far it looks those are all gonna be 5x5 (or even 4x4) lol rip

Haha, nice. I think the limit for my weapons would be 8x8.

(1 edit)

Oh, I haven't updated in a while.

I was busy with something else on Sunday so I didn't get a chance to work on this game. Will continue today.

So, update:

I am working on implementing the enemies. Each enemy will have its own level, attack and defense stats. They will have their own loadout of weapons that match their level.

Later I will also add enemy "forts" that you can clear, which would give you XP.

If you've played AC Origins then you'll immediately recognize these mechanics from there. That game has been a huge inspiration!

And... having to draw the enemy sprites (for each state and each of the 4 directions) is gonna take a lot of time, haha.

(4 edits)

Final update...


Unfortunately, I have to scrap this project. I already have too much work to focus on, this game is just holding me back and I'm not even able to give it enough time.

The project is available on GitHub, if anyone wants to continue working on it, please feel free to do so.