WinAGI

From AGI Wiki
Jump to navigationJump to search
WinAGI Game Development System

Author: Andrew Korson

2024/6/8

http://www.winagi.com

WinAGI Game Development System
WinAGI Screenshot
Latest Version:  2.3.7
Release Date:  2024/6/8
Company: N/A
Publication Status:  Published
Developer(s): Andrew Korson
Interface: GUI
Language: VB6
Open Source: Open
Source Availability: 
License: GPL
Type: IDE, AGI Development Tool
Platform: Windows
Localization: English
Website: AGI Forum



Description

WinAGI is a full featured game development system, that includes editors that provide full control over of all resources in an AGI game. It includes many new integrated tools to assist in game design and development, allowing you to create new AGI games more efficiently and with less effort.

The WinAGI Game Development System was created by Andrew Korson. It may be distributed under the terms of the GNU General Public License.

The current version of WinAGI is 2.3.7: fixed print.at commands because argument count doesn't change in some versions (there is a bug in trace function that uses wrong counts for display only that was mistakenly treated as an actual change in argument count); the import resource function was fixed so the cancel button is no longer ignored; the property window scrollbar was fixed (it would not work in correctly in some situations); fixed a bug in logic compiler that would not handle invalid variable numbers in some situations; modified the text screen editor to only show valid color combinations instead of all combinations; added a check at game load to look for any resource files marked readonly; arguments in said command are now case sensitive; removed 'elseasgoto' decoding option; several other minor bugfixes

The current version of WinAGI is 2.3.6: another minor bugfix in game import function

2.3.5:: fixed bug that caused WinAGI to crash when importing a game; fixed some minor drag/drop issues; clarified in Help file that drag/drop will not work if program is run as administrator

2.3.4: fixed major bug in Game Properties dialog that prevented selecting a folder for new games; global defines files that use LF as end-of-line instead of CRLF will now load properly

2.3.3: Replace All function modified so logic editors no longer reformat the screen each time a replacement is made - this improves performance when replacing in very large source files; TAB key behaves as expected on Find form; fixed bug in Game About and Game Version property textbox so it correctly adds '\n' codes for CTRL+ENTER; fixed zoom control on picture previews to correctly place the picture when shrinking it small enough to fit inside the preview window; added a new decompile mode that is like VS style, but keeps 'else' and its preceding/following brackets all on one line; when opening a layout file, if the correct filename is not found, WinAGI checks for a file with same name as the WAG file - if found, that file should be renamed to be the correct WAL file, otherwise old file will stay around; in text screen editor, if a copied display command has text with parentheses in it, the parser for pasting the command now works correctly; in text screen editor, loading a screen file that doesn't match current colwidth needs to make sure the colwidth mode matches

2.3.2: added file drag/drop support for main window; the Find dialog now remembers last ten search terms; added toolbar buttons to the logic editor for indent/outdent; when importing or opening a game, resource errors that don't prevent compiling or running a game are now included as warnings in the warning list; when importing a game, the decompiler will use the gameid found in the game's set.game.id' command, if found; added option to copy picture draw commands to clipboard as readable text; added new readonly mode to words editor that sorts all words alphabetically; the Game Property form now groups the properties into four tabs; with more room on the tabs the properties are now better arranged; many minor enhancements and bugfixes

2.3.1: Added new text screen editor to help create text screens (for example help pages), and copy the attributes and display commands to put into logics; added new logic syntax option that is compatible with original Sierra syntax; clicking include filenames in logic editor will open them for editing, same as resources; logic compiler will continue compiling even after an error is found so all errors can be detected in a single pass; added new print/display preview mode to picture editor to see how text added by print and display commands will look when added to screen; added new feature to picture editor to show small markers that show where displayed text characters would be aligned; snippets can now include tool tip 'help', similar to AGI commands; game directory is no longer editable on properties page; to move a game to a new directory, close WinAGI and move it manually with file explorer; color palette values (converted from MSDOS 18 bit to Windows 24 bit) were a bit off and have been fixed to be more precise; added support for programming games with the AGI Power Pack; replaced the 'Use txt as extension' setting with 'SourceFileExt' game property to allow for more options; in picture editor, when in pixel-select mode, Shift+MouseDown will drag the picture surface; the example image on the picture editor Load/Configure Background form is now set to the current picture image (based on current draw state); cel count is now a displayed as a readonly property when a loop is selected; snippets get saved automatically when the form is closed; palette data can be saved to any text file; a nagi.ini file is not required; fixed a major bug in the picture editor Add Coordinate function that would add invalid data in relative line commands; pressing view preview shortcut keys (w,a,s,d) no longer crashes WinAGI if a header is selected; fixed a bug in on main form so resizing and splitting works correctly; a lot of other minor bug fixes


