Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - natbudin

Pages: [1]
1
Hello folks!  I'm back with another agikit release.  This time, the focus is on PIC resources!  agikit now includes a PIC editor:



Because Visual Studio Code is based on Chrome under the hood, this editor is usable on web pages too.  It's written in React, and released as a separate package called agikit-pic-editor.  The user experience is a little clunky right now but I'm hoping to improve it with your feedback!

To try it out, follow the instructions on https://github.com/nbudin/agikit-project-template (make sure you're installing version 0.5.0 or later).

Next up: VIEWs!

2
AGI Development Tools / Re: agikit 0.4 + Visual Studio Code
« on: March 13, 2021, 12:47:18 PM »
Thanks so much!  The page is now updated with some basic info; I'll flesh it out more as we go.

Also, I've started working on PIC resource support.  Stay tuned!

3
AGI Development Tools / Re: agikit 0.4 + Visual Studio Code
« on: March 12, 2021, 12:02:34 PM »
Good call, thanks Collector!  I've submitted an account request on the wiki.

4
AGI Development Tools / Re: agikit 0.4 + Visual Studio Code
« on: March 11, 2021, 11:37:26 AM »
Thanks everyone!  I realized I forgot to link to the source code in the top post here, so if you're interested here it is: https://github.com/nbudin/agikit

I'll keep this forum posted with further updates as these tools develop!  Next is probably some usability improvements to the VSCode tooling, and an attempt to make AGI Studio-compatible LOGIC resources.

5
AGI Development Tools / agikit 0.4 + Visual Studio Code
« on: March 10, 2021, 04:47:10 PM »
Hello everyone!  I'm pleased to announce that agikit version 0.4 is out, and with it there are two major changes:

  • agikit is now split into multiple npm packages.  For the previous command-line functionality, you probably want to install agikit-cli.
  • We now also have a language server for LOGIC scripts and a Visual Studio Code extension built on it.

This means it is now (starting to become) possible to use Visual Studio Code as an IDE for AGI games (in a very very limited way that will hopefully become less limited over time).  Here's a screenshot:



Right now, agikit-vscode can:

  • Syntax highlight LOGIC scripts
  • Check for syntax errors in LOGIC scripts
  • Provide hover and "go to definition" inside LOGIC scripts
  • Build AGI games
  • Run built AGI games in ScummVM

If you'd like to try this out yourself, I've updated Peter Kelly's AGI Contest 2 Template game to work with agikit.  You can find the agikit version at https://github.com/nbudin/agikit-project-template, along with a set of instructions to get it up and running.  I'm sure there are plenty of bugs here, and I would definitely appreciate any feedback or bug reports anyone has!

6
AGI Development Tools / Re: Introducing agikit
« on: March 05, 2021, 01:49:54 PM »
Tiny bug fix release 0.3.1!

Messages not declared with the #message directive were not being compiled into LOGIC resources. (In other words, you could write for example print("Hello world!"); and the compiler would accept it, but that message would be missing from the compiled resource.)  This is fixed in 0.3.1.

7
AGI Development Tools / Re: Introducing agikit
« on: March 04, 2021, 03:55:15 PM »
And only a few days later, here's version 0.3.0!  This release supports the full LOGIC scripting language as specified in the AGI specification. It can compile the source code in the AGI Contest 2 Template (after renaming files to match the agikit source layout, and adding the missing test object item).

As usual, agikit can be installed by running "npm install -g agikit" on a machine with Node.js installed.

For the next release, I'll either be working on AGI Studio compatibility for compiled LOGIC resources, or a Visual Studio Code-compatible language server - haven't decided which yet.

8
AGI Development Tools / Re: Introducing agikit
« on: March 01, 2021, 02:11:30 PM »
Thanks Collector!

I've just released version 0.2.0, with the following changes:

  • Add the ability to extract OBJECT to a JSON file
  • Add the ability to build OBJECT and WORDS.TOK
  • Bug fixes for message encoding in LOGIC resources

In the next release, I'm planning to focus on supporting the rest of the LOGIC scripting language in order to improve compatibility with other tools.

9
AGI Development Tools / Introducing agikit
« on: February 20, 2021, 01:46:26 PM »
Hey AGI fans!  I'm pleased to introduce something I've been working on.  It's called agikit, and it's the beginnings of a cross-platform development toolchain for AGI.  agikit is written in TypeScript and aims to provide an extensible, flexible, open-source platform for building AGI development tools.  It is very, very early stage right now.  :)

NPM page: https://npmjs.com/package/agikit
Github repo: https://github.com/nbudin/agikit

Itís super early stage, itís not yet compatible with WinAGI, AGI Studio, or other similar tools, but: it can decompile and recompile Kingís Quest I, and the result runs in ScummVM.

Why do this, particularly when good IDEs are already out there?  Part of the reason was just nostalgia; I used to make AGI fan games back in high school and I wanted to revisit it now that I'm older and know more about software development.  Additionally, I wanted it to be possible to develop AGI games on non-Windows platforms and using your choice of text editor.  This isn't intended in any way to compete with the excellent tools that exist, but rather, to open up the world of AGI development to a wider audience.

Another big reason for this is that I wanted to learn about how compilers really work by building one, so the resulting app here is quite different from how Qt AGI Studio works, in that it does AST generation, control flow analysis, optimization passes, etc.  One interesting result of this is that the code it generates can't (yet) be decoded by Qt AGI Studio, because it can potentially reorder blocks in a way that doesn't guarantee that conditionals contain all their sub-statements in the assembled LOGIC resource.  I'm hoping to add an option to generate AGI Studio-compatible LOGIC resources in a future release, probably as a post-compilation reordering pass through the assembly code.  (I'm unsure whether all of this applies to WinAGI or not, because I don't have access to a Windows machine to try it on, but if someone would be willing to let me know, I'd greatly appreciate it!)

Right now all this compiler infrastructure doesnít actually amount to much, because the script language it compiles is very structurally similar to the binary LOGIC format, but because it does these things, it should be possible to greatly extend it to include stuff like functions, loops, and even variable types AGI doesnít natively support.  It also should make it easier to build a language server so someone could (for example) write AGI games in Visual Studio Code with full auto-completion and code navigation support.

Aside from this limitation, there are several other big ones right now that I hope to fix soon:

  • Only supports AGI version 2 for now
  • Doesn't fully support the LOGIC syntax in the standard:
    • Doesn't yet understand operators such as ==, <, >, +=, etc
    • #define (and therefore named variables) isn't yet supported
    • Probably other stuff
  • Doesn't decode or compile OBJECT files yet
  • Doesn't compile WORDS.TOK yet

As you can see, it is nowhere near ready for use, but overall Iím pretty pleased with how itís turned out so far!  I'd love any feedback folks have.

Pages: [1]

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.105 seconds with 22 queries.