Adam's Lair Forum

game development and casual madness
It is currently 2019/12/10, 15:32

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 160 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8 ... 16  Next
Author Message
PostPosted: 2015/05/16, 09:52 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
RockyTV wrote:
Are you going for full cross-platform support? That way you don't need to install any dependencies to run Duality?

EDIT: that should've been my first question :P


On Desktop platforms, Mono will always be a dependency. Unless it comes pre-installed with the OS, like .Net comes with Windows, this will be a user requirement. On non-Desktop platforms with Xamarin, it depends. No idea, to be honest.

Just to be really clear here: I'm not going for cross-platform support myself. I'm working on making Duality portable. These are two very related, but different things. ^^

Quote:
How does that change Duality itself, regarding plugins?
I'm trying (and failing) to get on how to make a plugin, butprocesses if the architecture is to change, no problem.


There will be a lot of breaking changes in v2.0 (simply because a major version change is the ideal time to introduce them), but the plugin system remains largely unchanged. The only thing that I'll touch is the default plugin template - to be a Portable Class Library with the appropriate profile, rather than a regular class library. You probably wouldn't notice if you weren't looking for it. It's really just 2-3 lines in the .csproj file that will be different.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/05/18, 16:59 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
Just merged my recent backend abstraction changes back into the still experimental master branch. OpenTK has now been moved entirely into a plugin, which is loaded dynamically at runtime.

Starting from this version, you could switch OpenGL for DirectX, experiment with Vulkan, remove OpenTL and replace it with FMod, or whatever you like. The Duality Core and all plugins above it won't even notice, as long as the new backend works correctly. This doesn't affect you as average Duality user at all, but in case your target platforms exceed Windows only - it should be much easier now to achieve that.

Next Goal: Making the Duality core and all of its non-backend plugins PCLs, so porting to non-Desktop and other restricted platforms gets the same convenience boost of not having to dive into the core.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/05/18, 17:21 
Forum Adept
Forum Adept

Joined: 2014/12/13, 00:11
Posts: 398
Location: Brazil
Role: Gamer
Adam wrote:
Starting from this version, you could switch OpenGL for DirectX, experiment with Vulkan, remove OpenTL and replace it with FMod, or whatever you like. The Duality Core and all plugins above it won't even notice, as long as the new backend works correctly. This doesn't affect you as average Duality user at all, but in case your target platforms exceed Windows only - it should be much easier now to achieve that.

What differences would there be if I switched to DirectX? I mean, could I achieve more stuff with DirectX?

_________________
I only know the basics of C#. I have no advanced knowledge.


Top
 Profile  
 
PostPosted: 2015/05/18, 18:11 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
RockyTV wrote:
What differences would there be if I switched to DirectX?


Ideally none. That's exactly what I was trying to say :D The backend is now independent from the core and all above, meaning your games, plugins, etc.

RockyTV wrote:
I mean, could I achieve more stuff with DirectX?


Not really, no. The only reason to do so might be because Windows Store Apps run on DX only - or so I've heard. It was really just an example though; what I meant to highlight was that it simply doesn't matter what's beneath, so if that gets in your way on a non-Windows platform, you can easily change it.

On a different note, Duality runs on OpenGL 2.1, which is pretty dated by now. It's completely fine 99% of cases, but I could imagine that a more modern implementation based on OpenGL 4.5 and beyond could yield performance benefits by moving more towards direct object access.

The big deal here is not about whether or not a newer GL backend would be faster, or whether DirectX, or OpenGL ES might be necessary on platform X - it's just that switching is easily possible now. If you wanted to pull that off before you'd have to check out the Duality source code and dig through its code yourself. Now, you can simply kick out the backend plugin and write your own - done! And that's the actual news :)

It won't affect most of you, but I think this is an important step.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/05/18, 21:01 
Forum Adept
Forum Adept
User avatar

Joined: 2015/03/15, 02:49
Posts: 354
Location: Out there
Role: Hobbyist
You work fast, Adam... Wow! Just, wow!

