Adam's Lair Forum

game development and casual madness
It is currently 2019/10/17, 05:47

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 160 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 16  Next
Author Message
PostPosted: 2014/12/30, 16:23 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
This is not really a continuation post on the development report (since a lot of updates have been pushed under the radar since September) but I thought I'll give you a quick heads-up on future development.

  • The last source update has been pushed on December 9, so that's an unusually long time span of 21 days ago. Holiday stuff being the reason, mostly.
  • Why there will be less updates in the near future: I will be writing my master thesis as of ~ March 2015 and it will likely not be about Duality, nor yield results that are directly applicable to Duality. This will consume most of my time until ~ September 2015: I will continue to support you, deal with bugs and tweaks as usual, but it will not be the perfect time for big, new features.
  • Why there will be not so much less updates in the immediate future: As of January 1st, I will be doing freelance work for a big IT company using the Duality framework for ten weeks. This may trigger improvements, tweaks and bugfixes in the engine, which will be passing through occasionally.

tl;dr: No "Big Stuff" until September. Will keep you updated!

There may or may not be blog postings about the progress and topic about my thesis. Depending on the rules of my university (yet to research this) and community interest, I might "one-way open source" parts of it in the progress.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/01/08, 20:22 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
After all this time without development news, I guess it's time for a big changelog at least:

Quote:
#ADD: Added logging for a lot of (non-personal) system specs by default.
#ADD: The top keyboard number keys can now be used to switch between the available camera view states when the cam view has focus. (BatCat)
#ADD: Added more unit tests for various classes.
#ADD: Log entries now carry the context of their message, derived from the object parameters in their Write call. (AdamsLair & BatCat)
#ADD: Double-Clicking a log entry in the LogView now highlights the messages context object. (AdamsLair & BatCat)
#ADD: Added a small but neat API for handling the applications focused state: DualityApp.IsFocused.
#ADD: Added an interface to plug in custom renderer visibility strategies for custom performance optimizations. (AdamsLair & BatCat)

#CHANGE: As of now, Duality manages the "Source/Media" folder to mirror the "Data" directory in a non-destructive way.
#CHANGE: Duality now preserves folder structures when importing new media directly from within the "Source/Media" directory.

#CHANGE: Refactored graphics initialization.
#CHANGE: No longer asking for confirmation when closing the editor and no changes have been made. (BatCat)
#CHANGE: FileHash performance improvements. (BatCat)
#CHANGE: Editor startup performance improvements. (BatCat)
#CHANGE: Improved performance of managing Scene objects ingame. (BatCat)
#CHANGE: Huge performance improvement for keeping the Scene clean using a ridiculously small change.

#CHANGE: Improved RawList.RemoveAll performance significantly by using a more efficient algorithm.
#CHANGE: Now using Parallel execution on SetPixelData commands to speed up image import via Bitmap objects. (AdamsLair & BatCat)
#CHANGE: DrawOnto and various dependent methods now use a partitioned parallel execution approach rather than Parallel.For, speeding up loading times.
#CHANGE: Improved performance of PathHelper.FilesEqual method by reducing disk read ping-pong.
#CHANGE: Pixmap.Layer now properly disposes temporary Bitmap objects immediately after no longer needing them.
#CHANGE: Refactored and cleaned up Project View / Scene View context menu creation and handling code.
#CHANGE: Moved tree view node classes to separate files.
#CHANGE: Moved common Resource name functionality to static ContentProvider methods.

#FIX: Fixed DrawDevice finalizer performing illegal cross-thread graphics calls.
#FIX: Fixed silent failure when creating a project on a storage medium that doesn't have enough space.
#FIX: Fixed crashbug when failing to determine parameter types while parsing XML code documentation files.
#FIX: Fixed a bug when renaming content refs and their Type is missing due to source code changes. (BatCat)
#FIX: Fixed IContentRefPropertyEditor throwing a NullReferenceException when getter returns null objects. (BatCat)
#FIX: Fixed FullWindow screen resolution changes not using the displays native size.
#FIX: Fixed a rare problem the could occur when a logged object's ToString implementation threw an exception in the wrong moment.
#FIX: Fixed Camera.Pass.CollectDrawcalls event being serialized by accident.
#FIX: Fixed ProjectFolderView object creation menu ignoring the invisible flag.
#FIX: Fixed CreateObjectDialog showing certain Types recursively.
#FIX: Fixed Pixmap throwing unintelligible Exceptions if something goes wrong during Layer image file saving.
#FIX: Fixed unhandled exception when hitting F2 in the Project View before actually selecting anything ever.
#FIX: Fixed several misspellings in comments. (caryanne)

