Code Monkey home page Code Monkey logo

leveleditor's Introduction

LevelEditor

The LevelEditor is a software tool used to design levels (maps, campaigns, and virtual worlds) for a video game. A level editor is used by a game designer.

The standalone LevelEditor is a fully functional modern level editor. Using the LevelEditor, you can design a game world for any video game engine. You can create and lay out terrain, place static game objects in the world (such as rocks, plants, street lights, or buildings), place light sources for game objects, and place Linears for dynamic game objects.

The LevelEditor leverages the Authoring Tools Framework and C# for user interface and data management, and leverages the power of C++ and Microsoft® DirectX® 11 for 3D rendering.

Originally built from the Authoring Tools Framework, the LevelEditor offers a WYSIWYG interface and a variety of features that support asset management, game object creation, scene layout, and cross-team development. The LevelEditor can also be customized and extended by creating plug-ins. For more about the Level Editor's capabilities, see LevelEditor Features & Benefits.

The following LevelEditor features help you construct game levels efficiently and collaboratively:

  • Work with a variety of file formats
  • Associate assets with game objects
  • Position, rotate, scale, and snap game objects precisely
  • Edit game object properties
  • Show or hide groups of game objects to unclutter the view as you work
  • Construct Linears (lines and curves)

LevelEditor Design View

LevelEditor Minimal System Requirements

  • Microsoft Windows® 7 64-bit SP1 with platform update or newer.
  • Microsoft DirectX® 10 compatible graphics card or newer.

Development Environment:

  • Microsoft Visual Studio 2010 Pro ** Windows SDK 8.1 installed at default location.
  • Or Visual Studio 2013 Pro

Getting Started

To build/run LevelEditor:

  1. Open the solution Leveleditor\build\LevelEditor.vs2010.sln in Visual Studio 2010 or later.
  2. Change the configuration to Release and then build LevelEditor.
  3. Navigate to the directory in which LevelEditor is built and double-click the file LevelEditor.exe to start LevelEditor.
  4. After LevelEditor starts, select Edit->Preferences and use the Preferences dialog to set the resource root to a location that contains a few ATGI or Collada files and then restart LevelEditor. (Restart LevelEditor just in case).
  5. Drag/drop a few 3D assets from the Resources windows to either the DesignView or the Project lister.

Important note about performance: The release build of LvEdRenderingEngine.dll is much faster than the debug build when loading levels and rendering.

More Info

LevelEditor wiki pages: https://github.com/SonyWWS/LevelEditor/wiki

leveleditor's People

Contributors

abeckus avatar gstaas avatar ron2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

leveleditor's Issues

32-bit target?

It's said the LevelEditor works with Win7 32-bit. Following the docs and building the Level Editor with VS2010 as explained just gives me only a 64-bit target (x64) for the building process which won't work on my 32-bit Windows 7. So how to build a 32-bit one?

ResourceListener - managed usage?

Hello! As per topic - I find myself in need of a resource-loaded listener in managed land, and for the life of me I can't seem to find one. The use case is, loading a game object definition file that contains game object component definitions, and then resolving and instantiating components for those definitions once the file has been loaded.

If the functionality doesn't exist yet I'll take a swing at it, but I figured I'd ask just in case.

Poor Collada support - Doesn't support Z up axis

Hi,

I've been experimenting with the LevelEditor, I want to work with mostly Collada model assets. However the geometry is based on the Z-axis being upwards. Despite this being indicated in the Collada file with ''<up_axis>Z_UP</up_axis>" in the asset section, when imported models are orientated incorrectly.

I was wondering if it was possible to add support so the LevelEditor automatically accounts for a Z-UP axis and translates it to its own coordinate system.

As I'm relatively new to the code base I was hoping someone could point out where I should make adjustments and what adjustments should be made.

Screenshot of default orientation for a Z-up model

Thanks

Improve details in docs

The docs seem very sparse, especially with:

Work with a variety of file formats

What do these include?

Compilation error under Win8.1 w/ DXSDK

The solution is pretty easy
Change the Include directories of LvEdRenderingEngine to
$(IncludePath);$(DXSDK_DIR)Include;
And Library directories to
$(LibraryPath);$(DXSDK_DIR)Lib\x64

README mentions dependencies too late and lacks screenshots

I think README should be improved:

  • Mention that it's not just levels for any games, but levels for games using some particula framework. This can also be mentioned in repository description;
  • Screenshots whould be nice, as in any readme of a GUI application.

Application does not select correct GPU for rendering

I've got two GPUs in my system. Nvidia Geforce GT440 (dx9) and AMD R9-290x (dx11). There is no display connected to the Nvidia card. The application merely picks the second one to appear in the list of devices obtained (DeviceManager.cpp, line 50).

This is a problem because there is no prejudice regarding the level of directx on the card. The application merely crashes because it has selected a non dx11 compatible card.

Sample Request - Aggregate Data Structures on GameObjects

I've been spinning my wheels trying to wrap my head around how to share data types between different GameObjects and have their attributes show up in the editor. I believe what I'm trying to do is embed complex types inside complex types and have their simple types show up in the Properties Panel.