_________________
Hello there! Nice to meet you!
I have github. Apologies in advance for bad coding practices.


Top
 Profile  
 
PostPosted: 2015/05/18, 22:11 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
eyeliner wrote:
You work fast, Adam... Wow! Just, wow!


Thanks ^^ I took a week of vacation from writing my thesis to do this - however, I'm afraid I'll have to go back soon, so expect development to slow down again in the near future. My next steps are planned and in reach, but not started yet.

In the mean time, I'd like to encourage everyone who is interested in checking out the current master branch, building it and playing around with it. It's the nature of big changes to open the doors for new bugs - hopefully, you can help me find them well before the release.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/05/20, 00:33 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
I'll be away for something around a week or so. Until then, you'll have to discuss Duality issues and questions without me ^^ I might get around to take a look once or twice, but I'll be mostly afk. See ya in a week!

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/08/06, 13:58 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
I managed to find some time slots for Duality development lately, which is in the last eight weeks of my master thesis. I'll probably have a bit more time afterwards, depending on how things develop then.

As far as recent development goes, I'm still in the process of transforming Duality into a pure PCL / portable framework, which means moving anything remotely platform-dependent into specialized backend plugins. Having a single, platform-agnostic core layer is usually not the way game engines achieve multi-platform support, but if Duality can pull this off, it might actually be worth it.

While a usual approach is to provide multiple versions of the core library (one for each platform), Duality would only have one, which could ideally be used as-is on all supported platforms. This means that:

  • The problem of syncing all the core versions in features, fixes and API is, for the most part, non-existent - resulting in a more stable development.
  • Introducing new platforms is far easier, because all platform-specific code is encapsulated in a well-defined API and stored modularily in a plugin.
  • When someone other than me wants to introduce a new platform, he doesn't need to port or even know the whole framework - just the relevant bits, which are in a platform backend plugin.
  • User-written plugins which only depend on Duality itself will be platform-agnostic as well and likely won't need to be ported at all.

Summarizing this, the overall advantage of recent Duality development is a largely simplified project structure with regard to future porting efforts. As a free bonus, it is also the biggest code and API cleanup since the beginning of the project.

Now, the whole PCL portability thing isn't done yet, but I'll see how far I can take it. Every step I'm able to take now will be one step less for someone else to take when deploying Duality somewhere else than Desktop Windows. In fact, you can follow the progress live on GitHub.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/08/10, 19:22 
Forum Addict
Forum Addict
User avatar

Joined: 2013/09/19, 14:31
Posts: 883
Location: Italy
Role: Hobbyist
I'm coming here with a request for a feature I've been thinking about; it's nothing special nor necessary.. just something that might be "nice to have" in Duality 2

What I'm talking about is basically the ability to somehow mark a GameObject so that it doesn't appear in the Scene treeview in the editor. I feel this could help in case you have some Components that rely or construct other (potentially complex) GameObjects at run-time so as to not clutter the Scene View - especially in the case of external plugins.

Would it be possible? maybe a class decorator?

_________________
Come on Duality's Discord channel. We have cookies! :mrgreen:


Top
 Profile  
 
PostPosted: 2015/08/13, 11:46 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
SirePi wrote:
What I'm talking about is basically the ability to somehow mark a GameObject so that it doesn't appear in the Scene treeview in the editor. I feel this could help in case you have some Components that rely or construct other (potentially complex) GameObjects at run-time so as to not clutter the Scene View - especially in the case of external plugins.

Would it be possible? maybe a class decorator?


Certainly possible! Wouldn't be a big deal to support a class attribute that hides an object entirely. The thing is, it might have a negative impact on maintenance, as users of a third-party package might be a bit baffled to observe the effects of objects that don't show up in the Scene tree view. They'd likely think it's a bug of either the package or Duality.

However, if there was an option to show these objects anyway (like the Object Inspector "Debug" mode) it might level things a bit. I've opened a GitHub issue in case you want to keep track of this.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 160 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8 ... 16  Next

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group