diff --git a/gnu/local.mk b/gnu/local.mk
index f7aec83e8a..1bc955ce1f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1449,6 +1449,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch	\
   %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch	\
   %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
+  %D%/packages/patches/inform-add-makefile.patch		\
   %D%/packages/patches/inkscape-poppler-compat.patch		\
   %D%/packages/patches/instead-use-games-path.patch		\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index a2d7c5ea63..0c467de23f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2771,6 +2771,31 @@ (define-public ioquake3
 people base their games, ports to new platforms, and other projects.")
       (license license:gpl2))))
 
+(define-public inform
+  (package
+    (name "inform")
+    (version "6.41")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://jxself.org/git/inform.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1g2misbp4lacaqa96wk0ad59ybr2dvjnhjsrz98byx4i99s2m2nr"))
+       (patches
+        (search-patches
+         "inform-add-makefile.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs (list autoconf automake))
+    (synopsis "The Inform 6 compiler")
+    (description
+     "This is an Inform 6 compiler that has been modified slightly to work better
+when the Inform standard library is in a non-standard location.")
+    (home-page "https://jxself.org/git/inform.git")
+    (license license:gpl3+)))
+
 (define-public instead
   (package
     (name "instead")
diff --git a/gnu/packages/patches/inform-add-makefile.patch b/gnu/packages/patches/inform-add-makefile.patch
new file mode 100644
index 0000000000..497d40979e
--- /dev/null
+++ b/gnu/packages/patches/inform-add-makefile.patch
@@ -0,0 +1,109 @@
+From b2332ab850dc260be8892ad5a4148b335c6b193b Mon Sep 17 00:00:00 2001
+From: AwesomeAdam54321 <adam.faiz@disroot.org>
+Date: Wed, 20 Dec 2023 22:38:41 +0800
+Subject: [PATCH] Implement a Makefile for Inform.
+
+---
+ Makefile.am     | 17 +++++++++++++++++
+ configure.ac    | 40 ++++++++++++++++++++++++++++++++++++++++
+ src/Makefile.am | 17 +++++++++++++++++
+ 3 files changed, 74 insertions(+)
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+ create mode 100644 src/Makefile.am
+
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..fb99417
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,17 @@
++# This file is part of Inform.
++#
++# Inform is free software: you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# theFree Software Foundation, either version 3 of the License, or
++#(at your option) any later version.
++#
++# Inform is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with Inform. If not, see https://gnu.org/licenses/
++
++AUTOMAKE_OPTIONS = foreign
++SUBDIRS = src
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..0ff8ced
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,40 @@
++# Process this file with autoconf to produce a configure script.
++#
++# This file is part of Inform.
++#
++# Inform is free software: you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# theFree Software Foundation, either version 3 of the License, or
++#(at your option) any later version.
++#
++# Inform is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with Inform. If not, see https://gnu.org/licenses/
++
++AC_INIT([inform], [6.41], [j@jxself.org])
++AM_INIT_AUTOMAKE([foreign])
++AC_OUTPUT(Makefile src/Makefile)
++
++# Checks for programs.
++AC_PROG_CC
++
++# Checks for libraries.
++
++# Checks for header files.
++AC_CHECK_HEADERS([limits.h stdlib.h string.h unistd.h])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_CHECK_HEADER_STDBOOL
++AC_TYPE_SIZE_T
++
++# Checks for library functions.
++AC_FUNC_ERROR_AT_LINE
++AC_FUNC_MALLOC
++AC_FUNC_REALLOC
++AC_CHECK_FUNCS([memmove memset realpath strchr strtol])
++
++AC_OUTPUT
+diff --git a/src/Makefile.am b/src/Makefile.am
+new file mode 100644
+index 0000000..b548944
+--- /dev/null
++++ b/src/Makefile.am
+@@ -0,0 +1,17 @@
++# This file is part of Inform.
++#
++# Inform is free software: you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# theFree Software Foundation, either version 3 of the License, or
++#(at your option) any later version.
++#
++# Inform is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with Inform. If not, see https://gnu.org/licenses/
++
++bin_PROGRAMS = inform
++inform_SOURCES = arrays.c asm.c bpatch.c chars.c directs.c errors.c expressc.c expressp.c files.c header.h inform.c lexer.c memory.c objects.c states.c symbols.c syntax.c tables.c text.c veneer.c verbs.c
+-- 
+2.41.0
+
