Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

151 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ascentroid Map Kit

Current Build Status: Prototype / Experimental

The Ascentroid Map Kit is an Unreal Engine 4 ("UE") plugin you install into the UE editor to assist with the creation of campaigns and levels for Ascentroid.

The map kit, essentially, builds a *.pak file, which treats your campaign/content like a game MOD for Ascentroid. It will also use a custom *.json file for important, and required, meta data for your campaign.

What's great about this is that it allows map creators to utilize almost all of the full features/capabilities of UE!

Prerequisites

  1. Only Windows, x64 is supported right now. Make sure you meet the required Hardware and Software Specifications for Unreal Engine.

  2. Since UE treats a campaign like a MOD, it requires Microsoft's C++ compiler. You have two options:

  1. Install Unreal Engine 4.26.2 by following the official installation guide. When prompted, select the Publishing License.
  • IMPORTANT: You MUST install the specific UE version 4.26.2. Do NOT install a different version! Ascentroid is built on 4.26.2. If you use a different version, your campaigns will NOT work! If you create a campaign on the wrong engine version, you will have to delete it and re-create it with the correct engine version!

Imgur

  • #1: In the Epic Games Launcher, click Unreal Engine on the left menu.
  • #2: Click Library on the top menu.
  • #3: Click the [+] icon to the right of Engine Versions.
  • #4: Click the dropdown on the engine version number.
  • #5: Select 4.26.2 from the dropdown and click install. When the install is finsihed, this is the version that should appear as installed:

Imgur

  1. If not already installed, install the .NET SDK 4.6.2. This is required for the Unreal Engine Swarm Engine (needed for light building).

Note: you may need to run all installations as a Windows Administrator user.




Setup Your Campaign Project

  1. Install Ascentroid (the game). The latest test builds are posted in the Ascentroid Discord in the #downloads channel.

  2. Install the Ascentroid Map Kit Tool (as a Windows Administrator): ascentroid-mapkit-tool_0.0.1_x64_en-US.msi

  3. Use the Ascentroid Map Kit Tool to create a campaign.

  4. All content must be placed in the UE project Campaign Content folder, or it will not get cooked into your *.pak file!

  5. There should be an Ascentroid editor panel in the Unreal Engine editor to help you create Ascentroid content for your level(s). Look for the icon in the main toolbar.

  6. Consult the FAQ in the Ascentroid editor panel. Use it as a guide.

  7. Remember to bake lights and do not use dynamic lighting (for performance)!

  8. Use the "Cook" button in the Ascentroid Map Kit Tool to create the *.json and *.pak files for your campaign.

  9. Use the "Backup" button in the Ascentroid Map Kit Tool to make backup copies of your Unreal Engine project (as needed).

  10. The *.json and *.pak files for your campaign will be copied to the Ascentroid game folder:

[game root]\Ascentroid\Content\Ascentroid\Campaigns
  1. If everything worked, you can now test your campaign in the game, Ascentroid!

  2. Visit Github for more documentation: https://github.com/Ascentroid/Ascentroid

  3. Visit YouTube for tutorials: http://youtube.ascentroid.com




Important Notes

  1. All content must be placed in the Campaign Content folder, or it will not get cooked into your *.pak file!

  2. Everything you see in this map kit and documentation is subject to change as development progresses. If you have a question or comment, let me know.

  3. Ascentroid uses a large scale in order to fix problems with collision. A cube scale of 20m x 20m x 20m is the general standard.

  4. Read the FAQ.




How do I build stuff?

You may want to learn some basics about Unreal Engine:


If you don't want to learn 3D modeling tools, you can try some Fab assets:

Mesh Tool - highly recommended!

Mesh Tool is available on Fab or Itch. It is a commercial (paid) UE plugin which allows you to edit mesh assets and prototype props and levels without leaving the UE Editor. It also includes basic UV mapping tools!

MeshTool

MeshTool

Mesh Tool links:

Tip: Keep an eye out for asset sales. Sometimes you can get a helpful tool for less, or even sometimes free, during a sale.


Other Fab Assets

You can try using more assets from Fab here: https://www.fab.com/


