Isometric Stuff

Recently, I was talking with @darkcloak about some random coding stuff, and I said I would be able to create the basics of Terra Nil in a week (if you don’t know what Terra Nil is then look it up).

So that’s what I’m doing now.

But since Terra Nil is an isometric game, I had to figure out both how to make basically an isometric tilemap, and how to randomly generate the terrain. I’ve gotten pretty far (three days in though) and I figured out an array system for it and a world gen thing that works okay.

This topic is for all the isometric tilemap/world gen stuff I’ve been working on for the game.

So far, I’ve made a riverbed and land creation system, which I’ve adapted to the canyon generator below:

This is something I am very proud of, and here are some settings that I think produce the best results:

  1. 15 or 20 world size (minimal lag) (no I don’t know why you can enter a 6-digit world size, either)
  2. 80% canyon density (creates best layer variability)

I’ll leave the rest for other people to find out.

Also, here’s the Terra Nil generation so far (Version 3):

If anyone wants an explanation of how either of these works, please ask.

If anyone wants me to do a full game with the canyon generation, please say so below:

  • Make a full game out of it!
  • I don’t care, but sure.
0 voters

Also does anyone know how to further optimize the Terra Nil world generation? It lags at larger world sizes for some reason and I need it to work at larger world sizes (50+).

9 Likes

I made a ismetric tile generator code but I never got around to implementing textures or walls(I’m scared of trying to implement walls)

3 Likes

You could make a simplified version of Final Fantasy Tactics / Jeanne d’Arc - How demanding/intensive is the world generation?

I’m a huge fan of isometric games and I’ve worked on quite a bunch of them! (but for other platforms than MakeCode)

Excited to see where you go with this!

1 Like

New Update!

I’ve figured out a way better way to handle world generation.

It simply fills the world array (array full of numbers 1-3) using some logic, and then spawns in the world all at once. This takes generating a 50 size world from an average of 20 minutes on a PC (an actual one), to about 1-2 minutes on a school computer. This means I can generate large enough worlds fast enough.

For the canyon game, I’ve decided I’m going to go with a desert theme instead, as it fits better with the size. And I have an idea for what the game part would be.

The game would, quite simply, be a survival game, with custom crafting recipes and rules. For example, to get wood from a palm tree (oasis), you would need to cut it down with an axe and either A. chop the fallen trunk with an axe to get wood chunks (made into planks) or B. use a saw to get planks directly from it.

Here’s the current version (I finished world generation):

Here are some of the things I’ve added:

  • Faster/Better World Gen
  • Low Ground Percentage (previously Canyon Density) is randomly changed while generating, making larger worlds more variable. I recommend 50% or 60% to start for good results.
  • Randomly placed rocks and dry bushes for early game resources (not that they do anything yet)

Also, since the terrain is stored in a (quite large) array of numbers, seeds would work as well, including for save files (something to plan for later).

Some other things I’m planning to do:

  • Player sprite and animations
  • Movement
  • Destroying bushes and rocks with fists
  • Inventory with built-in crafting thing
  • Render distance around player for less lag
  • Settings menu

As another thing, who wants me to implement multiplayer functionality with the second-screen extension after I implement the playable mechanics, because of how efficient the world gen is?

  • Yes!
  • Maybe later.
  • No
0 voters

And if anyone wants to do something with this isometric stuff, I’ve included the basic function to make the isometric stuff appear based on a number array and an image array below (with basic isometric blocks as placeholders). I will be updating this as I make the game to include more functionality, including players and rendering in a circle (or square) around a sprite.

I’ve also made a new pfp for myself because I’m doing the isometric stuff right now.

And @luxregina, thanks for the support, but I have decided not to do a simplified version of Final Fantasy Tactics or Jeanne d’ Arc, but if you or anyone else wants to do this instead I can help with some of the code (if needed). And since you’ve worked on a bunch of isometric games, do you have any specific tips for me?

3 Likes

maybe u could use render to screen at z index to not need 2000 sprites for a 50x50 world

Not particularly, isometric is pretty straight-forward as long as you have a strong Z-sorting algorithm: at some point, you will want to have volumes above your tiles (buildings, trees, etc) and it will be important to z-sort all the sprites that interact with your world… it might be tricky to do this and preserve performance on MakeCode ? I’ll be following your progress on this :slight_smile:

1 Like

I would suggest to not do that because it would double the lag and this is no gameplay AT ALL

Well I meant after I finish the gameplay and maybe a good bit later too.

Also it doesn’t lag enough for it to matter much as long as you only render in a certain distance around the player (in the future)

Do an Advanced version of Final Fantasy Tactics, say . . . FInal Fantasy Tactics Advance . . .

1 Like

I made an algorithm method of how I did it I’m curious tho how do you do it

wait lez go I made a function to create 250x250 tilemap of iso tiles running at 36 fps on my potato Chromebook I did use ai to see where I could optimize it but I will create my own version