#REMOVE: Removed FlushDisposedObjects extension methods, because they've become trivial.
#REMOVE: Removed legacy code that monitored "Source/Media" for rename operations and attempted to auto-update Resources. This was nonsense. "Source/Media" is designed to be a receiver, not a sender.


It's a big wall of text like that, so let's try to sum it up a bit and name the few big things that were going on since my last update on Duality development:

  • As reported earlier, former indie studio BatCat Games have released their Duality game Onikira on Steam Early Access. But not only did they do that, we've also talked a lot in the mean time about their internal Duality fork and the stuff that can or should be merged back. In the above changelog, you will notice a lot of entries with a "BatCat" note sticking to them.. these are the ones that were done either completely by or in collaboration with them. Performance improvements, Bugfixes, Screen Resolution changes at runtime and there's more! Summing up: Those guys are awesome.
  • The former "temp wasteland" Duality folder "Source/Media" is no longer a wasteland, but carefully organized by Duality to mirror folder structure and file names of each files imported Resources in the "Data" folder. It has achieved the state of a folder that can safely be checked into version control systems and act as an actual source folder for your game Assets. You can also import new Assets by dragging their files from a "Source/Media" subfolder directly into the project view. Duality will never modify your source files on its own.
  • Several small usability improvements, like the ability to double-click on a Log View entry in order to highlight objects and Resources that were passed as parameters of that log entry.
  • I currently have no "big new feature" tasks going on and will likely focus on general improvements, more documentation and samples in the near future, as I realize that a lot of potential users might simply be "scared away" by the lack of some easy "How to do X" samples.

Please note that most of these changes are only available on GitHub right now - binary release will follow once it's tested thoroughly!

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/01/17, 00:23 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
I've published a new binary release via NuGet. When updating, I would suggest to do a full update by hitting "Update All" in the Package Manager dialog.

Since this is a rather big update, please let me know in case you're experiencing any problems during or after the update process.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/01/25, 00:08 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
Sneaked away from other work in order to push a small Duality update. Nothing big, but the Package Manager Dialog is now a little nicer than it was before and does some sorting by default when browsing available packages.

Since the Duality ecosystem (both core and third-party plugins) can't promise to be perfectly backwards-compatible in any case, the focus of this update was to highlight recently published packages vs. old ones. Both will be displayed, searchable, etc., but a new package will likely score higher and appear first in the list than one that hasn't received and update for a year.

The goal of this is not to discredit old and stable packages, but to help newbies decide which one to prefer when presented with two seemingly equal third-party packages. With continuous API improvements, Duality has no way to predict the compatibility to a very old package, and incompatibility issues can be frustrating. To help with this issue, the Package Manager UI does its best to guide new users towards new (and regularly updated, e.g. likely compatible) content.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/01/31, 15:53 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
Warning: Breaking Changes

I've just released an important bugfix-update that required an API change in the IFileImporter interface. All editor plugins that provide new file importers will need to be updated in order to work again.

Duality Users, do not update your Duality version unless all third-party editor plugins you're using have been released after this date. The Package Manager dialog provides this information.

Duality Plugin Developers, please update your editor plugins accordingly and release a new version depending on AdamsLair.Duality.Editor 1.3.0.




Sorry to break your stuff - I try to avoid this as much as possible, but certain changes can't be done without doing so, and unfortunately, this was a semi-critical fix. :| I will try to come up with a better solution for situations like this in the future. Suggestions appreciated.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/02/01, 21:10 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
Just pushed another Update with some small but neat tweaks and micro-features:

  • Added more intuitive update compatibility icons to the Package Manager and some tooltips explaining them.
  • Added a "Re-Install all Packages" function to the Package Manager, in case the package system gets screwed up. This should be a nice reset.
  • Duality now loads debug symbols of its plugins when they're located in the Plugins directory, allowing it to include line numbers in logged stack traces.

