It Feels Good to be Creating Again! | BYOND Game Development

IMG_20210722_184813140~2.jpg

I started playing around with building a new game in my free time again, and I've got to say it feels really good!

I've tinkered with game development for over 20 years, though I've never put together anything I felt was good enough to publish. I've always been a solo developer and while it would be really cool to build a game that even a few dozen people play regularly, I've always treated it as a hobby instead of a goal.

The game I've started building is a rewrite of a project I was playing around with a few years ago called 'Thrive or Die'. It will be a high fantasy sandbox survival RPG with an in-depth crafting system, a "living" ecosystem, and open character development.

The geography of the world (the shape of islands, mountains, forests, etc.) is mapped by hand, but the environment (the placement of trees, shrubs, enemies, etc.) is procedurally generated. Each time a new world is created it will be different from the previous, with just enough being the same that I can create lore and players can become somewhat familiar with the map of the world.


First Steps

The first thing I wanted to do was get a "test island" set up. I just quickly defined some basic terrain tiles so I could lay out the world that I'll be developing. I've set up special "generation" tiles that will determine what to spawn and where when the world is created.

My map editor looks like this before the game is started.
mapeditor.png

The labels on the tiles will disappear at runtime but help me view at a glance the different biomes and the "level" associated with them while I'm building the world.


A Whole New World

Now that I've got all the biomes laid out for the test island, I can start writing the code that spawns everything in those biomes.

World generation is pretty straight forward. The code searches for tiles of a given type and level, and there's a chance something like a tree will spawn on that tile.

Each level of each biome should be generated differently and include higher level resources and enemies. For instance, higher level forests will be more dense, thus have a higher chance of spawning trees on each tile than a lower level forest would.

The example below is the beginnings of the generation for a beach biome:

BeachGenCode.png

Every "Beach Generation" tile on the map has a small chance to spawn a tree, a little sprout, or some pebbles. Each time I compile and run the code, I get a fresh new world to discover:


mapgen1.png

mapgen2.png

mapgen3.png

mapgen4.png


While the map stays the same in a general sense and a player may always know where the highest mountain is, the best or rarest resources won't always spawn in the same places. This should help keep people on their toes when joining or starting a new world.


There's lots of work to be done

As it stands, this "game" is pretty bare. There's no item/inventory system yet, no character stats or attributes, no interaction. Nothing but the ability to walk around a randomly generated world with sparse vegetation and a few rocks.

This is the fun part in my opinion. Now is the time to start writing systems to interact with the various things that get spawned into the world. Cutting down trees, picking up items, crafting, leveling up. Each time I put a new system in place new avenues open up for further advancement.

First things first, though. I'll need to get a basic GUI set up to flesh out the inventory system. Only once I can pick items up should I be worried about being able to do anything with them.

I'm having a lot of fun working on a game again and I'll write some more about this when I've got the next part finished. If anyone would like to know more about the engine I'm using, I might write up a full post explaining what it is and how it all works.

Thanks for Reading!

followsweeney2021 (1).gif

sirsweeneysolutionsbanner (1).png



0
0
0.000
7 comments
avatar

Sounds cool! Anything procedurally generated always catches my eye, I don't know why. There's just something appealing about the randomness of it all. I hope you keep us updated on the process!

0
0
0.000
avatar

I love procedural generation. I'll be using it for as much as possible with this game. You won't always craft swords of the same strength until you're a master, loot that drops from enemies will all be randomly named and with different attributes diablo-style 😁

Not only does procedural generation save me the hassle of hard coding every single item in the game, it gives me more content than I could ever create if I had! Searching for a particular weapon and having to collect more than one to find the "perfect form" gives players extra goals to accomplish without the game ever really pushing them in that direction.

I'll definitely post more about this as I flesh out more of the game. I'm working on the inventory now, and once I have a little more to show I'll write a new post.

0
0
0.000
avatar

Love the look of it. I haven't never dwelved into procedural generation but I like your approach to small things pledged to it to reduce the amount of manual work too!

0
0
0.000
avatar

Welcome to the game development community.

Glad to see you are getting back into the swing of things.

The fun part for me in making a game was working on the zones. Everything else has been an uphill battle in a hailstorm blindfolded or at least it feels that way.

As far as never publishing anything it’s quite easy to put something up on Itch. Perhaps this will be the project you put out into the world.

Looking forward to reading more about this and hope you have fun making it.
!PIZZA

0
0
0.000
avatar

The beautiful thing about the engine I use (BYOND) is that all the networking is built in so any game can be hosted and played by anyone with a BYOND account. The website is a full-on community where people can publish and share their games, tutorials, and resources.

I do hope to eventually get this worthy of players filling the world and encourage people to set up an account to play along.

0
0
0.000