2.2.6: Added a new TODO tracking function: comments in logics can be tagged as 'TODO' and will be tracked in the warning window, which makes it easier to keep track of things that you are deferring for later. Fixed bug in game property window that was not saving the Platform Options value if 'other' platform is selected. Fixed several minor bugs in renumber resource function. Fixed bug when double-clicking a resource in the tree that would not set focus to the newly opened resource. Added a menu option and shortcut to toggle warning window. Fixed a bug in compiler that would raise an error if a negative number was passed as a define constant. Added a notification in picture editor if an image file fails to open when using the configure background image dialog. Fixed a bug in view editor move-selection function that was improperly updating cel data. Resizing of a cel in view editor is now allowed regardless of selected tool. Fixed several other minor bugs


2.2.5: Fixed renumber function error when trying to check IsRoom property of a nonexistent logic. Template version check function now correctly identifies version and loads template games. Back up files now all use the same format ('oldname_OLD.ext'). Added mouse wheel support for preview window; picture and cel images can now be zoomed in or out using the mouse wheel. Double-clicking on logics and views will open the respective editor with the resource positioned to match the preview resource (logic scrolls to correct line, views open with correct loop/cel). Fixed bug in snippet function to correctly insert snippet text when snippet was not at beginning of a line. The compiler warning for a missing 'return()' command at end of a logic source now works correctly. Added new feature to shrink open editor windows when the warning/error pane gets displayed so the main form work area doesn't require scrolling. The picture editor join command now gets displayed when two adjacent commands that are eligible for joining are selected. Fixed major but in view editor selection move function incorrectly set cel data when the selection is left at starting position. Fixed a bug in the view editor fill tool that incorrectly filled cel border areas. Deleting or cutting a loop in the view editor now correctly updates the preview panel. The preview panel will now display correctly when view editor is first opened. Added a new transparent selection option for copy/cut/move/paste of cel data (the cel's TransColor value is used to hide pixels in the pasted data). Fixed a bug in the WORDS.TOK editor that caused it to fail in older versions of Windows. Added a new export option for WORDS.TOK to create word lists compatible with ScummVM's extended character support.

2.2.4: Snippet arguments can now be multi-word (spaces allowed). Typing when the snippet list is visible will now select items from the list. Fixed a major bug in the layout editor to correctly read version information (which prevented proper loading of layout files in v2.2.3). Fixed bug in resource renumber function that was causing layout editor to write invalid data to the layout file. Renumbering a logic that is also a room will now let you also renumber the matching room picture resource. Cleaned up the resource number selection form so text is displayed on the form correctly. Added a menu item and shortcut to the layout editor that opens the matching picture resource for editing when a room is selected.

2.2.3: Support for international MSDOS codepages. Enter key on Find Form sends a 'Find button click' event instead of adding CR to search term. New option to set default cycling status of loop previews when opening a view in the editor. Fixed problem with WORDS.TOK editor that caused WinAGI to hang up on older versions of Windows.

2.1.16: Importing games with directory and resource errors will now load all other content correctly and provide feedback (warnings) about the invalid data.

