Up-in-the-Air – commitdiff

You can use Git to clone the repository via the web URL. Download snapshot (zip)
Add navigable credits
authorJulian Fietkau <git@fietkau.software>
Sun, 22 Sep 2024 15:43:36 +0000 (17:43 +0200)
committerJulian Fietkau <git@fietkau.software>
Sun, 22 Sep 2024 15:43:36 +0000 (17:43 +0200)
fonts/atkinson-hyperlegible-bold.woff2 [new file with mode: 0644]
fonts/atkinson-hyperlegible-regular.woff2 [new file with mode: 0644]
fonts/atkinson-hyperlegible.txt [new file with mode: 0644]
fonts/jersey10.txt [new file with mode: 0644]
fonts/jersey10.woff2 [new file with mode: 0644]
fonts/opendyslexic-bold.woff2 [new file with mode: 0644]
fonts/opendyslexic-regular.woff2 [new file with mode: 0644]
fonts/opendyslexic.txt [new file with mode: 0644]
index.html
main.js

diff --git a/fonts/atkinson-hyperlegible-bold.woff2 b/fonts/atkinson-hyperlegible-bold.woff2
new file mode 100644 (file)
index 0000000..3edf0a1
Binary files /dev/null and b/fonts/atkinson-hyperlegible-bold.woff2 differ
diff --git a/fonts/atkinson-hyperlegible-regular.woff2 b/fonts/atkinson-hyperlegible-regular.woff2
new file mode 100644 (file)
index 0000000..d3ef5be
Binary files /dev/null and b/fonts/atkinson-hyperlegible-regular.woff2 differ
diff --git a/fonts/atkinson-hyperlegible.txt b/fonts/atkinson-hyperlegible.txt
new file mode 100644 (file)
index 0000000..2befc89
--- /dev/null
@@ -0,0 +1,92 @@
+Copyright 2020 Braille Institute of America, Inc.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/fonts/jersey10.txt b/fonts/jersey10.txt
new file mode 100644 (file)
index 0000000..befc2e5
--- /dev/null
@@ -0,0 +1,93 @@
+Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jersey)\r
+\r
+This Font Software is licensed under the SIL Open Font License, Version 1.1.\r
+This license is copied below, and is also available with a FAQ at:\r
+https://openfontlicense.org\r
+\r
+\r
+-----------------------------------------------------------\r
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\r
+-----------------------------------------------------------\r
+\r
+PREAMBLE\r
+The goals of the Open Font License (OFL) are to stimulate worldwide\r
+development of collaborative font projects, to support the font creation\r
+efforts of academic and linguistic communities, and to provide a free and\r
+open framework in which fonts may be shared and improved in partnership\r
+with others.\r
+\r
+The OFL allows the licensed fonts to be used, studied, modified and\r
+redistributed freely as long as they are not sold by themselves. The\r
+fonts, including any derivative works, can be bundled, embedded, \r
+redistributed and/or sold with any software provided that any reserved\r
+names are not used by derivative works. The fonts and derivatives,\r
+however, cannot be released under any other type of license. The\r
+requirement for fonts to remain under this license does not apply\r
+to any document created using the fonts or their derivatives.\r
+\r
+DEFINITIONS\r
+"Font Software" refers to the set of files released by the Copyright\r
+Holder(s) under this license and clearly marked as such. This may\r
+include source files, build scripts and documentation.\r
+\r
+"Reserved Font Name" refers to any names specified as such after the\r
+copyright statement(s).\r
+\r
+"Original Version" refers to the collection of Font Software components as\r
+distributed by the Copyright Holder(s).\r
+\r
+"Modified Version" refers to any derivative made by adding to, deleting,\r
+or substituting -- in part or in whole -- any of the components of the\r
+Original Version, by changing formats or by porting the Font Software to a\r
+new environment.\r
+\r
+"Author" refers to any designer, engineer, programmer, technical\r
+writer or other person who contributed to the Font Software.\r
+\r
+PERMISSION & CONDITIONS\r
+Permission is hereby granted, free of charge, to any person obtaining\r
+a copy of the Font Software, to use, study, copy, merge, embed, modify,\r
+redistribute, and sell modified and unmodified copies of the Font\r
+Software, subject to the following conditions:\r
+\r
+1) Neither the Font Software nor any of its individual components,\r
+in Original or Modified Versions, may be sold by itself.\r
+\r
+2) Original or Modified Versions of the Font Software may be bundled,\r
+redistributed and/or sold with any software, provided that each copy\r
+contains the above copyright notice and this license. These can be\r
+included either as stand-alone text files, human-readable headers or\r
+in the appropriate machine-readable metadata fields within text or\r
+binary files as long as those fields can be easily viewed by the user.\r
+\r
+3) No Modified Version of the Font Software may use the Reserved Font\r
+Name(s) unless explicit written permission is granted by the corresponding\r
+Copyright Holder. This restriction only applies to the primary font name as\r
+presented to the users.\r
+\r
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\r
+Software shall not be used to promote, endorse or advertise any\r
+Modified Version, except to acknowledge the contribution(s) of the\r
+Copyright Holder(s) and the Author(s) or with their explicit written\r
+permission.\r
+\r
+5) The Font Software, modified or unmodified, in part or in whole,\r
+must be distributed entirely under this license, and must not be\r
+distributed under any other license. The requirement for fonts to\r
+remain under this license does not apply to any document created\r
+using the Font Software.\r
+\r
+TERMINATION\r
+This license becomes null and void if any of the above conditions are\r
+not met.\r
+\r
+DISCLAIMER\r
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\r
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\r
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\r
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\r
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\r
+OTHER DEALINGS IN THE FONT SOFTWARE.\r
diff --git a/fonts/jersey10.woff2 b/fonts/jersey10.woff2
new file mode 100644 (file)
index 0000000..d28ad63
Binary files /dev/null and b/fonts/jersey10.woff2 differ
diff --git a/fonts/opendyslexic-bold.woff2 b/fonts/opendyslexic-bold.woff2
new file mode 100644 (file)
index 0000000..2f04ad1
Binary files /dev/null and b/fonts/opendyslexic-bold.woff2 differ
diff --git a/fonts/opendyslexic-regular.woff2 b/fonts/opendyslexic-regular.woff2
new file mode 100644 (file)
index 0000000..47e26d8
Binary files /dev/null and b/fonts/opendyslexic-regular.woff2 differ
diff --git a/fonts/opendyslexic.txt b/fonts/opendyslexic.txt
new file mode 100644 (file)
index 0000000..bb86782
--- /dev/null
@@ -0,0 +1,94 @@
+Copyright (c) 2019-07-29, Abbie Gonzalez (https://abbiecod.es|support@abbiecod.es),
+with Reserved Font Name OpenDyslexic.
+Copyright (c) 12/2012 - 2019
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
index 416176e1dd9f44c9925921552a5f8ca66214baf2..05bd8c6fd3fe37511b1c73a39d9b30bc9c84fbd6 100644 (file)
@@ -8,6 +8,36 @@
   @font-face {
     font-family: 'Cookie';
     src: url('fonts/cookie.woff2') format('woff2');
+    font-display: block;
+  }
+  @font-face {
+    font-family: 'Jersey 10';
+    src: url('fonts/jersey10.woff2') format('woff2');
+    font-display: block;
+  }
+  @font-face {
+    font-family: 'Atkinson Hyperlegible';
+    src: url('fonts/atkinson-hyperlegible-regular.woff2') format('woff2');
+    font-weight: normal;
+    font-display: block;
+  }
+  @font-face {
+    font-family: 'Atkinson Hyperlegible';
+    src: url('fonts/atkinson-hyperlegible-bold.woff2') format('woff2');
+    font-weight: bold;
+    font-display: block;
+  }
+  @font-face {
+    font-family: 'OpenDyslexic';
+    src: url('fonts/opendyslexic-regular.woff2') format('woff2');
+    font-weight: normal;
+    font-display: block;
+  }
+  @font-face {
+    font-family: 'OpenDyslexic';
+    src: url('fonts/opendyslexic-bold.woff2') format('woff2');
+    font-weight: bold;
+    font-display: block;
   }
   body {
     font-family: sans-serif;
@@ -25,6 +55,9 @@
     width: min(calc(100vh - 4rem), calc(100vw));
     height: min(calc(100vh - 4rem), calc(100vw));
   }
+  .game-upintheair.font-atkinson * {
+    font-family: 'Atkinson Hyperlegible' !important;
+  }
   .ui-page {
     position: absolute;
     left: 0;
   .ui-page:not(.gameplay) {
     z-index: 10;
   }
+  .ui-page a {
+    color: #c50031;
+    text-decoration: none;
+  }
+  .ui-page .area a {
+    color: #d53c59;
+  }
+  .ui-page a:hover {
+    text-decoration: underline;
+  }
+  .ui-page h2 {
+    margin: 0;
+    padding: 0;
+    font-family: Cookie;
+    font-size: 3em;
+  }
+  .ui-page .area {
+    overflow-y: auto;
+    background: #000b;
+    border-radius: 1em;
+    padding: .7em 1.2em;
+    color: #fff;
+    font-family: 'Jersey 10';
+  }
+  .ui-page .area h3 {
+    margin: 1ex 0 .4ex 0;
+    padding: 0;
+    font-size: 1.6em;
+    font-weight: bold;
+  }
+  .ui-page .area h3:first-child {
+    margin-top: 0;
+  }
+  .ui-page .area h4 {
+    margin: 1ex 0 .4ex 0;
+    padding: 0;
+    font-size: 1.4em;
+    font-weight: bold;
+  }
+  .ui-page .area p {
+    margin: 0;
+    padding: 0;
+    font-size: 1.2em;
+  }
+  .ui-page .area p.seealso {
+    margin-top: 1em;
+    text-align: center;
+  }
   .ui-page.loading {
     display: flex;
     flex-direction: column;
   }
   .ui-page.title button {
     width: 8em;
-    padding: 1.5ex 2ex;
+    padding: .6em 1em;
     font-size: 2.5em;
+    line-height: 1em;
     font-family: Cookie;
   }
   .ui-page.title .footer {
     display: flex;
     flex-direction: column;
     align-items: end;
-    font-size: 1em;
+    font-family: 'Jersey 10';
+    font-size: 1.4em;
     text-shadow: 0 0 .07em #fff;
   }
+  .ui-page.credits {
+    padding: 1em;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    gap: 1em;
+  }
+  .ui-page.credits button {
+    width: 8em;
+    padding: .6em 1em;
+    font-size: 2.5em;
+    line-height: 1em;
+    font-family: Cookie;
+  }
+  .ui-page.options {
+    padding: 1em;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    gap: 1em;
+  }
+  .ui-page.options button {
+    width: 8em;
+    padding: .6em 1em;
+    font-size: 2.5em;
+    line-height: 1em;
+    font-family: Cookie;
+  }
   .ui-page.gameplay, .ui-page.openingcutscene {
     cursor: none;
   }
 </div>
 <div class="ui-page title">
 <h1>Up in the Air</h1>
-<button class="startGame">Start game</button>
-<button class="options">Options</button>
+<button class="goto openingcutscene">Start Game</button>
+<button class="goto options">Options</button>
+<button class="goto credits">Credits</button>
 <div class="footer">
 <span>Version: dev</span>
 <span>A game for <a href="https://itch.io/jam/fedi-jam" target="_blank">FediJam 2024</a></span>
 <span>Website: <a href="https://fietkau.media/up_in_the_air" target="_blank">fietkau.media/up_in_the_air</a></span>
 </div>
 </div>
+<div class="ui-page options">
+<button class="goto title">Back</button>
+</div>
+<div class="ui-page credits">
+<h2>Credits</h2>
+<div class="area">
+<h3>Production / Direction / Programming</h3>
+<div class="person julian">
+<p>Julian Fietkau</p>
+<p><a href="https://fietkau.social/@julian" target="_blank">@julian@fietkau.social</a></p>
+<p><a href="https://fietkau.me/" target="_blank">https://fietkau.me</a></p>
+</div>
+<h3>Artwork</h3>
+<div class="person nina">
+<p>Nina</p>
+<p><a href="https://mastodon.art/@misnina" target="_blank">@misnina@mastodon.art</a></p>
+<p><a href="https://misnina.com/" target="_blank">https://misnina.com</a></p>
+</div>
+<h3>External Resources</h3>
+<h4>Music</h4>
+<p>“<a href="https://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100301" target="_blank">Canon in D Major</a>” composed by Johann Pachelbel, arranged by <a href="https://incompetech.com/" target="_blank">Kevin MacLeod</a>
+<h4>Sound Effects</h4>
+<h4>Fonts</h4>
+<p>“<a href="https://fonts.google.com/specimen/Cookie" target="_blank">Cookie</a>” by Ania Kruk</p>
+<p>“<a href="https://github.com/scfried/soft-type-jersey" target="_blank">Jersey 10</a>” by <a href="https://camd.northeastern.edu/people/sarah-cadigan-fried/" target="_blank">Sarah Cadigan-Fried</a></p>
+<p>“<a href="https://www.brailleinstitute.org/freefont/" target="_blank">Atkinson Hyperlegible</a>” by <a href="https://www.brailleinstitute.org/" target="_blank">Braille Institute of America, Inc.</a></p>
+<p>“<a href="https://opendyslexic.org/" target="_blank">OpenDyslexic</a>” by <a href="https://abbiecod.es/" target="_blank">Abbie Gonzalez</a> (<a href="https://hackers.town/@antijingoist" target="_blank">@antijingoist@hackers.town</a>)</p>
+<h4>Engine</h4>
+<p><a href="https://threejs.org/" target="_blank">three.js</a> v168 by mrdoob and contributors</p>
+<p class="seealso">See <a href="README.txt" target="_blank">README.txt</a> for detailed licensing information.</p>
+</div>
+<button class="goto title">Back</button>
+</div>
 <div class="ui-page openingcutscene"></div>
 <div class="ui-page gameplay">
 <canvas width="800" height="800"></canvas>
diff --git a/main.js b/main.js
index 881ce842be6eff11dd9bbcc0769965eff5480c98..4ed91cbd3b8359ad545713a6333d2eb6c5f41d18 100644 (file)
--- a/main.js
+++ b/main.js
@@ -387,9 +387,8 @@ function animate(game, renderer, scene) {
 
   if(game.ui.currentPage != 'gameplay') {
     let cameraSwayFactor = 1;
-    let cameraX = 0;
+    let cameraX = -5;
     if(game.ui.currentPage == 'title') {
-      cameraX = -5;
       game.objects.feather.position.set(cameraX - 6.45, -game.courseRadius - 4.2, -6.6);
       game.objects.feather.rotation.set(Math.PI, 0, Math.PI / 2.1);
     } else if(game.ui.currentPage == 'openingcutscene') {
@@ -522,8 +521,11 @@ function animate(game, renderer, scene) {
 }
 
 document.querySelector('#enableMusic').checked = false;
-document.querySelector('.startGame').addEventListener('click', () => {
-  game.ui.moveToPage('openingcutscene');
+document.querySelectorAll('button.goto').forEach((btn) => {
+  btn.addEventListener('click', (e) => {
+    let target = e.target.closest('button');
+    game.ui.moveToPage(Array.from(target.classList).filter(c => c != 'goto')[0]);
+  });
 });
 window['game'] = {
   state: 'loadingAssets',