Is it possible to do this currently with level_editor.xsd or is this a use that isn't currently built in? If it is a sample would be very appreciated. My use case is to create components I can share across different GameObjects without having to add every single property to each new GameObject.

Cheers,
-Bert

Is there a limitation of up to 8 layers for the Terrain Editor?

I went through the code and found it in the rendering part. Adding the ninth layer just results a crash (not an exception), which I believes residing in the same module too.

If it's the case, I suggest it should be listed as a limitation (I did not found it in the wiki and documentation), and provide some message in the application notifying user not to add too many layers.

DomGen.exe Dependency

Hi

I'm trying to add an own new GameObjectType according to LevelEditor-ProgrammigGuide.
Although It says "Run the GenSchemaDef.bat", that .bat file couldn't find DomGen.exe.
Because it points relative path "......\wws_atf\DevTools\DomGen\bin\DomGen.exe" which is out of LevelEditor repository. Then I need to checkout ATF separately and fix the path.

It's not that big problem though, it is helpful if LevelEditor repository includes DomGen.exe.

Thanks,
Shintaro Iguchi

VS 2019 Support

Hello! Can we get support for newer visual studio versions?

Request for advice: customised document types

Hi!,

I've been experimenting with integrating the LevelEditor code with an existing engine. So far it's gone very well! I'm hoping to fork the code and build some customised object and manipulator types to suit our needs.

In particular, I'd like to support more top-level "Document" types. It's convenient for us to have many specialised document types, wherein each document contains a separate dom node hierarchy. One document might contain static object placements. Another document might contain nodes with AI data. Another might contain FX data, etc.

So, rather than having a single giant dom hierarchy containing all object types, we would have many smaller dom hierarchies with specialised object types.

I've done some experiments, and the best solution I've found is to implement the IGameDocument interface for each document.

So, eg:

public class PlacementsDocument : DomDocument, IGamePlacement {}
public class AIMarkupDocument : DomDocument, IGamePlacement {}

This allows us to place all documents in the GameDocumentRegistry. And I've found that is necessary to get the history context working (and some other things, including bounding box rendering in NativeDesignControl)

But this requires that we also implement IGameObjectFolder for each document type. And it also means that every object type within must implement IGameObject (for clients of the GameObjects property in IGameObjectFolder -- where otherwise just IListable, IVisible & ILockable were enough).

There are some other problems as well:

  • some places assume that objects that implement IGameDocument also implement IGame (eg, NativeDesignControl.TargetGame and RenderingInterop.m_gameDocumentRegistry_DocumentAdded).
  • when creating a new object, sometimes the code must choose which document to add it to. For example, NativeDesignControl.OnDragEnter makes this decision. But it might be helpful to be able to customise how this decision is made -- so objects can be assigned to documents based on type or locality
  • some UI controls might work better if they were bound to a specific document. For example, the layer window seems like it should be bound to a specific document. The history window could be bound either way -- either globally, or bound to a single document -- I'm not sure what is best in that case.

I was wondering what your thoughts on this were? Is there an easy path to go about supporting many smaller documents like this?

Is there a roadmap for future work on this LevelEditor? Or any intentions to work on document support for future versions?

Thanks so much

Bug: changing skin makes editor unusable (machine 'culture' dependent)

I changed the skin to the dark skin and after that all I saw was a giant empty toolstrip with a bigger size than my window, blocking everything including the menus.
On restart I got an error message, but couldn't read it because the error text had the same color as the background in the dialog box, same with it's buttons.
So far I haven't been able to find out where the settings are stored for the level editor, making it impossible for me to reset this without diving deep in it's code ...

32 bit support

Even in 2018 alot of people are using 32 bit. The low end laptops for example. So 32 bit should be supported.

WASD movement should be continuous

When moving using the walk or fly mode using the WASD keys it seems as if the editor moves on a key event, and then when the key event is repeated, it'll move on each event. A better way would be to set a flag when the key is pressed down and unset that flag when it is pressed up. At the same time, while the flag is set the movement should be continuous based on frame-time. This would make the movement in the editor much more fluid and there won't be a small delay before the camera starts moving, which is distracting

Visual Studio 2015 support

  • The renderer doesn't load properly when using the VS2010 project.
  • When using the VS2013 project, you need to upgrade to use the VS2015 compiler.
  • hash_set and hash_map are deprecated (we should be using unordered_set and unordered_map instead.

Do you accept PRs to include a VS2015 solution and use the non deprecated classes?

Typo

LevelEditor-master\AssetRoot\HieghtMaps should be LevelEditor-master\AssetRoot\HeightMaps

Arbitrary properties

Is it possible to add arbitrary key value pairs to game objects in the property editor? That would be rather useful to hook into game specific logic.

Does not compile with visual studio 2013

The project fails to compile under visual studio 2013.
std::min / std::max not found in CollisionPrimitive.cpp, can be fixed by adding

include

Also getting lots of direct-x related warnings, this solved the warnings for me:
http://stackoverflow.com/a/16868002/392825

"Wherever d3dx9.h, d3dx10.h, or d3dx11.h are included in your project, be sure to explicitly include d3d9.h, d3d10.h and dxgi.h, or d3d11.h and dxgi.h first to ensure you are picking up the newer version"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.