2.1.15: Decode logic now has two code styles to choose from (affects how if statements are structured). Renumbering now marks logics as uncompiled, and updates tooltips. Fixes a minor bug in compiler that would improperly concatenate strings in very specific situations. Cursor now gets restored correctly after compiler error. The splitter in View editor now works correctly (it used to have a border that would show the split icon, but not react to mouse movement). Resource tooltips now get refreshed when one game closes and another is opened. WORDS.TOK editor now correctly saves an imported wordlist. Fixed a bug in exporting view loops as gifs that was incorrectly setting cel values. Hiding the resource tree panel will now also hide the preview window. Fixed bugs in View editor and sound editor so imported resources will save correctly. Fixed bug in compiler that would ignore a single quote instead of raising an error. Fixed the statusbar flicker problem when previewing pictures. Message cleanup tool improved to better handle non-standard placement of message declarations. Fixed the block-uncomment feature (it would skip lines in certain situations). Fixed a major bug in the richtext editor control undo/redo functions. The compile toolbar button is now disabled when editing a logic not in-game. Console updated; allows export/import(add) of individual resources. Fixed minor bug in the remove resource function, so checkboxes in the message boxes remain unchecked by default. Fixed a bug in the NewView and NewSound functions so they get initialized correctly when not immediately added to a game. The caption for logics that are not in-game now show filename like other resource types. Changing the gameid, aboutmsg, versionmsg define values now updates affected logics as uncompiled. Many updates, corrections, additions to help file. Compile option on treelist context menu works correctly now. Saving a logic now correctly updates the form caption. Undo/redo now set logic editor dirty status. The GameAbout and GameVersion properties now correctly display new line characters. Logic search function now works with extended characters. Added CTRL+DblClick to open a resource ID from within a logic editor. Files ending 'wag' with extra characters at the end (for example, *.wagx) no longer confuse the open/import game functions. Fixed major issue with 'new game from template' so copied files and directories get correctly renamed. New 'pointer' syntax option added to make indirect coding easier to manage. Max scale factors for view and picture editors increased (makes editing a lot easier on larger monitors). #define values that have a trailing semicolon now throw an error, instead of assuming the value is a string. The 'edit coordinate' form now shows centered in the main window. Fixed bug in picture editor that would show the priority frame over the palette in some resizing situations. Syncing menus with active form/control appears to be fixed for good this time.

Features

Most of WinAGI's features are customizable via the Settings command, allowing users to configure the design environment to suit individual preferences. Users can use menus, keyboard shortcuts or toolbars for most actions, depending on preferred input method.

WinAGI provides many enhancements to your AGI game to assist in development. These enhancements won't be part of the final game, but make the design process go much more quickly:

  • Resource List: A tree-based layout of your game, with easy access to key properties for your game, and individual resources
  • Resource IDs: Each resource can be given an ID to help identify it in logics. This improves readability. Changes to Resource IDs automatically updates all relevant logic scripts
  • Preview Window: All resources can be previewed
  • Import/Export: WinAGI allows you to import and export all resource types, and support several format types for each resource type.
  • Printing: All resources can be printed from within WinAGI.
  • Compiler: WinAGI includes a robust game compiler that allows you to do a full game compile; compile to a new directory; rebuild volume files to reduce slack space, and compile only those logics which have had their source code changed
  • New games can be created from templates or from scratch
  • Seamlessly integrate game engines, including ScummVM, NAGI and DOSBox (with original DOS files) to easily test games during development

Resource Editors

WinAGI includes highly capable editors for all AGI resource types. Every editor includes multiple levels of Undo.

Logic Editor

Features of the Logic Editor:

  • A rich text editor with customizable syntax highlighting
  • AutoText complete feature for AGI commands
  • Easily insert defines and reserved words by using the List Defines command
  • Supports the 'official' AGI syntax
  • Includes a tool to 'clean up' the message section, eliminating clutter and wasted space in compiled logics for unused messages
  • Hovering over defined words will show the variable/flag/string value assigned to the define
  • Easily change comment status for multiple lines of text using the block/unblock comment feature
  • Use the embedded character map tool to easily add extended characters to message text

Picture Editor

