Game Development Community

dev|Pro Game Development Curriculum

The OMNI Engine v1 Released (C# in T3D)

by Vince Gee · 10/10/2014 (10:32 am) · 27 comments

www.omniengine.net/Portals/0/WebSitesCreative_Banner/417/b1c62afc-4e8f-48c4-9677-c3900ca92ce4_resized.jpgCheck out the website at www.omniengine.net

Has it really been four years since I started down the path of building a C# interface for T3D? I do not think I can even recall how many different approaches I have taken over the years. Oh woe's is me, all those epic fails along the way. But, I have proved that if you stick with something that seems impossible, you will prevail.

Folks, I would like to present you with the new Omni Game Engine. Yes of course it is based off of T3D, build 3.5.1 to be exact. (Yes I plan to merge in 3.61 soon). I am sure you are wondering why I feel this is a major accomplishment, well let me explain.


The core of the Omni Game Engine is the Omni Framework. The Omni Framework is a C# model that simplifies game programming in T3D. There is no ugly p-Invoke syntaxs, convoluted work a-rounds, or half-baked solutions here. The Omni Framework is a complete end-to-end solution for programming in C# inside of T3D.

Included with the C# Omni Framework are also many improvements to the C++. We have been pouring over the many resources available on the GG site and cherry picked the most useful and used. We figured that if the first thing people do when they get T3D is implement these same resources, why not just put them into our head?

Now some things are different than T3D. For one, we completed our 32/64 bit build a bit ahead of the MIT group so ours functions a little different. In Omni all projects can be switched between 32/64 bit in the build configuration without having to generate a project or run any scripts.

We also fixed some long standing issues in T3D related to game hitches when a camera moves around for the first time in a mission. We also revisited the math inside of T3D to make it more precise and consistent.

We also converted most of the old style syntax for console functions over to the latest format for consistency. We removed Con::Exec and Con::Eval calls and replaced them with proper callbacks. Hopefully, in the very near future we will have our port to C++ 11 finished.

Additionally we also gave the game a visual revamp. Paul and I loved the DarkUI resource so much that we choose to use it for the UI in Omni. The new Dark UI compounded with the Advanced UI Kit really improved the visual experience inside of Omni. Until you are able to Pop windows off the canvas and drag them to another monitor, you really just cannot enjoy building levels.

Oh, did I mention that we implemented our own Datablock caching mechanism for dedicated servers? When a client connects to a dedicated server, the client is sent a hash, if the hash on their local cache file matches the server, the server will direct the client that it is skipping sending the datablocks and the client is to load from the cache. We even set it up so that each mission can have its own cache. So if your game connects against multiple dedicated servers and loads different missions, the clients will not need to re-download the datablocks as they zone between the game servers.

There are a ton of other features in the Omni Build and you can check them out here!

One other thing which is extremely important, our team has spent countless hours documenting the Omni Framework and how it works. The currently 125 page document covers everything from setting up your first project to how the internals of the Omni Framework works. I highly recommend that people read the manual before using the Omni Engine, since there are vital steps covered in the document.

The OMNI Programmers Manual can be found here.


Oh, one other thing of note, we have been building extensions for Visual Studio 2010 and 2013 to help you on your way as you program in OMNI. Expect these little helpers to be expanded on future releases. We have been focusing on the C# mainly so far, but we plan to start adding C++ helper extensions in the next release.

I know, I know, what about licensing. Well in a nutshell,

For the Community License of OMNI,

  • If you have a splash screen you must show the OMNI logo.
  • You must notify us if you release a game. (This is so we can set up banners on the site and such.)
  • If you have an about box, it must display the text "OMNI by Winterleaf Entertainment"

  • For the Omni Supporter License,
    Well you do not have to do anything. All of the above restrictions are removed.

    I still recommend you visit our site here to read the full licenses.
    So, I know you are thinking how much does all of this cost, is it a bazillion dollars?

    The Community License is free to everyone. You get full source code and all our tools for FREE. Yep you all heard it here, FREE.

    If you want to help support the development of the OMNI engine, you can buy a Supporter license for 100 bucks which among other things will get you a discount in our store and consulting, besides removing the splash and stuff requirements.

    All of the code is on GitHub

    I would like to give a BIG thank you to everyone who participated in making this happen, there were so many people I could not possibly name them all. But for a short list:

    Paul Yoskowitz
    Luis Rodrigues
    Dusan Jordic
    Aswin Shrestha
    Khalil Hajlaoui
    Tim Watton
    Lucas Joergensen
    John Turner
    Dan Polak
    Chris McKillip
    Josh Leeming
    Jesse Allen
    And my dog Cody (He did all the hard work)

    Hope you all take some time to check it out,

    Signing off,

    Vince Gee
    Winterleaf Entertainment L.L.C.
    www.winterleafentertainment.com
    www.omniengine.net
    Page«First 1 2 Next»
    #21
    10/11/2014 (1:00 am)
    I would just like to publically congratulate Vince and Paul on this. I've worked with both for many years now and have witnessed all the hard work and effort this has taken. It's great to see such a positive response to something I know has been a seriously challenging but rewarding project that had taken years to complete. Well done Vince and Paul.
    #22
    10/11/2014 (2:13 am)
    Quote:
    Feel free to use our code for inspiration, but of course don't copy it line for line w/out asking :P

    Oh the irony in that statement :P

    Congratulations on the release, shame about the license.
    #23
    10/11/2014 (4:32 am)
    Could have gotten worse with the license, but it is a step into the right direction.
    #24
    04/01/2015 (11:31 am)
    I will be using this and likely supporting it with the $100 license.

    Is this different from DotNetTorque on your Winterleaf site? Will OneWorld, AutoPatcher and RPG Kit work with Omni?

    Do I need to also purchase DotNetTorque to work with Omni?

    Is there a bundle deal for all of your software Tools?

    Thanks.

    Mike
    #25
    04/04/2015 (12:29 pm)
    No one? Not making me feel good about this product.

    In following the manual, I went through the steps for the Static Code Generator (Visual Studio Extension). It seemed to go 100% with no errors. At the end, it says you must re-compile the omni framework project (solution) and the main project file (in our case, it's called social).

    That is where the problems happened. I cannot compile my main social project. I am using Visual Studio 2012 and have made no changes at all to anything. Just trying to follow the directions in the manual.

    I need help.

    Mike
    #26
    04/05/2015 (4:12 am)
    I think development of Omni has been canceled, because of recent events in the engine market.
    The good news is, I believe Torque3D will get some of the work they have done, but I don't know what will happen with their other products.
    #27
    04/05/2015 (5:25 am)
    Winter Leaf has moved their mmo game production to Unreal 4, which I perfectly understand.

    What that means for the game engine Omni I have no idea about.

    This is what I/we know:
    http://www.dawnofascension.com/Community/News/tabid/56/post/dawn-of-ascension-is-moving-to-unreal-engine-4/Default.aspx

    It could seems like that the Omni project is on a halt for now. Send them a mail and ask :O)
    Page«First 1 2 Next»