Use 3D tools:




Importing 3D Meshes into UE

If you want per-poly collision on the 3D mesh you are going to import into UE:

  • When importing your FBX, uncheck Auto Generate Collision:

Imgur

  • Once it has been imported, edit your mesh in UE and go to the collision properties. Set the Collision Complexity to Use Complex Collision As Simple. This tells the engine to use per-poly collision on this mesh.

Imgur




Import levels from other games

Descent 1 and 2:

Convert old levels using Arne's DesLevelObj tool:

The Ascentroid Map Kit includes a texture remapping definition file you can use with DesLevelObj here:

Convert OBJ to FBX using AutoDesk FBX Converter 2013:

Imgur

Common steps in Unreal Engine's editor (not in order) to perform a level conversion (this might become obsolete over time):

  • Unreal Engine world settings: Set num skylights to 0 (this saves some light build processing time)
  • Unreal Engine world settings: Check "Force no precompute lights" (this sets lights to fully dynamic, so you can build without having to light build)
  • Unreal Engine level: Place global items and effects
  • Unreal Engine level: Place global lights, amount, positioning
  • Unreal Engine level: Setup navmap, positioning, sizing to encompass the level with some padding (necessary, otherwise the navmap fog of war won't work)
  • Unreal Engine world outliner: Folder organization!
  • Unreal Engine content manager: Folder organization!
  • Unreal Engine content manager: Import FBX of your level and review the import options
  • Unreal Engine content manager: Update your level static mesh to set Collision Complexity to "Use Complex Collision as Simple"
  • Unreal Engine content manager: Update your level static mesh Light Map Resolution to something high like "1024" or "2048" ("1024" is usually high enough)
  • Unreal Engine content manager: Move textures to its own content folder
  • Unreal Engine content manager: Move materials to its own content folder
  • Unreal Engine content manager: Edit materials (for cartoony style, set Metallic and Specular to "0" (zero), and Roughness to "1"); alternatively, use the "M_Conversion" material in the map kit as a parent material for your own material interfaces
  • Unreal Engine level: Add player starts from the map kit
  • Unreal Engine level: Add powerup respawn triggers from the map kit
  • Unreal Engine level: Add doors from the map kit (remember to set unique IDs for all!)
  • Unreal Engine level: Add decor (grates, signs, etc)
  • Unreal Engine level: Add lights (copy from template campaign if you want)
  • Unreal Engine level: Add powerups from the map kit
  • Unreal Engine level: Add level author decor letters and lights for them (if you want)
  • Unreal Engine level: Add any desired triggers from the map kit (if applicable)
  • Unreal Engine level: Add any desired Blueprint scripting (if applicable)
  • Unreal Engine world settings: Uncheck "Force no precompute lights" (turns off dynamic lights to prepare for light building)
  • Unreal Engine level: Adjust global lights (lights will be brighter when light building, so turn them down)
  • Unreal Engine light build settings: Set the light build quality to "Production"
  • Unreal Engine level: Build lights
  • Unreal Engine content manager: Fix level light map UVs and resolution if necessary; you may have to break up your level static meshes to fix lightmap UV overlaps; also give all your level static meshes an actor tag of "Level" (without quotes, case sensitive)
  • Unreal Engine level: Tweak and build lights repeatedly until you get it right (toggle "Force no precompute lights" in world settings to help; switch from dynamic to static to dynamic to static repeatedly to help figure out good lighting techniques in combination with light building [with the goal of producing final, baked, static lights])
  • Unreal Engine level: Run Cook
  • Finally: Test your campaign in the game. If it looks good, zip the campaign json and pak files, and offer to players (mission database may become available in the future, recommend something like Google Drive in the meantime)




Ascentroid Map Kit Usage

Overview

The Ascentroid map kit contains pre-fab assets and actors you can use in your UE campaign project level(s).

Pre-fab Content

  • Use the Ascentroid UE editor panel to add pre-fab content. Feel free to explore this content to use in your project.

  • If you instead wanted to use your own material(s), create them in the Campaign Content folder, and then use it on a pre-fab. It should work. All content in the AscMapKit Content folder is shared with the game runtime. You should even be able to, for example, create material instances that reference base materials inside the AscMapKit Content folder. However, if this doesn't work, please let me know right away.

  • I'll be adding more pre-fab asset content to the map kit as it is developed. Eventually, I foresee the community developing and submitting new assets for the map kit as well! Perhaps, in the future, we could even build a completely separate, community asset pack system!

Summary

It's important to remember, in general, that not all actor properties are enabled/functional yet. All properties and behaviors are subject to change as development of the map kit progresses.

If you have any questions about the map kit content, properties, etc, please email me, or find me on the Ascentroid Discord.




Keep in mind performance/optimization

  • Use baked lighting. Avoid full dynamic lighting. What I've learned to do is to use full dynamic lighting while developing a level and testing it out. When I get close to finishing a level, I will switch all of the lighting from dynamic to baked. When ready for production, I'll change the Lighting Quality to Production, and change all of my static mesh asset's Lightmap Resolutions to 1024 (or higher). Caution: baking lights requires lightmap UVs to be setup on your static meshes, and none of them can be overlapping. Different kinds of 3D Tools handle this by placing the lightmap UVs on a separate channel. Due to the subjective nature of this process, you will have to handle this on your own. You should be able to find tutorials on YouTube to figure out how to do this.

  • If possible, use Instanced Static Meshes and/or Hierarchical Instanced Static Meshes (HISM). You can do amazing optimizations using these techniques/tools.

  • If you are going to use high-poly 3D meshes, I recommend learning how to setup LOD groups. Here is a tutorial: https://www.youtube.com/watch?v=li5qraDIZIM

  • If your level static meshes are high-poly, it would be a good idea to break them apart into several smaller mesh pieces (instead of one big mesh). If you are using per-poly collision for your level mesh, a giant mesh will require more computation and likely affect game performance. Smaller meshes should perform better. However, if your level is small and doesn't have many polygons, a single mesh is probably fine. You will have to test it out and decide for yourself.

  • If you have more performance/optimization tips you'd like added, please email me, or find me on the Ascentroid Discord.




MOD Support

Ascentroid has limited Blueprint scripting support. More to come later.

The Ascentroid Map Kit Tool currently has pre-alpha/prototype support for UnLua. Download the tool and take a look at the MOD section. Also, more to come later.




Version Control

You should keep your UE campaign projects saved somewhere!

I highly recommend something like Git (with LFS enabled) (and learning it if you don't know it).

You can setup free accounts with services like Github, or Bitbucket.

Alternatively, you could setup a local Git server using something like Bonobo Git Server, or Gitea.

You could also use Linux to host a Git server.

At the bare minimum, using something as simple as Google Drive, OneDrive and/or Backblaze would be a good idea.

You decide.

Note: when Ascentroid gets updated, sometimes I have to upgrade UE core engine versions. This will impact the Ascentroid map kit, and your campaign project(s)! Keep your campaign projects backed up somewhere, because you will be required to go through these upgrades in the future, too, if you want your maps to be compatible with upgrades! I don't have all the details on how this will work yet, but when I do, I'll be adding more information to this documentation. The main thing is, for now: keep your campaign projects backed up!




Acknowledgments

  • Special thanks to Diamond Wolf for contributing a lot of feedback on the map kit while it was being developed. A lot of his ideas were incorporated into what you see. He also made the level in the campaign Rubicon, which was the first community-based level imported into Ascentroid using the map kit.
  • Special thanks to Blarget2 for testing out the map kit first.
  • Special thanks to Arne for making DesLevelObj and allowing me to submit pull requests.
  • Special thanks to rethink for testing the map kit extensively and offering tons of suggestions/improvements.
  • Special thanks to Obi-Wan and rethink for helping test the entire game.

Contact

Please email me at ascentroid@gmail.com, or find me on the Ascentroid Discord. My online handle is Verran.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Ascentroid is a free-flight, six-degree-of-freedom scifi first person shooter game built on Unreal Engine 4 with peer-to-peer (P2P) multiplayer support.

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages