featured Mayan Ruins

Mayan Ruins

Mayan Ruins
5/5

5/5 Rating

Mayan Ruins is a realistic 3D environment kit. You can use it to build ancient Mayan or Aztec ruins for action and adventure games. Let your players explore and experience these mystical sites as in games like Assassin’s Creed and Tomb Raider. Suitable for desktop devices (PC, console).

Top Quality 3D Models

Suitable for PC and Console Games built with Unity

Optimized Textures

2048x2048 resolution, PNG format texture atlases

Modular Prefabs

Ideal for modular workflows and kitbashing

0 +
Prefabs

Mayan Ruins Essentials

Contains floors, walls, stairs, trims, pillars, rubble pieces, doorways and stone doors.

3D and Texture details

  • Average Triangle count: 5000
  • All meshes have LODs (3 stages).
  • All Materials use built-in shader

Meshes

Triangle Count: range: Avg. 5000; range: 324 to 27k

Level of Detail: LOD0 – 100%, LOD1 – 50%, LOD2 – 5%

Nr. of meshes: 57 (incl. 2 custom colliders)

Materials and Textures

Shader: Standard PBR (Metallic/Smoothness worlfkow).

Textures: 2048×2048 resolution, Albedo, Normal, SMO (Smoothness/Metallic/Occlusion).

Nr. of materials: 11

Prefabs

Total: 62 prefabs

  • Floors: 4 prefabs
  • Pillars: 6 prefabs
  • Rubble: 7 prefabs
  • Stairs: 10 prefabs
  • Trims: 14 prefabs
  • Walls: 15 prefabs
  • Doorways: 3 prefabs
  • Stone Doors: 3 prefabs

Colliders: Box Colliders and Mesh Colliders.

mayan ruins scenes

Demo Scenes

These demo scenes are prepared to view all prefabs, and two common usages of this package. Does not contain third-party assets and tools, such as plants or visual effects.

  • Lineup Scene: contains all prefabs on a plane with default lighting.
  • Indoor Scene: a small interior of a mayan shrine with basic lighting setup.
  • Outdoor Scene: a ruined entrance diorama with terrain and simple lighting.

Feeling convinced?

Get Mayan Ruins today from the Unity Asset Store!

Try out in 3D

Download, extract and experience the Mayan Ruins playable demo. Controls: WASD to move, Space to jump, Shift to sprint.

Development News

Contact Us

Best Blender 2.8x features for game developers

Welcome to the Jungle

I’m currently working on an ancient temple environment pack for Unity. I’ve never dared to create something so detailed before, so in the past few weeks, I encountered numerous new challenges along my 3D modeling journey. I would like to share some of these, together with the tools I used.

This ruined piece of Mayan shrine at Lagunita is a perfect example with lots of details to note.

1. Quick Sketches with Array stacks

I like to do some sketches on paper and after that, I often start to visualize the scale and basic shapes in Blender. To do this, I take a look at my references to understand the main characteristics of the scene. In this particular case, I looked at numerous photos of Mayan ruins and archeological sites, as well as games to see what building blocks they are using. This helped me fight “scope creep” and to avoid cramming unnecessary pieces into the project.

In Blender, there are great built-in tools for sketching. For the brick walls, I first created a few rows of bricks, then used Array modifiers to build a whole wall section. A similar method was used for the repeating ornamental patterns on the right wall piece.

Later, I found out that Blender has a built-in, Wall Factory tool that can help build regular stone walls. These walls are less organic, but only a few clicks and ready. It can create a large variety of brick wall bases, including curves, domes, and archways.

2. Batch Export and Blockout in Unity

After I prepared a handful of ruin parts, I took those blocks and launched Unity. I visualized a jungle pathway that leads to a clearing with the ruined Mayan temple, similar to an adventure game set.

Of course, without textures and jungle plants, it looks a little bland. But it helps me identify which pieces are really used during building, which needs refactoring and so on. At this early stage I didn’t use any special tools, just exported all meshes into one FBX as submeshes.

There are great tools for batch exporting meshes, which I use regularly at later phases of production. One of these is FBX Bundle by renderhjs which luckily, has an updated version that works with 2.8x.

