Preparations for AGS 3.3.0 Beta

Started by Crimson Wizard, Tue 05/03/2013 12:57:08

Previous topic - Next topic

Crimson Wizard

I had a short conversation with tzachs, first asking him if he is going to make a final 3.2.2 release, but he suggested we release our github version as a new Beta.

What is this AGS 3.3.0?
Editor remains the same since 3.2.2 beta. One of its internal components (we should refer it as "game compiler") underwent numerous changes in the process of engine rewrite (mainly because they share same source code), so it would be worth to test how games are compiled and run.
I think it is also valid to add minor features, that do not take much time to implement (recent Calin's addition, in particular).

Engine was partially rewritten, but should run all the same from game dev & player's perspective.
There are some pending changes by s_d, which are particulary important for Linux port, so we perhaps should wait for them.

Windows release should be accompanied by releases for each respective platform. JJS is building daily builds all the time, hopefully he will help here. I know that scotchchiefbaker was making a "universal" Linux distributive, perhaps we should add that too?

We should not forget to keep the PDB file for Windows release, for the reasons explained here.

Since the new engine can now run older games (to some degree), this should be mentioned, and probably some tests done as well. This is more important for ports, but Windows version may be used to test this too.

We need CHANGELOG....



Preliminary release (Windows only) as of 22th march 2013:
http://www.mediafire.com/?7tyq75kre5nzm0z

Preliminary release of 29th march 2013 (with some fixes):
http://www.mediafire.com/?9bqawlni21hkoo9

s_d

Quote from: Crimson Wizard on Tue 05/03/2013 12:57:08
There are some pending changes by s_d, which are particulary important for Linux port, so we perhaps should wait for them.

Yes, still in-progress, and I apologize for the wait.  It's tricky stuff where I'm looking  :)

Crimson Wizard

#2
Changelog draft, based on SVN commit logs and tzach's forum post.

REVISION HISTORY
================
VERSION 3.2.2, July 2012:

Following changes made by Tzach Shabtay, unless noted otherwise.

Features:
- Added folders for characters, dialogs, inventory items, guis, rooms, scripts and views.
- Added new menu items for all folders to move up/down.
- Added the ability to drag/drop files to be before other files.
- Added highlights for drag&drop and auto-expand folders on hover during drag&drop.
- Script and header files are now combined into one and can be expanded/collapsed, similar to room settings & script.
- Removed the context menu commands to move script modules up/down, this can now be done with drag/drop (and not only for scripts). The script dependency rule remains the same (lower scripts can import symbols from upper ones, but not vice versa).
- Removed the "exclude script" option. [NOT SURE, WAS IT LEFT LIKE THAT? NEED TO CHECK]
- The "Sort room by number" now sorts within folders. [NOT SURE, WAS IT LEFT LIKE THAT? NEED TO CHECK]
- Added a menu item to find all usages for characters, dialogs, views,inventory items and global variables.
- Added a menu item for almost all document tabs, to navigate to their node on the project tree.
- Added "Goto line" dialog from script editor via shortcut Ctrl+G (and changed existing shortcuts to open global script & header to Ctrl+Shift+G/H).
- Added keyboard shortcut (Ctrl+M) to switch between header and source.
- Objects, characters and edges can now be moved with the arrows in the room editor.

Plugin Support:
- ISourceControlProvider interface for editor plugins to define your own source control provider (Michael Rittenhouse).

Mono Support:
- Partially disabled some features only when running with Mono, since I couldn't see a way to code them without the
  Win API:
   - Breaking in debug will not automatically set the editor to the foreground, the user might have to click on the window.
   - Notifying the user on file changes externally if the editor is in focus will not happen. It will happen when
     the window is activated, so I hope it won't be too annoying.

