When you import the asset into your project, you’ll get a CorgiEngine folder, containing three subfolders. I recommend leaving that folder as it is, and not modifying its content. Instead, create a dedicated folder for your game’s assets, and if you need to modify code, just extend the Corgi Engine’s class into one of yours. If you want to know more about that, look at the “Inheritance” section. Here’s a rundown of the contents of these four folders, and of the general folder structure.
As the name implies, Common contains all the scripts and visual assets necessary for the mobile controls to work. You’ll want to keep that folder in your game. The main structure is made of the following folders :
- Animations : all the common animations (mostly GUI stuff).
- Fonts : the fonts used in the various GUI screens are stored there.
- Materials : a few materials used across most demos, but not specific to any.
- Prefabs : all the prefabs used throughout the various demo levels.
- Resources : the prefabs that are instantiated via code directly.
- Scripts : the “core” of the engine, and where most of its value resides. We’ll go over the details in a minute.
- Sprites : all the sprites common to all demos. Again, mostly GUI stuff.
The Scripts folder is where all the engine’s scripts are stored. Each demo may have one or more specific scripts, but otherwise it’s somewhere in there. Note that the MMTools scripts are located in another of the root folders, for easier maintenance and better logic separation. Here are the main Scripts folders :
- Agents : here you’ll find all the scripts that make the characters move and act. From the raycast collision controller, character abilities, to AI scripts and weapons.
- Camera : various camera related scripts, parallax stuff, etc.
- Checkpoints : Most of the scripts related to the “game cycle” (spawn, end of level, etc.) is in this folder.
- Environment : From falling blocks to teleporters, you’ll find in this folder most of the scripts that handle the level’s objects.
- GUI : As the name implies, here you’ll find everything GUI related : dialogue boxes, pause screens, etc.
- Items : Coins or pickable weapons can be found in this folder.
- Managers : All managers (“super” classes, often singletons, that handle global stuff) are in this.
- Sound : All sound specific scripts go in there.
The Demos folder contains all the demos included in the engine. They’re grouped by “universe”, each universe may contain one or more scene. Usually each demo aims at showcasing one or more particular aspects of the engine, or how you can achieve different results with just a few tweaks and different art.
- BrobroLevel : A completely destructible level inspired by Free Lives’ Broforce.
- Lava : a hot level.
- Mesa1 : the very first level created for this engine. Includes a little bit of everything.
- Mesa2 : a variation on a classic theme.
- Mountains : a mountain based scene, complete with wind and falling leaves.
- Sandbox : a scene mostly used to quickly test stuff. Don’t look at it too hard. It’s got issues.
- Corgi3D : a very basic 3D level, filled with ready-to-use prototyping blocks.
- Corgi3DxTheHunt : the same level, but with the Red Soldier character from TheHunt.
- NewCorgi3D : a new 3D level with new props, background elements, and a brand new 3D character.
- LevelSelection : a carousel based level selection screen
- LevelSelectionMap : a map based level selection, complete with path controls.
- FeaturesGravity : a scene showcasing different ways to play with gravity in the Corgi Engine, whether via zones, points or per Character.
- FeaturesInventory : a demo showcasing how items and inventory work in the engine
- FeaturesKeys : a level to demonstrate how to use keys to open doors, chests to get items, and generally interact with stuff in your levels.
- FeaturesPlatforms : an interactive demo of all the platform related features of the asset.
- FeaturesPlatformsGravityFlipped : the FeaturesPlatforms demo level, but with gravity flipped.
- FeaturesWeapons : a level showing how weapons, ammo, ammo pickers, etc. work in the Corgi Engine.
- Minimal4Players : the minimal requirements for a local multiplayer scene.
- MinimalCharacterSwap : this demo level lets you swap character, among a pool of idle or AI controller characters at a press of the P key.
- MinimalCharacterSwitch : a demo scene showcasing how you can have your whole character prefab replaced with another at a press of the P key.
- MinimalFlight : a level containing a retro corgi character with the CharacterFly ability. Press the fly key (v by default) and fly around. Release it to get back down.
- MinimalLevel : the minimal requirements for a singleplayer scene.
- MinimalModelSwitch : the same thing but this time only the model gets replaced, using the CharacterSwitchModel character ability.
- MinimalOneWayLevelAutoScrolling : a demo of a level where you can only go right, never move the camera back left, and where the camera keeps moving right.
- MinimalOneWayLevelHorizontal : a demo of a level where you can only go right, and never move the camera back left
- MinimalOneWayLevelVertical : a level where you can only go up, going back down will kill you
- MinimalPixelPerfect : an example of a level setup with a pixel perfect camera
- MinimalRooms1 : a demo to explain how to setup a level to have different rooms and ways to get from one to the other
- MinimalRooms2 : a demo accessible from MinimalRooms1 continuing to showcase how you can go from scene to scene via certain entry/exit points*
- MinimalSlopes : a simple demo with slopes and a character that will change orientation to match the normal of the slope it’s on
- MinimalSpawners : a level containing an enemy spawner, that will spawn more enemies if you kill some.
- MinimalStairs : a level with various examples of stairs.
- PixelLevel : a pixelated tile based level.
- RetroAI : a retro themed level showcasing many examples of the Advanced AI system, including flying ghosts, machine gunners, swordsmen and a gigantic bunny boss
- RetroClouds : a tilemap based level showcasing a vast range of surfaces (ice, sticky…), platform types and props.
- RetroCopter : a retro themed level featuring a flying helicopter armed with a heavy pattern-based machine gun
- RetroForest : a tilemap based level focusing on weapons and enemies
- RetroMountains : a tilemap based level mostly focused on key and chests / puzzle mechanics
- RetroPush : a retro themed level showcasing both the push/pull mechanic, and the ledge grab/hang/climb one
- RetroVania : a retro themed level that demonstrates the power of the Rooms system, connecting multiple sections into one big level
The Retro Adventure folder and the levels it includes is a bit special, in that it’s the only linked levels in the engine. All the other scenes are independent from one another, and meant to showcase various features of the engine. The Retro Adventure is an example of how you can create an actual game in the engine, linking levels together, saving progress as you go (it shows how to save collected stars, lives, and unlocked levels).
- RetroAdventureCharacterSelection : start your adventure with this scene, which will offer you a choice of characters that you can keep during the whole chain of levels.
- RetroAdventureLevelSelection : a level selector to go from one level to the next in the Retro Adventure
- RetroAdventure1 : level1 of the RetroAdventure series
- RetroAdventure2 : level2 of the RetroAdventure series
- RetroAdventure3 : level3 of the RetroAdventure series
- RetroAdventure4 : level4 of the RetroAdventure series
- RetroAdventure5 : level5 of the RetroAdventure series
- RetroAdventureGameOver : The game over screen displayed when all lives are lost in the Retro Adventure
Super Hipster Bros
- HipsterLevel : a classic, retro, sidescrolling platformer, inspired by Super Mario Bros.
- TheHunt : a multiplayer, 3D, 4vs4 level, inspired by Smash Bros and Towerfall and stuff like that.
ThirdParty contains scripts and resources that are not directly specific to the Corgi Engine.
- The Inventory Engine is another asset by More Mountains, usually sold separately, but included in the Corgi Engine as a gift. As its name implies, it’ll help with creating and customizing inventories.
- MMInterface is a library and resources by More Mountains, aimed at speeding up the process of creating UI screens in Unity.
- The MMTools are helpers and small classes used throughout all More Mountains assets. Some of them may not be used in the Corgi Engine, but I’d advise against removing them. The unused ones won’t make your build heavier, so it’s just safer and simpler to keep them. This documentation doesn’t cover them in details, but they’re all commented, and explained in the API documentation if you’re interested.
Introduced in v4.0 of the Corgi Engine, the InventoryEngine is More Mountains’ complete inventory solution. In addition to that (usually) separate asset, you also get ready to use items and dedicated Corgi Engine specific demos.
The Corgi Engine relies on Unity’s Standard Assets’ Cinematic Effects to give a little sparkle to some of the demo levels. These are purely cosmetic, and optional. Note that they’ll also harm performance on certain devices. Feel free to remove them safely.