Check out these screenshots of the first drafts in Unity:

At this point, I got really excited and started to believe I can do this!
But you are here to read about Blender, so let’s get back there!

3. Sculpting Stuff

One of the greatest hurdles I had until recently, was sculpting. Polycount reaching millions, freezing, and the greatest – my lack of self-confidence. I used some of my free time to look up basic tutorials on the subject. I had a clear goal in mind – get into sculpting and create ancient, eroded stone carvings and bricks.

My progress was great, and I enjoyed it very much. After a few initial hiccups, I got comfortable with some of the brush types. For these sculpts I most frequently used Simplify, Scrape, Crease, Smooth and Draw with a custom rock patterned texture. I also switched my Viewport settings to show Cavity (world space) and disabled Specular lighting.

Creating large cracks

For the split wall parts, I took the whole base mesh and an irregular closed shape and set up a Boolean Modifier. I had to split the mesh to non-intersecting parts because I needed cut surfaces. With an intersecting mesh, the modifier didn’t work well. After the boolean was done, I checked for non-manifold edges and fixed some holes in the mesh. Sculpt mode hates those and I hated myself after learning that the hard way.

Detail Flood Fill (Dyntopo > Remesh settings) and Simplify brush helped me deal with sharp, large triangles after the boolean operation. I started to Scrape off the edges, and Smooth out some details to achieve a heavily eroded look of the mesh. I drew cracks with the Crease brush, then Pinched it to be thin and sharp. I locked the depth axis for this task to avoid filling up the crack. Finally, I took the Snake Hook to create some variance.

4. Remesh and Decimate

Oh, this was an especially tough lesson. It took me too much time to figure out that Blender has a life-saving Voxel Remesh (look at Object Data Properties > Remesh) option which solved my retopology problem in a few clicks.

This function creates an air-tight shell from a high poly mesh with quad-only topology, which you can Decimate (either a Decimate modifier or the Mesh Cleanup function) to be suitable for a game engine.

5. UV unwrapping and packing

Since I want to use triplanar texture projection, I didn’t fiddle too much with hiding UV seams. I want to max out my texture space, and these models have a lot of irregular pieces that need to be arranged efficiently. Until now I created my UV layouts manually or settled with the basic packing, but with this project I had to accept that these methods are A) slow and/or B) ineffectively use UV space. So I turned to Packmaster which I heard is one of the best UV packing tools for Blender. Now instead of using only 50% of my UV space, it can get up to 75% and more with a click of a button instead of playing Tetris in the editor for half an hour, which is amazing. 

What's Next?

This blog post is getting too long, so I will come back with the second part in a separate post in which I’ll share additional Blender Tools and techniques I like to use!

Cheers and see you soon!

Sources

Screenshots are my own work and free to use under Creative Commons (CC0) licence.

Tutorials: Sculpting a Gravestone

Image source for Lagunita Ruins: weather.com

Image source for featured: freepix.com

Substance to Unity: Material Converter Nodes

Creating PBR Materials for Unity

In an earlier post, I wrote about how to pack textures in different channels, and how to set up a PBR material for Unity’s Standard Shader. 

In this post, I would like to share a node setup I made for Substance Designer, to speed up material export to Unity.

When I first bashed together these nodes, I didn’t know much about exposing settings and creating conditions and buttons. I manually connected all the necessary conversion nodes for each project, and by some time, I realized I’m wasting my own production time by repeating things over and over. 

I knew that Substance is capable of creating incredible generators, and other artist tools that save you time so you can focus on the creative process, rather than playing connect-the-dots. 

Custom material converter and template

First, let me introduce the node setup for the Unity Converter node. Currently, it can receive six types of texture maps. 

  •  The base color is merged with the opacity mask, to create Albedo.
  • Normal maps are converted from DirectX to OpenGL format.
  • Roughness is inverted, then merged.
  • Metallic is merged into a combined map.
  • Ambient Occlusion is merged the same way.
  • Height is converted to sRGB format.

After everything is set, the node creates exports that are corresponding to Unity’s shader needs. By plugging your PBR material to this node, I didn’t have to make the conversions manually.