Let me know if you spot something unusual.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/02/13, 17:58 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
Opened, Modified and Closed a lot of issues in the tracker. If you'd like to weigh in with your opinion or ideas on future changes, feel free to have a look :)

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/03/06, 18:02 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
I have pushed some new Duality binaries dealing with license agreements for third-party packages. When installing one that requires an additional agreement, a dialog will be displayed, with a link and transcript of the license text. Not agreeing will result in not installing the package.

This should allow plugins to add proprietary binaries (such as the Spine library) as dependencies without getting into sketchy territory by not informing the user about non-OSS licensing.

There is also a first time startup dialog coming up for Duality in general. It also displays a license agreement which the user is required to accept. Don't worry ^^ it's just the MIT Open Source license text. It is there because of not being a lawyer and wanting to make sure everyone has seen that "can't be held liable" clause from the license text before using Duality.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/03/10, 00:06 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
In case anyone wonders what that new Documentation package is: I have moved the external help file DDoc.chm to an actual Duality package, so it can be updated. Previously, this wasn't possible as it was not part of any package and merely included once in the initial download .zip file.

I have also upgraded my toolset to VS2013 in preparation for a future upgrade from .Net 4.0 to .Net 4.5.1, which is not possible with VS2010.

Due to internal changes at how Microsoft organizes their files and a little hack that is required to cope with this, you might experience issues when trying to create a new (non-empty) Duality project while using a Visual Studio version below 2013: Under these circumstances, Duality may no longer be able to automatically build the GamePlugin for you while configuring the new project. This is absolutely non-critical: In case you run into this, just build it yourself once, when the editor has restarted in the new environment for the first time.

Alternatively, you can either upgrade to any version of VS 2013, or open DualityEditor.exe.config and delete the following block:

Code:
  <!-- The following runtime tag is required because MSBuild moved from .Net to Visual Studio as of VS2013 -->
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="2.0.0.0-4.0.0.0" newVersion="12.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="2.0.0.0-4.0.0.0" newVersion="12.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="2.0.0.0-4.0.0.0" newVersion="12.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>


Again, you will likely never need this since you're either using VS2013 anyway, or don't use the affected feature set often enough to notice. Just putting it out there if someone comes searching.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2015/03/30, 00:16 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2073
Location: Germany
Role: Professional
A lot of bugfixes in the past two weeks, nothing too big. Today I've been working on the PackageManager dialog a little more, tweaked it to improve load times and also improving how it handles Package Compatibility.

If a package or any of its dependencies differ in a minor version from their corresponding local packages, they will be deemed "likely compatible", if the differ in a major version number, they will be considered "likely incompatible". When viewing packages in the online repository and deciding which ones to install, the ones that are likely incompatible will be marked as such using a new icon - similar to updates that might introduce incompatibilities for other installed packages.

Also, a MessageBox will ask the user to confirm the operation if any of it involves introducing a likely incompatibility. He can still click "Yes" and hope to be lucky (which may work in certain cases!), but at least everyone is warned ^^

This is going to become very important in preparation for the next "bigger" update, which may change API in critical places. So in order to avoid breaking everything for an unsuspecting user, a warning and info system is now in place to make sure it is obvious that an update may not always be a simple drop in. Taking the leap from, say, Duality 1.6 to 1.7 will usually work without issues, but to 2.0? That's not quite as easy. It doesn't really affect Duality's core packages themselves, as they're always compatible to each other, but it's more about what custom packages users add and for which Duality version they have been built.

Most importantly, the recent Package Manager Dialog update covers the following situations:
  1. Updating a Package, passing a major version gap: Warning icon, user confirmation required.
  2. Installing a Package that is either too old or too new: Warning icon, user confirmation required.

And hopefully, that's enough to help users not to run into problems here.

As a side note, some UI elements have also been updated: There's a License link now, and Release Notes will be displayed in a scrollable text box, rather than a label.

_________________
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 ... 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:  
cron
Powered by phpBB® Forum Software © phpBB Group