Bug Fixes:
- Fixed crash clicking in margin of dialog editor (Chris Jones).
- Fixed RGB colour picker not working in 256-col games with colour numbers > 32 (Chris Jones).
- Fix for: when moving an object after zooming in and out, the floating co-ordinates no longer appear next to the object.
- Fix for: Find Results did not go to the specific line when clicking on one of the found symbols. [WAS THIS A BUG IN 3.2.1 OR INTERMEDIATE SUBVERSION?]
- Fixed "Go-to definition" on global variables in script editor didn't do anything. It will now open the global variables editor and select the global variable.
- Fixed one extra "x" buttons on find results, callstack and output panels. [WAS THIS A BUG IN 3.2.1 OR INTERMEDIATE SUBVERSION?]

EDIT: removed changes not seen from user's perspective.

Crimson Wizard

#3
More changelog draft.
I don't know, should I note developer name for every change, or just list current development team?

REVISION HISTORY
================
VERSION 3.3.0, ?-?-? 2013:

AGS Engine underwent significant rewrite, with primary aims being better multi-platform compatibility and backwards-compatibility. Complete list of related changes is too vast to cite them here, a detailed documentation is provided in the form of the git log at this repository: https://github.com/adventuregamestudio/ags (Bernhard Rosenkraenzer, Cristian Morales Vega, Jochen Schleu, Ivan Mogilko).

Engine Ports:
- Android port (Jochen Schleu).
- iOS port (Jochen Schleu, Janet Gilbert).
- Linux port (Bernhard Rosenkraenzer, Jochen Schleu, Scott Baker, Shawn Walker, Tobias Hansen, Tom Vandepoele).
- PSP port (Jochen Schleu).

Features:
- Engine can now run games of older versions, starting from 2.50. The level of compatibility varies (Jochen Schleu, Ivan Mogilko). [WHO ELSE WAS INVOLVED HERE?]
- Engine prints startup, shutdown and error notifications to the log file (Ivan Mogilko).
- Engine supports graphic scaling up to x8. If no scaling filter is defined in configuration file, engine will choose scaling automatically, trying to match current user's screen resolution (Tobihan Hansen).

BigMc

berolinux is Bernhard Rosenkraenzer.

Crimson Wizard

Preliminary editor package (Windows only, 11.5 MB in archive, 30 MB unpacked):
http://www.mediafire.com/?spm2y64et0r2dfz

It's larger than usual AGS distributive, because I placed acwin.pdb there (you need one to read crash dumps, I figured it may be safer to just add one to distributive, this way it won't get lost).
Please tell, if that at least runs for you :).

I think we may take engine ports from JJS's daily builds: http://jjs.at/daily/
What about Linux port? Should there be a package, or we just tell Linux users to build engine themselves?

BigMc

#6
Once it is clear what exactly AGS 3.30 is, we can provide a source archive for the users. Also an ags+libraries archive which is intended for game distributors. I find it confusing that you call the version 3.30.0 in git, 3.3.0 in this thread and 330 in the file name of the Windows package.

Crimson Wizard

Quote from: BigMc on Sat 16/03/2013 16:45:24I find it confusing that you call the version 3.30.0 in git, 3.3.0 in this thread
Yes, there's a difference in how engine and editor call the version. The editor uses X.X.X.XXX format while engine uses X.XX.XXXX format, for example 3.2.1.111 and 3.21.1115. I seem to forget about this. We need to bring this to consistency somehow.


Crimson Wizard

#9
Quote from: BigMc on Sat 16/03/2013 17:02:06
Call both 3.30.0?
Why not 3.3.0? Editor's format is more recognized by users.

EDIT: Hmm, looking in the past versions, the version format was a bit inconsistent over time. For example, there were AGS 2.61, 2.72 etc, bit also AGS 2.7.
Starting from AGS 3 editor versions are named consistently X.X.X, but engine version kept older variant, probably for compatibility reasons.

BigMc

Because 30 > 21 > 3 and we don't want to go backward.

Crimson Wizard