Mesh Materials vs. Terrain Materials

The converter can work in two modes: mesh material mode and terrain material mode. The former is the default usage, this one we know well already. The terrain material mode creates textures suitable for Unity’s built-in terrain shader. This needs two texture maps: Albedo and Normal. Within the alpha channel of the Albedo, the shader looks for a smoothness map. You can toggle between these modes in the node Instance Parameters, under Albedo Merge. In addition, you can choose to use opacity and ambient occlusion, or not with these simple buttons.

Here you can see the basic custom template I made for exporting to Unity. After I have a PBR Material I want to use in Unity, I just drag it into this template, plug, and it’s ready for export. You can view the inputs separately by pressing [1].

Work In Progress – Deadly Dungeon Traps

Creating the traps in 3D

As I wrote in the previous blog post, I planned the majority of the trap types on paper and collected reference images and photos. The next phase was to bring those ideas into 3D, so I pulled out Blender and started modeling. This is a quite straight forward job to do. I need to keep an eye on the model scale, triangle count, and topology. Since these are non-organic objects, there was nothing I had to skip or change drastically. I even found some add-ons to aid me with quick cogwheel generation. 

My texturing workflow is quite stable now, the only question was to Atlas or not to Atlas. In the end, I went with atlases, and I packed objects that are frequently going together and have the same scale. The largest objects have their own high-resolution texture sets.

Adjustable animations with scripts

The best part is watching the contraption come alive! As soon as the prefabs got ready, I turned to Adam. He wrote a couple of handy scripts to handle trap movement and behavior. I started to build traps from the parts. Let’s see how it turned out!

The gray spheres are waypoints for the vertical movement. With this component, I can set all movement parameters (duration, curve, reverse, etc.) freely, even in play mode. These trap animators can be combined, and with them, you can achieve complex movement, like rotating and moving to opposite directions or on a different axis.

Particles and audio effects

I also started to assembly the particle-based traps, such as fire, poison, cold, and gas. This fire trap below needed quite a few tries and some post-processing too. Considering that I’m moderately proficient with particles, I think this is an acceptable result:

As for the sounds, I downloaded free SFX from freesound.org, then hooked them up with the traps. Check out this video, where I walk around the technical demo scene and try out the mechanisms:

Summary

In the last two months, I worked almost every day with this package. I adjusted models, created variant textures, environment, demo scenes, and built countless working traps with the help of the scripted components. There is still work to do, mostly by extending Unity version support 2018.2.6. I also want to make some promotional media, high-resolution screenshots and videos, and of course a series of video tutorials where I will tell you about all the bells and whistles of the kit.

See you soon!

Join the discussion here: Forum

Shadowdancer Asset Resources

Here are all the assets we used to create Shadowdancer. Some of them we purchased, others were available for free. We put all of the necessary credits into our game, that you can access from the main menu by clicking on the Credits button.

Full disclosure: Some of the links below are affiliate links, which means if you choose to make a purchase, I will earn a commission. This commission comes at no additional cost to you. Please understand that I have experience with all of these assets and publishers, and I recommend them because they are helpful and useful, not because of the small commissions I make if you decide to buy something. Please do not spend any money on these products unless you feel you need them or that they will help you achieve your goals.

Game Base

We used these assets to build the core of the game, such as character controllers, damage system, etc.

3D Game Kit

Unity Technologies

A free starter kit by Unity Technologies for 3D Games. We relied heavily on the character controller, trigger functionality, interactions, enemy behavior, and more.

Shadow Detect

GloomyGlow Studio

The core of Shadowdancer’s ability is to know if you are in shadow or not. We expanded the capability of this asset to handle real-time shadows from multiple sources and occlusion.

Characters

While we used our own characters, we had to use these assets and tools to truly bring them to life:

Mixamo Animations

Adobe

We needed sneaking animation, and luckily we found an acceptable quality. We gave a try to the Auto rigger tool too, but it turned out that Rigify for Blender yielded a better result.

Longsword AnimSet

Kubold

The enemy character’s swordplay and attack behavior were based on Kubold’s animation set. This package is no longer available, but the publisher has several other packages that are worth buying.

