Video of the Omni T3D Game Engine in action (Video included)
by Vince Gee · 07/16/2014 (2:18 pm) · 31 comments
Hey all,
I know I have not posted much in the last few months, but that has been mainly due to me buried to my eyeballs in coding. Winterleaf is finally putting the finishing touches on the Omni T3D Game Engine and I thought I'd share a video of 300 AI split into two teams beating the snot out of each other.
The video quality is not the best, but you get can the general idea of what it's capable of.
These frames were all over 1 million polys, and with out recording software running, it would run at a solid 60-70 FPS.
For those that are new to T3D and haven't heard about the Omni T3D Engine, it's a highly modified T3D engine that has among other things, replaced torquescript with C#. We also swapped out the DXSDK with the win 8.1 sdk among other things. (switched to compiled shaders, multithreaded the GPU, etc).
The engine should be release in a few months for the public to use. It won't be MIT but it will be close. There will be nothing to buy to use this engine and the source will be publicly available. More on all of that later.
Enjoy the vid!
Vince Gee
Winterleaf Entertainment L.L.C.
www.winterleafentertainment.com
I know I have not posted much in the last few months, but that has been mainly due to me buried to my eyeballs in coding. Winterleaf is finally putting the finishing touches on the Omni T3D Game Engine and I thought I'd share a video of 300 AI split into two teams beating the snot out of each other.
The video quality is not the best, but you get can the general idea of what it's capable of.
These frames were all over 1 million polys, and with out recording software running, it would run at a solid 60-70 FPS.
For those that are new to T3D and haven't heard about the Omni T3D Engine, it's a highly modified T3D engine that has among other things, replaced torquescript with C#. We also swapped out the DXSDK with the win 8.1 sdk among other things. (switched to compiled shaders, multithreaded the GPU, etc).
The engine should be release in a few months for the public to use. It won't be MIT but it will be close. There will be nothing to buy to use this engine and the source will be publicly available. More on all of that later.
Enjoy the vid!
Vince Gee
Winterleaf Entertainment L.L.C.
www.winterleafentertainment.com
About the author
www.winterleafentertainment.com
#2
Pretty intrigued by your "close-to-MIT" release plans!
It would be interesting (but maybe much more work than necessary) to see the same scene running in stock T3D MIT for comparison.
07/16/2014 (5:28 pm)
Looks like it runs smooth even with all that violence, wicked!Pretty intrigued by your "close-to-MIT" release plans!
It would be interesting (but maybe much more work than necessary) to see the same scene running in stock T3D MIT for comparison.
#3
P.S: Great job on the AI, you could make massive battles with that.
07/16/2014 (5:53 pm)
Really cool, so what exactly are the "big" differences between vanilla T3D? You certainly have made some ground-breaking changes but, like, a new codebase? Just wondering. It seems good enough that a merge with the vanilla engine might be an option (depending on your liscening terms). It's a really cool change up though.P.S: Great job on the AI, you could make massive battles with that.
#4
Kudos!
07/16/2014 (6:15 pm)
I've gotten 300 AI in stock T3D 1.2, but they were sorted into priority "think time" groups based on distance from camera and the mspf was close to 1000....Kudos!
#5
it is a client connected to a dedicated. Running it in single player to get the same results framerates and MSPF is around 100 to 125 AI in single player.
I'm was running it all on an old Quad core machine not even i series.
I find that dedicated pretty much tops out at 300-400 AI in dedicated mode with ALL AI thinking and doing combat at the same time.
And about 100-125 AI in single player.
Also, all the AI is handled using multithreading in the C#. A good bit of the logic that runs them happens out of process of the main T3D thread. So we can do a bit more without burdening the T3D engine as much and just synchronize the threads when we need to communicate between the out of process threads and T3D.
In fact a good bit of the time our game is running on two cores. I have a quad core and with the current programming I've seen up to two cores get consumed.
@Raa,
Some of our changes could be merged quite easily into the T3D head, but we made some decisions not to support Windows XP anymore so we were able to take advantage of some technology that T3D can't yet.
Like I said before, we ripped out the DXSDK in favor of the Windows 8.1 sdk. (It still works on Windows 7/Vista) This was done to start prepping for DX11. Our build runs on DX 9EX currently.
The graphic's layer was completely redone as well as well as going to compiled shaders and such.
There was also sweeping changes done to the console functions and callbacks to make cleaner so they would port to C# cleaner.
We have also started converting all the custom data structures to stock stl to start our migration to c++ 11.
Our biggest advantage has been that we are not limited to what technology we choose to adopt since we are just trying to build the most robust engine we can and instead of trying to support fringe and older technology we are looking forward to new stuff.
Paul is currently in talks with Dan about merging our compatible stuff with the MIT head in the future. For example our C# implementation could easily be extended to support a plethora of other languages as long as they followed our design paradigm.
@Simon,
The short of the license is simple. We want the code and engine to be free to any indie developer. We want people able to contribute to our build, etc. BUT we want to retain ownership of our code as much as possible and we do not want another party to be able to take our work and release it as there own "Engine". That is the crux of the MIT license which we don't care for.
Our revenue plan is to release Add-In's for people at charge. For example building a xmpp chat server component, a mmo framework, art assets, etc. In fact I know Verve is currently being converted to run on Omni. We are even talking about porting OneWorld and a few other projects.
Also our MMO will of course be one of our major revenue stream as well.
We also have one other thing going on atm and I can't wait to tell you all about it, but I'll need to wait until the ink dries.
@Steve,
Thanks :) Paul and I are already talking about creating a mission which will showcase all the changes we have made to the graphics layer. We really want to show off our skin shaders and such, but we just need to get the art assets in line to show it off professionally.
I can tell you all this much, once you get use to the C# syntax, programming is a breeze in Omni with the intellesense and the fact that it's all object oriented. Programming in Omni no longer resembles the script paradigm and is now all about the events and function of objects currently running in the simulation.
I imagine that most programmers will be able to look at the manual and be able to get into the swing of programming in Omni quite rapidly. It will most likely be easier for people who have never used T3D before than people who are currently in the "TorqueScript" mode.
07/16/2014 (8:13 pm)
@Richard,it is a client connected to a dedicated. Running it in single player to get the same results framerates and MSPF is around 100 to 125 AI in single player.
I'm was running it all on an old Quad core machine not even i series.
I find that dedicated pretty much tops out at 300-400 AI in dedicated mode with ALL AI thinking and doing combat at the same time.
And about 100-125 AI in single player.
Also, all the AI is handled using multithreading in the C#. A good bit of the logic that runs them happens out of process of the main T3D thread. So we can do a bit more without burdening the T3D engine as much and just synchronize the threads when we need to communicate between the out of process threads and T3D.
In fact a good bit of the time our game is running on two cores. I have a quad core and with the current programming I've seen up to two cores get consumed.
@Raa,
Some of our changes could be merged quite easily into the T3D head, but we made some decisions not to support Windows XP anymore so we were able to take advantage of some technology that T3D can't yet.
Like I said before, we ripped out the DXSDK in favor of the Windows 8.1 sdk. (It still works on Windows 7/Vista) This was done to start prepping for DX11. Our build runs on DX 9EX currently.
The graphic's layer was completely redone as well as well as going to compiled shaders and such.
There was also sweeping changes done to the console functions and callbacks to make cleaner so they would port to C# cleaner.
We have also started converting all the custom data structures to stock stl to start our migration to c++ 11.
Our biggest advantage has been that we are not limited to what technology we choose to adopt since we are just trying to build the most robust engine we can and instead of trying to support fringe and older technology we are looking forward to new stuff.
Paul is currently in talks with Dan about merging our compatible stuff with the MIT head in the future. For example our C# implementation could easily be extended to support a plethora of other languages as long as they followed our design paradigm.
@Simon,
The short of the license is simple. We want the code and engine to be free to any indie developer. We want people able to contribute to our build, etc. BUT we want to retain ownership of our code as much as possible and we do not want another party to be able to take our work and release it as there own "Engine". That is the crux of the MIT license which we don't care for.
Our revenue plan is to release Add-In's for people at charge. For example building a xmpp chat server component, a mmo framework, art assets, etc. In fact I know Verve is currently being converted to run on Omni. We are even talking about porting OneWorld and a few other projects.
Also our MMO will of course be one of our major revenue stream as well.
We also have one other thing going on atm and I can't wait to tell you all about it, but I'll need to wait until the ink dries.
@Steve,
Thanks :) Paul and I are already talking about creating a mission which will showcase all the changes we have made to the graphics layer. We really want to show off our skin shaders and such, but we just need to get the art assets in line to show it off professionally.
I can tell you all this much, once you get use to the C# syntax, programming is a breeze in Omni with the intellesense and the fact that it's all object oriented. Programming in Omni no longer resembles the script paradigm and is now all about the events and function of objects currently running in the simulation.
I imagine that most programmers will be able to look at the manual and be able to get into the swing of programming in Omni quite rapidly. It will most likely be easier for people who have never used T3D before than people who are currently in the "TorqueScript" mode.
#6
I like C# for rapid tools development - I use it a lot at work. I believe that the weird thing for us old-school TorqueNuts will be learning how to translate from TorqueScript to Omni.
07/16/2014 (10:33 pm)
That's pretty sweet Vince - With some tweaking we could probably double that amount. My "filtering" system prioritized units for "think time" by ticking units near a camera faster (about every 200ms) than those farther from one (about every 750ms) - single or multiplayer. If three people were logged in the server would check each unit against each camera and sort them into bins based on this. It wasn't that units farther away were doing nothing - they just weren't getting a chance to change their mind as often.I like C# for rapid tools development - I use it a lot at work. I believe that the weird thing for us old-school TorqueNuts will be learning how to translate from TorqueScript to Omni.
#7
07/17/2014 (12:35 am)
Correct you'll release this with the DarkUI? :)
#8
Multithreading AI is a cool idea!
Huge work and cool results, looking forward to see more!:D
07/17/2014 (1:42 am)
Nice job!Multithreading AI is a cool idea!
Huge work and cool results, looking forward to see more!:D
#9
I'd love to go over how I did the AI with you as I'm not an AI developer I kinda just took a brute force approach to it. I can't imagine what it could do if a more seasoned game developer approached it.
@Nils,
That is correct, Omni uses the Dark UI for it's theme. We really took a liking to the way it presents and we felt that it would be a visual upgrade.
07/17/2014 (4:09 am)
@Richard,I'd love to go over how I did the AI with you as I'm not an AI developer I kinda just took a brute force approach to it. I can't imagine what it could do if a more seasoned game developer approached it.
@Nils,
That is correct, Omni uses the Dark UI for it's theme. We really took a liking to the way it presents and we felt that it would be a visual upgrade.
#10
Looking forward to the release! God speed and cheers to you and the rest of your team!
07/17/2014 (6:39 am)
That's really cool @Vince! I'm glad the work finds good purposes and I see it as a compliment :)Looking forward to the release! God speed and cheers to you and the rest of your team!
#11
07/17/2014 (7:19 am)
Thats awesome good news!
#12
07/17/2014 (9:30 am)
Great work, but what is the license though? Would it count as open source or non-free shared-source? Also the MIT license requires you to state that your software uses libs or code that was from an MIT project and which one. Like Valve's Source engine uses Squirrel which is MIT and they have to state that(Although it'd be apparent since to script newer versions of the Source engine requires using and knowing Squirrel), or did you mean you didn't want people using the code and keeping any changes to it behind closed doors?
#13
07/17/2014 (11:15 am)
From what I gathered they dont want for instance someone to download OMNI, call it something else and sell it. You can legally do that under MIT.
#14
07/17/2014 (11:18 am)
That is correct Tim
#15
So where is Lucas' particle work? Why T3D stock particle effects? Where are your render state changes? I am a bit lost, this seems to be a bit of a rehash of a past post where you did the same thing.
07/17/2014 (11:47 am)
yep.... unless.... How is this 'in action?' I get it... 300 AI fighting... interesting however, we have seen this before. (you can search under WLE and see all past posts, including a similar post for 'massive AI fighting). So where is Lucas' particle work? Why T3D stock particle effects? Where are your render state changes? I am a bit lost, this seems to be a bit of a rehash of a past post where you did the same thing.
#16
07/17/2014 (1:14 pm)
@Tim Yes, I understood that when I asked my question, and sure you can do that with MIT, but you still have to say it's based on X software, and I still don't know what license it's gonna use, or if it is open source.
#17
of course I agree I've done this before, but there are many people who haven't seen it before. Also it has never been this smooth. You of course couldn't know about all the changes that have occurred since you no longer have access to the source code.
I know your all about how pretty something looks, but some of us are more interested in the mechanics. You can't make a game look good if it's guts can't handle the code.
We haven't merged Lukas's work in yet because we we don't own his product and we can't just steal it.
We can't show off the skin shaders and such cause we don't have the models etc.
Like I said we are finally wrapping up this dev cycle so there will be more to come.
@Chris
I'd love to give more details on the licensing but I don't have it. All we know is that we will be doing an indie license which will give ALL indies access to the source code, tools, etc and the right to publish games using the engine.
The way I see it our team could stop what we are doing and focus on licensing or we can continue on getting this build out. I prefer the latter.
07/17/2014 (2:29 pm)
@Ron,of course I agree I've done this before, but there are many people who haven't seen it before. Also it has never been this smooth. You of course couldn't know about all the changes that have occurred since you no longer have access to the source code.
I know your all about how pretty something looks, but some of us are more interested in the mechanics. You can't make a game look good if it's guts can't handle the code.
We haven't merged Lukas's work in yet because we we don't own his product and we can't just steal it.
We can't show off the skin shaders and such cause we don't have the models etc.
Like I said we are finally wrapping up this dev cycle so there will be more to come.
@Chris
I'd love to give more details on the licensing but I don't have it. All we know is that we will be doing an indie license which will give ALL indies access to the source code, tools, etc and the right to publish games using the engine.
The way I see it our team could stop what we are doing and focus on licensing or we can continue on getting this build out. I prefer the latter.
#18
Anyways @Ron I can promise you there is a lot more to it than it seems, most of the work done is just under-the-hood stuff, optimizations etc.
My IPS is a seperate product from Omni atm (Omni going free and open-source and all, I haven't decided if I can let all of IPS go the same way yet), but you can expect at the very least that some of IPS' architectural changes get in the engine (again behind the scenes stuff).
Also, I'm very bad at merging my code into Omni so thats also why most of my work isn't in Omni yet :P
07/17/2014 (3:20 pm)
@Vince I think technically you own my work.. I dunno, that NDA I signed ages ago was pretty scary :PAnyways @Ron I can promise you there is a lot more to it than it seems, most of the work done is just under-the-hood stuff, optimizations etc.
My IPS is a seperate product from Omni atm (Omni going free and open-source and all, I haven't decided if I can let all of IPS go the same way yet), but you can expect at the very least that some of IPS' architectural changes get in the engine (again behind the scenes stuff).
Also, I'm very bad at merging my code into Omni so thats also why most of my work isn't in Omni yet :P
#19
07/17/2014 (7:39 pm)
@Vince: How well do they handle complex geometry? From my own messing about, it seems like collision resolution and rendering are more the lions share of the hit this end at least. (Though like Richard, I'm also pulling load-balancing tricks for decision cycles, with a side-order of moving some of the evaluation-support math engine-side.)
#20
07/18/2014 (11:19 am)
Awesome! I have been waiting for this. Thank you so much for the hard work Vince. 
Associate Steve Acaster
[YorkshireRifles.com]