Git Product home page Git Product logo

tobylobster / inform Goto Github PK

View Code? Open in Web Editor NEW
82.0 16.0 18.0 222.89 MB

Inform is a design system for interactive fiction based on natural language

License: Other

C 6.71% Makefile 0.16% Perl 0.03% Shell 0.92% CSS 0.47% C++ 0.15% Objective-C 5.24% Inform 7 14.46% JavaScript 0.04% CMake 0.02% Batchfile 0.01% HTML 71.69% Module Management System 0.01% Inno Setup 0.01% Lex 0.01% DTrace 0.01% M4 0.01% Roff 0.02% Swift 0.04% CWeb 0.01%

inform's Introduction

The Inform App for macOS

What's New

A new version of the Inform App is now available here. The minimum requirement is now macOS 10.14.6 (Mojave). Users of older macOS versions can of course continue using previous versions from here.

  • The launcher screen shows the latest News from the IFTF.
  • Colour schemes have been introduced (see the new preferences pane).
  • Support for Dark Mode.
  • Support for Basic Inform.
  • Fixes for skeins misdrawing in some cases.
  • Apple Silicon native (while still supporting Intel Macs).
  • A great deal of modernisation has gone on under the hood, but this still remains a work in progress.
  • Support for Inform 6 projects has been removed.

Many thanks to MaddTheSane for a heroic number of modernisations, tweaks and fixes.

Work in the Pipeline

  • Mac App Store Version.
  • Longer term: Modernisation to Swift, and away from deprecated APIs.

About Inform

Inform is a design system for interactive fiction based on natural language, a new medium of writing which came out of the "text adventure" games of the 1980s. It has been used by many leading writers of IF over the last twenty years, for projects ranging from historical reconstructions, through games, to art pieces, which have won numerous awards and competitions.

To learn more about the core of Inform, see https://github.com/ganelson/inform. For more Inform resources, see inform7.com.

Inform is free, with no strings attached. What you make with it is yours, to publish on your website, sell, or give to your friends. There's a vibrant community of users who welcome newcomers (and the app will help you find a high-traffic forum for discussions). Lastly, Inform is continuously maintained and developed. All bug reports are examined and acted on (and the app will show you how to post them).

Version History