Environment

All of the environment in Shadowdancer was made by us, some of them were already at hand, while other models (tents, puzzle room props, ruins) were made for this specific game.

Poly Environment

These are our cheery, low-poly natural environment model packs. All of them contains small dwellings and a few everyday objects too.

VFX and Particles

We needed special effects for Shadowdancer’s tranformation, as well as the shadow jump abilty marke. We also used effects from this pack in the mountainside particles and the puzzle room.

Magic Arsenal

Archanor VFX

This effects pack has a huge library of colorful magical and elemental effects complete with sounds. It is a simple and good source for kitbashing too.

Sounds

We used a few ambient sounds and effects in the game, here are our sources:

Game Audio GDC 2019

Sonniss.com

Sonniss is a proud sponsor of GDC and they generously shared a vast library of sound samples  during the event. We used some effects from their library.

Freesound

Music Technology Group

We used some Creative Commons licenced ambient sounds from freesound.org for outdoor and indoor environments, as well as some sound effects such as falling rocks.

Sources:

All images are from their respective asset store page or website.

Work In Progress – Traps Collection

The Inspiration

There could be no proper dungeons or ancient burial sites without some deadly traps in any fantasy or adventure game! Our biggest art pack Dark Fantasy Kit sadly missed this handy feature to keep unwanted visitors/looters out.  So I decided that the next batch of models would be mechanical dungeon traps.

Since I am a huge adventure game fan, I have plenty of experience with dungeon traps of any sorts. I remember how much I liked traversing through the trap-filled corridors in Tomb Raider, or jumping surprised when a spiked grate smashed poor Dragonborn in Skyrim. I also found unique the disable device mechanics in Dungeons & Dragons Online, where a rogue or similar character can search, find, and disarm traps in the dungeon to help his party members moving forward.

Traversing across traps in Tomb Raider Anniversary
Sneaking around and trying to spot traps in Skyrim
Blazing fire traps in Dungeons & Dragons Online.

My aim with this pack is threefold:

  • To create standalone, drag-and-drop traps for Unity, complete with particles, animation, sound, and triggers
  • Improve my modeling and texturing skills
  • Advance my knowledge on Unity triggers & events system.

Planning forward

Usually, before I jump into a project like this, I like to organize my thoughts, references, and estimate roughly how long it will take. I pop up a spreadsheet and fill out a few details about the models – how many models I want, are there any variants, what resources I’ll need. I also create a reference folder where I gather photos from Google. After that, I make a separate progress sheet or create a Trello board to track my progress. I like to mark finished items with green, in-progress with orange, and problematic elements with red.

Prototyping

While working on Shadowdancer, I learned the importance of prototyping. I try to incorporate good habits into other fields of my profession, such as asset creation.

In about 4-5 hours, I created the first draft from one of the traps – I choose a flying spear trap, one of my favorites. I don’t aim to be perfect this time, just want to know the estimated complexity and time for one piece, so I can see the scope of the whole work.

This was a good opportunity to expand my knowledge about glTF2 format and real-time rendering in browsers. So I uploaded the animated spear trap with a dungeon wall to Sketchfab. As you can see, this didn’t go perfectly – some of the material colors are off, audio is missing, and Sketchfab doesn’t support particles and trails. At this point, this is not a problem, since I use Sketchfab for static 3D presentation only. This made me decide that I definitely need detailed videos showing all the features and effects.

This is how the Spear Trap is set up in the editor

External resources

Since I want this pack to be an out-of-the-box solution, I will need some additional resources that I’m not proficient with- scripts and sounds. The traps need to react to player characters with trigger zones. I could achieve this with the 3D Game Kit, and I probably will do a demo with that solution too. I’m sure Adam will gladly help me deal with custom scripts, such as controlling the trap animations and synchronize effects.

About sounds – it is unclear what would work best. I want the sounds to be a similar style and more importantly, similar quality. There are several options to solve this: one is to dig around online sound marketplaces such as Sonniss.com, Soundsnap, Soundcloud, and buy sound effects individually. I’m not sure if this is the best solution since these are stock sounds, their format and compression might not be suitable for game engines.

