MarkLight is a powerful framework for creating games in Unity. Design, create and share components in a whole new way

What is MarkLight?

MarkLight offers XUML (eXtensible Unity Markup Language) a declarative design language similar in syntax to HTML but instead of defining the contents of a webpage it is used to design scenes in Unity.

XUML can be used to create views and define their relationship to the underlying game logic. Views are modular building blocks that can represent anything in the scene (UI widgets, meshes, lights, etc):

XUML & View Model

MainMenu.xml (XUML)

<MainMenu>
    <Group Spacing="10px">
        <Button Text="Play" Click="StartGame" />
        <Button Text="Options" />
        <Button Text="Quit" />
    </Group>
</MainMenu>

                
MainMenu.cs (View Model)

public class MainMenu : UIView
{
    public void StartGame()
    {
        // called when user clicks on "Play" button
        Debug.Log("StartGame() called");
    }
}
                
The above example shows how to create a simple main menu view that responds to user interaction:
main menu
Through this simple mechanism (called MVVM) you can build upon existing views and create advanced re-usable functionality with ease. It also serves to decouple presentation from game logic which helps keep designer and developer responsibilities separate.

Data Binding


Data binding solves the problem of keeping your game data synchronized with its presentation. Here is an example of an highscore list generated from dynamic data using a custom template:
Highscore.xml

<List Items="{Highscores}">
    <ListItem IsTemplate="True">
      <Group Orientation="Horizontal">
          <Label Text="{#Item.PlayerName}" />
          <Label Text="{#Item.Score}" />
      </Group>
    </ListItem>
</List>

                
Highscore.cs

public class HighscoreList : UIView
{
    public ObservableList<Highscore> Highscores;

    public override void Initialize()
    {
        // populate highscores from data source
    }
}
                
polished dynamic list view
If you update the highscore list, e.g. add another entry, the view is automatically updated with no additional code required.

And Much More...


Some more key features includes multi binding, animations, theming & styling and state management. The framework comes with 40+ views in 3 different themes. It's compatible with PC, Mac, iOS, Android, WebGL, Android and Windows Phone. Full source is included.

It's a new elegant and intuitive way of designing and developing scenes in Unity. It speeds up development, it bridges the gap between designers and programmers through a common language, it allows designs to be more easily shared in the community. It's intuitive, powerful and easy to use.
  • "This asset saved me so much time on a project already. It keeps game logic and UI logic separated which is perfect for keeping a project organized...All in all I love this tool!

    Asset Store Reviewer

  • "I really love it. If you are doing a 2D / camera space based UI for your application there is probably no better option right now.

    Asset Store Reviewer

  • "This has dramatically improved my workflow when working with other team members, this makes UI design portable and much easier to work with vs dragging elements in the scene editor!

    Asset Store Reviewer

  • "I am really impressed by this framework and how easy it is to create your own UI elements and add styles to the themes.

    Asset Store Reviewer

  • "I'm impressed...its one of the most well coded assets I've seen in the store

    Asset Store Reviewer

  • "Pretty amazing stuff here... If you (like me) come from an XML-oriented design environment (like Adobe Flex or Android), you will feel at home here.

    Asset Store Reviewer

  • "Absolutely worth the time saved. It's a well thought-out workflow, extremely easy to jump right in, and get your ideas on the canvas, without hassling with UI wiring, data binding, etc.

    Asset Store Reviewer

  • "It's a professinal way to making UI, actually, I'm surprised why Unity3D didn't ship this feature with the new UI system.

    Asset Store Reviewer

placeholder

Fast Workflow

Development is accelerated through a fast and fluid workflow. Views are automatically processed by the editor. Intellisense support when editing markup. Text based editing allows for copy & paste, search/replace.

placeholder

Data Binding

The framework provides advanced data binding support such as multi binding. It allows you to seamlessly connect views to your game logic and it helps you keep data and its presentation in sync.

placeholder

Theming & Styling

Through theme files you can modify view settings through CSS-like selector logic. It allows you to change, e.g. a button appearance throughout your entire game by modifying a single line.

placeholder

Custom Views

The framework is designed towards you creating your own advanced modular views from scratch and not just using existing views.

Features

XUML feature

Design views using a powerful markup language

Design, share and re-use views (scene elements) using a declarative design language. Views can be freely nested, re-used and combined.

Fast and fluid workflow

Views are automatically processed and wired to their ViewModel through naming conventions. The process is fast and views are presented in the scene as changes are saved.

Elegant & Intuitive DataBinding

Using naming conventions and smart binding logic, binding data to your views is very straight forward. No "plumbing" or configuration required. The framework also supports multi binding.

Interactive

Effortlessy create interactive views that respond to user interactions. Use the existing event system events (click, drags, etc) or create custom actions with ease.

interactive feature
animation feature

Animate views using markup

Quickly create animations using markup. Re-use animations on different views.

Easy Transitions

Creating animated transitions between views is easy using the ViewSwitcher view.

Flexible styling using Themes

Modify the look & feel of views using Theme files. Control the theming through id- and style-selectors (similar to CSS).

Catalogue of Views and Themes

40+ views are included. Since views can be easily created and shared expect to see a growing catalogue of views available for download.

theming feature
dynamic feature

Dynamic Content

Have views adjust to run-time changes of data as shown by the FlowList and List views.

Responsive Layout

Have views adjust to content and layout changes.

Intuitive & Flexible Layouting

Specify width and height of views using percentage, pixels or elements (user defined unit). Anchor views by setting alignment. Use margins and offsets to adjust positioning.

Display sets of data

Displaying lists and sets of data is easy using the FlowList and List views. Bind custom data to the list and control the way items are presented using templates.

Similar to WPF and other MVVM frameworks

If you've worked with MVVM frameworks such as WPF (XAML), Silverlight, Caliburn, AngularJS, Prism, etc. you'll feel at home with MarkLight.

Based on new Unity 4.6 UI

Since it is based on the new Unity 4.6 UI it will be able to take advantage of new features as the Unity UI system continues to evolve.

Join the Announcement List

Be notified when new themes, views, tutorials and updates are available