#11
Quote from: BigMc on Sat 16/03/2013 17:48:56
Because 30 > 21 > 3 and we don't want to go backward.
My question is: was it 21 or 2.1. The editor was clearly named "3.2.1". Engine could retain X.XX format for compatibility with older version-check logic. But this is not a big problem to find another solution for that.

BigMc

It was both 21 and 2.1 before and 30 is larger than both 21 and 2.

Crimson Wizard

#13
Quote from: BigMc on Sat 16/03/2013 23:42:35
It was both 21 and 2.1 before and 30 is larger than both 21 and 2.
Sorry, I don't understand what you mean by that.
My question is: what convention should next version follow: AGS 2.* convention (with AGS being called X.XX) or AGS 3.* convention (with AGS being called X.X.X).
If it will be 3.30, it will break 3.* convention, and be confusing for users (jumping from 3.2.1 to 3.30 ?).
If it will be 3.3.0, it will require write extra compatibility code to properly init/compare engine version. Also defining a certain rule for increasing version numbers.
Personally, I am inclined towards 3.3.0 more.

Joseph DiPerla

I like the x.x.x personally. The Last x can be a minor revision or minor bugfixes. The middle x can be a major revision. If there are enough changes that make it a super revision, then the first x can move up to the next version of AGS, eg: X.0.0. Thats my personal preference anyway. But its really up to the developers so...
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

BigMc

As someone working on a Linux distribution I think the only important thing about version numbers is that they are strictly increasing. If the previous version really was 3.2.1 and not 3.21, maybe 3.3.0 is ok, but I would use 3.30 to be sure.

Crimson Wizard

Hmm, I see... this makes sense too, now when there were those port releases.

Snarky

This really seems like a non-issue to me.

The version numbers are the same, it's just a difference in display formatting. In the X.XX scheme you only have one dot for version-number separating (with another for builds just used internally), and the numbers after should be read as fractional digits, so 3.21 is update 2, revision 1 of AGS version 3, just the same as 3.2.1 in the other format. (That means that you can't have more than 10 smaller versions for each bigger version, which I'm sure was never a problem when CJ was developing the app, but might be more of a constraint in an open-source model.) If you think it's such a problem that it's displayed differently in different contexts, just pick one. But if you go with the X.X.X format, it should logically be 3.3.0, as 3 is the next version after 2.

selmiak

just go with 3.30.0, then everybody is happy.
As a normal user I'm used to the x.x.x versionnumbering, so either 3.3.0 or 3.30.0 is no biggie though I would be wondering about the jump from 3.2.x to 3.30.x for at least 10 seconds and then accept it, as it is, as I now have the most up to date version and then continue making games ;)

s_d

#19
I vote for either "3.30.0" or "3.3.0".  I understand the desire to keep version numbers monotonically increasing.  I, personally, like "3.3.0" style better.  Perhaps we can all bust our asses to help CW refactor for another game library (A5, SFML, SDL, whatever) and bump to major version 4 to leave the mess behind...  ;)

Quote from: Crimson Wizard on Wed 13/03/2013 14:27:07

- Linux port (Bernhard Rosenkraenzer, Jochen Schleu, Scott Baker, Tobias Hansen). s_d, please confirm your name is Denis Shanygin ;) (peeked in your git account);


Should we acknowledge EvilTypeGuy (Shawn Walker) and Electroshokker (Tom Vandepoele) in the Linux credits?  They kinda carried the torch for all of us penguin fans, and it would make me feel better to see their contribution acknowledged, somehow (regardless of how much or little of their code we're still using).

Regarding my name... good sleuthing CW!  However as talented as Denis may be, I am not him (and I do not know him).

Ah, so we have to use real names?  I kind of don't like that. It's not that I'm anybody special (I'm not).  If it is for taking credit for changes, then I don't care about that.  I just want Linux gamers to be able to have a really good adventure gaming experience.  If it's for accountability, then I understand.  I guess I can be public, though I usually try not to.

Nice to (virtually) meet you folks  :)

SMF spam blocked by CleanTalk