Another option is to team up with a freelancer or a professional sound designer and custom order the effects – usually, multiple formats and compression are provided, at a reasonable price and high quality.

Lastly, I could search for a suitable sound package on the Asset store and create a dependency in my project. Sound effect packs are numerous. Dungeon traps are a specific theme, and I probably won’t need more than a dozen effects for this pack to stay light and affordable. 

Time scale - when will it be ready?

This prototype helped me to estimate the time I need for the whole collection. I finished one particular trap model in 4-5 hours, and another couple hours for setting up the animations, and prefab variants. This means I can be ready with the static models in about 1-2 weeks, then I can move to set up animations, particles, and sound, and creating the prefabs.

Image source: ddo.com

Shadowdancer Devblog #9

Welcome back! Last week I promised I’ll show some major visual changes in the game. Let’s see what we have here!

Finally Sneaky! Moonlight environment

One of our dear playtesters during the course pointed out that the overall style is cheery and bright. Too bright for a stealth game, actually. I glanced at our favorite stealth games and immediately noticed that this has to change before the first playable release.

Originally we planned that Shadowdancer will travel through various locations, including forest outskirts, natural caves, ruins, and underground. With the limitations I mentioned earlier, we made this demo in a forest/mountainside environment. We both loved the real-time lighting, post effects, and soft colors, and it stayed that way for the whole 8 weeks, as we were focusing on refining the gameplay and the interactions.

During the next few days, I copied the original level and rebuilt the lighting for a night environment. The procedural Sky and the toned down global illumination did the trick! But now the scene was overly dark, with only Shadowdancer’s tattoos and runes glowing. To resolve this, I added torches to the scene to highlight important areas and create counterpoints for the dark evening sky.

In this short video you can see how darkness changed the whole mood of the game.

Main Menu and Title Screen

I finally took time and started learning how to use Cinemachine and Timeline. I aimed to create an animated title screen. For this, I choose the windy cliff near the temple.

I put a few additional rocks, ruins, and a campfire into the scene. Then I set up animation, just an “idle” loop, for now. Finally, I created a Cinemachine dolly track and set the camera to look at the character. The camera will slowly rotate around, while the menu elements stay on the left.

What comes next?

We upload the current version, and you can try it out! Any kind of constructive feedback is welcome. Please keep in mind that this is a learning project, and it is at a very early stage. In the following weeks, we are planning to do some minor fixes, and a bit of further project management to see how we can expand the game with more levels.

Thank you for reading, I hope you enjoyed this post.
See you soon!

Shadowdancer Devblog Week 8 and beyond

With this post, I would like to show some progress we made on the 8th week and tell what are our plans after that. My name is Dotti, and my role in this project was creating visuals – environments, characters, mood, and a little bit of level design.

In the USC+Unity course, we had several milestones and deliverables over the 8 weeks. We had to upload documents, spreadsheets, and playable demo. We were able to create a vertical slice with all the gameplay features ready for the last week, and we were able to create a stylized level environment and characters with our resources. After the 8th week, we won’t be able to work on this game full-time anymore, but this doesn’t mean we abandon Shadowdancer. We will upload, and update the latest build and release it for playtesting purposes.

Let’s see what we get done this week!

Fixing Shadow Jump issues

I noticed while testing the shadow jump ability that sometimes the character bounces off from ledges during the dash. It seemed that wall detection was faulty when hitting a thin edge. Adam added an offset to the ground ray cast and replaced it with a Spere cast to find landing spots more accurate. Shadow dash landing is now more stable.

Refine UI: add dash info and help icons

There was insufficient information on the screen about the jump and shadow jump. I added a status marker and key hint to the UI. I wanted to keep it simple and readable for now.

I also updated the Help info panel with icons. Unfortunately, while fiddling with UI element positioning settings, I broke the Objective tracker and got it off the screen. I need to fix that with the next update.

The Help panel is now more readable and will help players distinguish between character modes

Decorating and the Puzzle Room

The Puzzle Room still felt a little empty, so I dressed it up with more crumbling walls, floating dust particles, and added hover beams instead of columns to the rotating puzzle tables. This way the columns won’t block the view and will not cast confusing shadows to the seal.