App Version Inform Version Release Date Description
1.82.3 10.1.2 2022‑09‑05 Official release, supporting Inform 10.1.2 (Notarized, bug fix for previous version)
1.82.2 10.1.2 2022‑09‑02 Bugged - not notarized
1.82.1 10.1.1 2022‑08‑21 Official release, supporting Inform 10.1.1
1.82.0 10.1.0 2022‑08‑20 Official release, supporting Inform 10.1.0
1.81.0‑beta1 10.1.0 (beta) 2022‑07‑30 This is a Beta. Colour Schemes, Dark mode, Basic Inform, Apple Silicon native support.
1.68.1 6M62 2019-11-14 Release with website bug fix.
1.67.1 6M62 2019-10-25 macOS Catalina support.
1.65.1 6M62 2016-10-21 macOS Sierra support. (Also another bug fix for 10.6.8 - Bug #1895)
1.64.1 6M62 2016-01-06 Bugfixes (Fix for 10.6.8 support #1807, toolbar panel #1808, Syntax colouring #1815)
1.64.0 6M62 2015-12-24 Includes new Testing panel, and support for Extension Projects
1.54.4 6L38 2014-11-21 First Mac App Store version released
1.53 6L38 2014-09-23 Experimental sandboxed version (getting closer to Mac App Store release, Distributed to testers to test if it works)
1.52 6L38 2014-09-18 Fixed previous version, now signed properly and non-sandboxed.
1.51 6L38 2014-08-30 Badly signed and sandboxed version
1.50 6L02 2014-05-07 First update, modernising Inform

Building the Inform App.

See Building the macOS Inform App

Licensing

See file 'COPYING'


Toby Nelson, toby m [email protected]

inform's People

Contributors

angstsmurf avatar maddthesane avatar tobylobster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

inform's Issues

"Replay" button is replaying actions in reverse

When I hit the replay button, my actions are replayed in the order reverse to how I originally did them. For example, taking the actions >get up ; >look; >go north ; then replaying, will result in the replay trying >go north ; >look ; >get up. If I replay it a second time, the actions will invert again, once more conforming to the original order!

Heap buffer overflow in [IFSyntaxData styleAtEndOfLine:]

Running with AddressSanitizer on, pressing enter at the end of the source text will crash with a heap buffer overflow here:

return charStyles[pos];

In my case, the pos variable was set to 58 while charStyles had the range 0 … 57, so return charStyles[pos]; was reading 1 past the end.

charStyles was realloc'd to size 58 here:

charStyles = realloc(charStyles, newFullLength);

Skein file causes the IDE to hang on load

Sorry if this isn't the correct place - Mantis is down, and I was directed here.

The following Skein file was generated by the IDE, but hung when I tried to test it:
badskein.txt
After that, I couldn't reopen the project at all until I deleted the skein file wholesale and let the IDE regenerate a blank one. You can reproduce by starting a new project, pasting the contents into its skein file, then trying to open the project.

I think the error is around node 1104ish, because that's the action I changed that broke everything, but couldn't swear to it.

I am on the new IDE version, Version 1.68 (1.68.1), and a Mac running Catalina 10.15.6 (19G2021).

Won't compile on Apple Silicon due to "Build Active Architecture Only" settings

I see that build instructions are at the top of the pipeline, but I in case anyone else has similar problems, I thought I'd share my findings.

Many of the subprojects have different build settings, and the main stumbling block seems to be "Build Active Architecture Only", which is set to NO for the main Inform project but YES for debug builds in most (all?) of the subprojects, which caused build errors because Xcode couldn't find the X86-64 binaries it was looking for.

Here's how I got it to build using Xcode 13.4.1 on an M1 Macbook Air with Monterey:
• Clone the project and get the submodules with git pull --recurse-submodules. I first tried to update an existing clone of an older version, but that wouldn't work.
• Change the Team setting on the Inform target to your own team or turn off signing ("Sign to Run Locally".)
• Set all projects to "Build Active Architecture Only" for debug builds.

Weird game display in Sonoma builds

In a build made from the current source (0774cc0) on macOS Sonoma (14.0), Counterfeit Monkey looks very strange after resizing the window:

Skärmavbild 2023-10-08 kl  03 04 11

Even stranger, the display looks correct in the Xcode "Debug View Hierarchy" view:
Skärmavbild 2023-10-08 kl  03 09 41

This is in Xcode 15.0 on an M1 MacBook Air.

Editing the font family preferences often does nothing in 1.81 (1.81.0)

When changing the font in Preferences > Editing > Font family to something like 'Menlo' (or other fonts available by default with macOS) no visible change is reflected despite the font name being reflected in the preference.

I can only currently change it to Monaco, Geneva, Georgia, Helvetica, Impact, Lucida Grande (default), Tahoma, and Verdana. All other fonts will display as Lucida Grande, even though their font family name is reflected in the preference.

Skein scrolls back up to the top after making any change to it

Looks to have been broken by e86e8c3. If I take out the first resizeView call in layoutSkeinWithAnimation: the bug goes away. It's happening because the first resizeView makes the view shorter, causing the scroll view to automatically scroll up to the top to keep everything in view, then the second one restores it to its former length, but doesn't restore the scroll position.

How to build with custom inform?

complier_injection.sh assumes the existence of a makefile in the Inform Core directory and I can't find anything that could create such a thing. It also seems to assume that there something is copying files into the TEMP_STAGING_AREA, which I can't find any trace of even searching all the code on GitHub.

Inform 7 IDE fails to follow symlinks to extensions or interpreter templates

This might be a bug in the compiler, but during extension development, I symlinked an extension to the correct location (from my repo, which was elsewhere on my system) and it wasn't recognized during compilation. The same error also occurred when I symlinked an interpreter directory in the *.materials/Templates subfolder.

Links in Report view not working after compiling legacy version

After doing a release, Inform will show a file hierarchy in the Results > Report view. Clicking on the file and folder icons here used to open their equivalents in Finder, but now they all seem to lead to the Documentation view instead.
Skärmavbild 2022-08-10 kl  10 27 10

EDIT: I just noticed that this only happens when the project is set to a legacy language version (such as 6M62), so I updated the title. When compiling to Inform 10.1.0 or Current, the links work as intended.

The console will show errors such as:

IFDocumentationPage: failed to load URL file:///Users/XXXX/Desktop/Untitled.inform/Build/%5BJAVASCRIPTPRELUDE%5DopenFile(%22/Users/XXXX/Desktop/Untitled.materials/Release%22) with error: The requested URL was not found on this server.

glk_buffer_to_title_case_uni() crashes

Stack trace:

0   CoreFoundation                      0x00007ff8032261ba __exceptionPreprocess + 242
1   libobjc.A.dylib                     0x00007ff802d4c42b objc_exception_throw + 48
2   CoreFoundation                      0x00007ff8033003ea -[__NSCFString characterAtIndex:].cold.1 + 0
3   CoreFoundation                      0x00007ff80326adf5 mutateError + 121
4   CoreFoundation                      0x00007ff8031932b7 -[__NSCFString appendString:] + 69
5   GlkClient                           0x00000001027be3fa glk_buffer_to_title_case_uni + 576

The crash only happens when the final argument (lowerrest) is false. If it's true, the function seems to work correctly.

Test case pasted below. I've phrased it as an I7 game to make it easier to test in the I7 IDE.

"Test Game" by Andrew Plotkin.

The Kitchen is a room.

When play begins:
	test loop;
	
To test loop: (- while (1) TestInput(); -)

Include (-

Array gbuffer --> INPUT_BUFFER_LEN;

[ ShowBuffer label count ix;
	print (string) label, ": ", count, " chars, '";
	for (ix=0 : ix<count : ix++) {
		print (char) gbuffer-->ix;
	}
	print "'^";
];

[ TestInput ix count newlen;
	print "^line input >>";
	glk_request_line_event_uni(gg_mainwin, gbuffer, INPUT_BUFFER_LEN, 0);
	while (true) {
		glk_select(gg_event);
		if (gg_event-->0 == 3 && gg_event-->1 == gg_mainwin) {
			count = gg_event-->2;
			break;
		}
	}
	
	ShowBuffer("Input", count);

	!count = glk_buffer_to_upper_case_uni(gbuffer, INPUT_BUFFER_LEN, count);
	!ShowBuffer("Upcased", count);

	!count = glk_buffer_to_lower_case_uni(gbuffer, INPUT_BUFFER_LEN, count);
	!ShowBuffer("Downcased", count);

	count = glk_buffer_to_title_case_uni(gbuffer, INPUT_BUFFER_LEN, count, 0);
	ShowBuffer("Titlecased", count);

];

-).

Interpreter falsely claims to support line input echo suppression

When running Counterfeit Monkey in the internal Zoom interpreter, all typed input commands are now repeated after pressing Enter, that is, the command line is re-printed on the line below the entered command.

The game checks whether the interpreter supports line input echo suppression, and Zoom now claims that it does. The old version didn't. But the actual suppression doesn't seem to be working, causing the input to be echoed twice.

Inform Help menu item does nothing

Selecting the Help > Inform Help menu item does not produce the customary "Help isn't available for Inform" dialog, but rather does nothing. The console reports "nil host used in call to allowsSpecificHTTPSCertificateForHost."

Inform7 IDE Slow Editing on MacOS Catalina

I'm editing a larger file in the Inform7 IDE and am experiencing very slow editing. I've searched and found no one else reporting this. I can edit small files with no lag, but large files present a huge lag as I type. Compiling happens at normal speed. Attached is a link to a video of me typing far ahead of the buffer.

https://drive.google.com/file/d/1JwRLdLLq1advkmNKAOCrEDUCQP441SR8/view?usp=sharing

Here are the deets of my file:

The 33597-word source text has successfully been translated into a world with 41 rooms and 184 things, and the index has been brought up to date.

Happy to provide source file to test on your inform version.

And the details of my version of Inform:

Download file: I7-6M62-OSX-Interim.dmg
Inform version: 1.68.1
OS: MacOS Catalina

But this also happens with earlier versions of Inform, such as I7-6M62-OSX.dmg

Thanks for any leads to fixing this.

Numeric Variable Properties

As far as I can tell, there is no way to have a variable property which is a number. For instance, I would like rooms to have a property called "visits" which increments each time the player enters it.

I'm sorry if this is answered someplace else, but I have been searching for about 5 hours now, and haven't seen it.

Documentation font size jumps are too large.

Currently when trying to adjust the documentation font size (also the font size used while running the project) it's impossible to set a moderate, readable size. It's either too small, or too big. The first four 'stops' on the slider are all quite tiny, while the stops on the right side feel more inline with expectations. The middle stop font size still feels small, while the next stop up feels larger than comfortable.

One solution would be to increase the size of the smallest font and reduce the distance between steps. This should allow for a few other interim moderate sizes.

Another solution would be to provide a font select field/button (like Font family above) where the user can choose the font and font size used in the documentation and runtime using the default macOS font dialog.

--

I could also see where having a separate font and size preference for both the documentation and the runtime would be desirable, but would then require 3 font family selection options; editor font family/size, documentation font family/size, runtime font family/size.

Inform7 IDE Slow Editing

I originally reported this issue back in Jan 2021 with Inform7 v1.68.1. I downloaded the most recent build of v10.1.2 and was surprised to see it was still an issue (original report here)

I’m editing a larger file in the Inform7 IDE and am experiencing very slow editing. I’ve searched and found no one else reporting this. I can edit small files with no lag, but large files present a huge lag as I type. Compiling happens at normal speed. Attached is a link to a video of me typing far ahead of the buffer.

Screen Recording Slow Inform7 IDE

Here are the deets of my file:

The 33597-word source text has successfully been translated into a world with 41 rooms and 184 things, and the index has been brought up to date.

And the details of my version of Inform:

Download file: inform_10_1_2_macOS_1_82_3.dmg
Inform version: 1.82 (1.82.3)
OS: MacOS Montereey v12.6 (21G115)

But this also happens with earlier versions of Inform, such as I7-6M62-OSX.dmg. In the earlier investigation, there was some suspicion that it might be related to the touch bar handling.

Unfortunately, this makes the IDE unusable.

Thanks for any leads to fixing this.

accessibility (colorblind options)

A couple things have come up while working in Inform that could be improved to make it more accessible to colorblind people. I have red/green colorblindness, and it's a pretty common disability.

On the testing tab, the 'knots' of the skein are color coded, and the blue and purple colors look identical to me.

Most of the default color palettes have text colors that are hard to differentiate—easy to work around with a custom palette, but would be nice to have something more accessible included.

Not strictly a colorblindness thing, but the text cursor stays black when switching to dark mode, making it difficult to find.

Mac M1 Pro
MacOS 12.6
Inform 1.82.3

Contents View Displays White Text on Light Background (Text Unreadable)

The contents view in Version 1.82.3 displays white text on a light background, making the text unreadable. This does not appear to be linked to the customizations I've made to the dark or light themes. The issue persists when I select a theme from the default settings.

Here are a few screenshots that demonstrate the issue:

Using a Light Theme

2022-12-17_10-15-01_CustomLightTheme_SourceView
2022-12-17_10-15-13_CustomLightTheme_ContentsView

Using a Dark Theme

2022-12-17_10-16-28_CustomDarkTheme_SourceView
2022-12-17_10-17-31_CustomDarkTheme_ContentsView

p.s. I love what you've done with the Inform7 UI, especially the addition of Light and Dark Mode color schemes!

Issues w/launching from outside IDE on MacOS

I have been using VS Code with the Inform 7 extension. I can edit in VS Code and just launch the compiler from the editor, which compiles and launches my external player Lectrote. I've only gotten it to work linked to the 6M62 versions of ni and cBlorb.

I have not yet managed to compile successfully with Inform7 10.1.

After my somewhat custom build with the help of Toby, here are the versions I'm running:

% ./cBlorb --version
inblorb version 4 'Duralumin' (20 August 2022)
% ./ni --version
inform7 version 10.1.0 'Krypton' (20 August 2022)
% ./inform6 -h
Inform 6.41 for MacOS (22nd July 2022)

When I try to compile I get the following error:

/Applications/Inform.app/Contents/MacOS/ni --internal /Applications/Inform.app/Contents/Resources/retrospective/6M62 --external /Users/wmodes/Library/Inform --project /Users/wmodes/dev/bearcreek/Experiments/test2.inform --format=ulx
(-format=ulx is deprecated: try -format=Inform6/32d instead)
Inform 7 v10.1.0 has started.
>--> An internal error has occurred: Unable to open model CSS material for reading. The error was detected at line 332 of "/Users/tobynelson/Code/Inform Core/inweb/foundation-module/Chapter 5/HTML.w". This should never happen, and I am now halting in abject failure. What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via www.inform7.com/bugs. As for fixing your source text to avoid this bug, the last thing you changed is probably the cause, if there is a simple cause. Your source text might in fact be wrong, and the problem might be occurring because Inform has failed to find a good way to say so. But even if your source text looks correct, there are probably rephrasings which would achieve the same effect. (Error in /Users/wmodes/dev/bearcreek/Experiments/test2.inform/Source/story.ni, line 1)

Obv, it'd be nice to use Inform 10.1 so I can take advantage of the updated extensions in the "friends" library.

IFTF logo isn't transparent

The IFTF logo shown on the launcher has a solid white background, which doesn't look great. It would be nicer if it was transparent. Perhaps a vector graphic could be used with a custom fill colour that gets lighter in dark mode.

iftf

Missing cursor?

At the moment, no blinking text cursor is visible when editing the Source document in MacOS Catalina, making it difficult to know where I'm about to type at any given moment.

Been editing my Source document in VSCode instead and copying and pasting back into the IDE for testing, but this quickly starts to become a pain.

Possible to add a cursor in the near future?

Pre-compiled binary of latest Zoom?

Any chance you could provide a dmg of the latest Zoom to fix issues on macOS Sierra? It's my favorite interpreter, and I've spent hours fiddling with Xcode and not compiling it correctly.

Dark Mode for Story View

First of all, thank you for adding Dark Mode! The ability to have a dark theme for the code and the Index have been really helpful, since I do most of my Inform work after hours.

I was wondering if it would be possible to also invert the colors on the Story view when in dark mode? It's quite jarring to compile the story and suddenly get a big glaring white panel.

(I have the same question for the documentation view, but I assume that's trickier, and I can work around it by hitting the website and using a browser plugin to force a dark mode.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.