Features of the Picture Editor

  • Toolbar for easy access to common actions
  • Drawing tools for all standard picture draw commands
  • New tools for drawing circles, rectangles, trapezoids
  • Test mode that allows you to use any view to validate how the view interacts with the picture
  • Cut, copy and paste feature alllowing easy control over multiple drawing commands
  • drag-an-drop movement control over individual coordinates as well as selections of commands
  • Vertical and horizontal flipping of drawing commands
  • Split and Join feature allowing much finer control of the drawing action
  • Work in split screen mode, or toggle between visual and priority screens
  • Load background images to allow tracing of existing graphics images
  • Transparency setting allows background to be visible while drawing over it
  • Show or hide priority lines to help manage picture priority
  • Priority lines can be adjusted to match set.pri.base command options
  • Export pictures (or priority screen) as bitmap, jpeg or tiff image, individually or in bulk
  • Individual coordinates can be manually edited to fine tune coordinate position
  • Multi-level Undo capability

Sound Editor

Features of the Sound Editor:

  • Toolbar for easy access to common actions
  • Staff based graphical design window
  • Option to display graphical window for only the currently active track
  • Easy manipulation and complete control of each note property via propery window
  • Preview sounds as MIDI output
  • Choice of MIDI instruments when previewing sounds
  • Import and export sounds as Nick Sonneveld's sound script formatted files
  • Export sounds as MIDI files
  • Multi-level Undo capability

View Editor

Features of the View Editor:

  • Toolbar for easy access to common actions
  • Common pixel based editing tools; pencil, line, box, solid box, eraser
  • Selection tool to easily cut, copy, paste move cel data
  • Clipboard support to allow pasting of cel data, entire cels and entire loops among different views
  • A preview window is included in the editor to show effect of changes to cels in real time
  • Multi-level Undo capability

OBJECT Editor

Features of the OBJECT Editor:

  • A search-in-logic feature to easily find instances of an inventory object in your game logics
  • Ability to edit the Maximum Screen Objects value for your game, instead of being stuck with the default of 16
  • Automatic detection of duplicate items
  • Multi-level Undo capability

WORDS.TOK Editor

Features of the WORDS.TOK Editor:

  • A toolbar for easy access to common actions
  • Undo command
  • A search-in-logic feature to easily find instances of a word in your game logics
  • Drag-and-drop functionality to add words to logics

WinAGI Tools

Besides the editors for all resource types, WinAGI includes some additional tools to assist in game design.

Layout Editor

To assist in overall game design, WinAGI includes an graphical based Layout Editor. With this editor, you can set the overall design of your game by adding rooms and the exit conditions (i.e. new.room commands based on edge codes or other conditions). The layout editor is integrated with the Logic Editor, meaning that as you add, remove, edit various exits, WinAGI will automatically insert the correct code to move ego from room to room. The Help file provides detailed instructions on how to use the layout editor.

Menu Editor

Instead of manually creating menus, WinAGI offers a Menu Editor that allows you to design your menu in a graphic environment. You can see exactly how the menu will look while you are editing it. Once you have created your menu, WinAGI will automatically create the code and insert it into your logic source file.

Global Defines

WinAGI offers an alternative to the traditional #include file to manage defined names. The Global Defines editor provides a table based editor to easily manage your list of defines. Names defined in the Global Defines list are available to all logics. In addition, the names for reserved variables, flags and numerical constants are built in to WinAGI's compiler, and don't need to be explicitly defined for each logic.

Changes made to global defines automatically update all affected logic scripts

Reserved defines can be easily edited for individual preference

Custom Tools

WinAGI provides a custom Tool menu that allows you to easily launch other programs or utilities, link to web pages, or to documents, such as text files, etc.

Compatibility with AGI Studio

WinAGI can read AGI games that have been created with AGI Studio. However, certain features of WinAGI are not supported by AGI Studio, namely:

  • resource IDs (which affects resource file names)
  • WinAGI project properties, including layout information and other game level properties
  • built-in reserved define names and use of the global defines tool (in lieu of creating separate define.txt for every game)

Help File

The WinAGI help file provides documentation for all features available in the development system.

It also includes a detailed, up to date AGI reference section that explains all aspects of AGI.

For help with programming, a detailed logic command reference is also supplied that fully describes every single AGI command and includes programming notes and examples.


Download


References



Also See