I also implemented the Light Entity to break free of his prison after Shadowdancer activates the seal. This will mark the end of the demo.

Setting up trigger zones and interactables in Unity

Checkpoint Issues

One of our friends sent us videos of the gameplay recently. It was interesting to see how she played the game – back then there were no shadow runes to show the right path, so she wandered around in the valley, and missed checkpoints.

I aimed to fix that, so I adjusted the checkpoints in a way that the player will always hit them, no matter which way he chooses. I marked the trail to the Shadow Gate with glowing runes. 

We also added enemy overhead awareness markers.

End of Week 8: taking a break

After we uploaded the Vertical slice to USC course’s site, we had to have a break. These 8 weeks were fairly intensive for us, we learned so much and achieved a playable demo for the game! Now we have to return to our usual schedule, to keep Runemark Studio fresh and updated.

Thanks for your attention, and I hope you enjoyed this article! In the next blog post, I will reveal a surprising event about the game mood and visuals! See you next time!

25GB+ High Quality Sound Effects for FREE

SONNISS.COM giving away more than 25GB of royalty-free and commercially useable high-quality sound effects as a celebration of GDC 2019.

The package contains about 1000 audio files in a wide range of topics: nature sounds, manipulating everyday objects, explosions etc. You can check the complete tracklist HERE.

About Sonniss.com

Sonniss.com was launched in 2014, nowadays they have more than 300.000 sound effects from city ambiance to futuristic weapons. All of them are high-quality, and the company has a strict quality control procedure to assure it stays that way.

Their sounds have been used in Emmy-award winning films, world-renowned TV shows, high-budget AAA games, indie productions, and popular apps.

Simple texture atlas creation

In this guide, I want to show how I worked on update 1.1 of our 3D, cartoon-style “Poly” environment packs. I go through the process using our freely downloadable Poly Desert Pack.

Why use a texture atlas?

In the previous version (1.0) I used Material colors only. Modifying the color is straightforward and can be achieved in the Inspector or during runtime. But it also means that I have one Material for each color present. This is not a problem when you have a small scene, but can cause performance issues in densely populated areas with high triangle count.

One Material for each color present in the PolyDesert Pack.

How to create a basic color texture atlas

Step 1: Create meshes, and set material colors

In this older article, I write about how I created the basic meshes for PolyDesert package. I set up individual material slots according to colors.

At this stage, every color is represented with a material slot.

Step 2: UV unwrap and arrangement

When unwrapping, I tend to keep the UV shell number as low and undistorted as possible. This is especially important on large objects such as cliffs – they should be ready for lightmapping. From a texturing point of view, it is allowed to create overlapping UVs, for example, all the thorn’s UVs can share the same place. Unity can take care on creating lightmap UVs for these objects if needed.

Step 3: Create a color texture atlas

The Material Combiner add-on creates texture atlases for each selected object.

Here comes the magic! The traditional way for creating a color atlas is to gather your textures and lay them out in an image editing software. Then adjust the UVs in Blender to match those textures.

I recently found a cool add-on to automate the color palette creation and material combining. With MaterialCombiner, I select all the meshes I want to share an atlas, set the image size to Power of 2, then hit the Combine button.

The add-on adjusts UVs according to materials and creates an atlas with the colors of each one, and changes the material slot on all models. Because of this, it is advised to create a backup before combining.

Step 4: Check Material slots and UVs

This step is for making sure that everything looks like it should be. To view how the models would look in the game engine, change the render type to Game and 3D View shading to Texture. I search for culling and normal facing issues this way.

Some of the flower's face normals are flipped here, they will be culled in the game engine unless fixed.

Step 5: Export models to Unity

I exported the models in OBJ format, with a single material slot. Then I imported them to Unity and added the color palette texture to the material. You can speed up the export/import process if you are saving the models directly into the Unity projects folders.

In the Mobile version, each mesh now uses a single Material and a 256x256 color texture atlas.

Thanks for reading, I hope some of you will benefit from this guide.

If you have questions or suggestions on this topic, you can share your thoughts in the comments section below!