initial instructions

This commit is contained in:
Melos Han-Tani 2020-04-04 18:56:07 +09:00
commit 5870eaec4c
6 changed files with 302 additions and 0 deletions

20
.gitignore vendored Normal file
View File

@ -0,0 +1,20 @@
installation files
intra/air
intra/dist
intra/Anodyne_standalone
intra/bin/Anodyne.swf
intra/mobile_PAX_Intra.dam
intra/Intra.dam.bak
intra/Intrademo.dam
intra/Intrademo.dam.bak
intra/mapCSV_Minimap_Bedroom.csv
intra/mapCSV_Minimap_Redcave.csv
intra/Minimaps.dam.bak
intra/Anodyne.exe
intra/Anodyne.ipa
intra/Anodyne.zip
intra/Anodyne_Only_Joy_1_506.exe
intra/commits.txt
intra/_weirdbinthings
intra/Anodyne_store_new.ipa
intra/Anodyne_Windows_1_511.zip

1
FAQ.md Normal file
View File

@ -0,0 +1 @@
Questions about how the code works or how to run the game will be answered here (if people ask questions).

92
Installation.txt Normal file
View File

@ -0,0 +1,92 @@
There are three steps to do to get things working:
1. Get FlashDevelop running - IDE for editing the game
2. Compiling the game (Get Adobe AIR/Flex installed (for compiling the game))
3. (Optional) Compile + Install DAME (Level editor)
Note: I made most of these files available in a google drive folder (in case one of the companies decides to get rid of it in the future): https://drive.google.com/drive/folders/1Ge-tNBqgaz7ZUVeU9RxnWwNbr_JKN4en
----------
1. Get Flash Develop running (IDE for opening/editing the game files - FlashDevelop 5.3.3.exe)
Download here: https://www.flashdevelop.org/community/viewtopic.php?f=11&t=13028
Get Flash Player (flashplayer_32_sa.exe)
Download here: https://www.adobe.com/support/flashplayer/debug_downloads.html
Get Java (jre-8u241-windows-i586.exe)
You want the "Windows Offline" version here: https://java.com/en/download/manual.jsp
Direct link to that exe: https://javadl.oracle.com/webapps/download/AutoDL?BundleId=241534_1f5b5a70bf22433b84d0e960903adac8
---------------------
2. Compiling the Game
NOTE: Steps a, b, c, and e can be skipped by downloading my customized Flex folder (flex_sdk_4.6.zip- it already includes Adobe AIR 32)
a. Get the Adobe Air SDK
(Note there's a lot of stuff on this page - you want "Adobe AIR 32.0.0.116 SDK". NOT THE COMPILER)
https://helpx.adobe.com/air/kb/archived-air-sdk-version.html#
Direct download: http://download.macromedia.com/air/win/download/32.0/AdobeAIRSDK.zip
b. Get Flex Compiler (Anodyne uses some old action script that won't compile in the latest AIR compiler). Download 4.6 from here:
https://www.adobe.com/devnet/flex/flex-sdk-download.html
c. Copy paste the AIR SDK into the flex folder
- Just cut and paste the contents of AdobeAIRSDK into flex_sdk_4.6
d. point FlashDevelop to this folder
Project > Properties > SDK > Custom SDK > click on the flex folder that contains "ant/", etc.
e. update java heap space
Edit jvm.config in bin/ of the flex SDK. update the line with java.args to this (increasing the heap space)
java.args=-Xms1024m -Xmx1024m -Dsun.io.useCanonCaches=false
f. Test compile. If all goes well you should get an .swf in the bin/ folder of FlashDevelop. however the game won't run yet
g. Update the run script paths in SetupSDK.bat (fill out FLEX_SDK with the folder to your flex install, e.g. C:\Users\yourname\Documents\Anodyne 1 Repo\installation files\flex_sdk_4.6
h. The game should work now! If you have issues you may need to verify the game is compiling to SWF version 20 or later or something.
----------
3. Install DAME (Level editor for .dam files that let you export CSV and XML files for the game's tilemap data and enemy placements)
Easy Way
--------
Download DAME_standalone.zip from my google drive folder.
Harder way (Compile from my modified DAME source)
----------
1. Download DAME-master-fixed.zip
2. Download flex 3.6 (from here https://www.adobe.com/devnet/flex/flex-sdk-download.html or from my folder as flex_sdk_3.6a.zip)
3. Open the DAME project in flashdevelop
4. hook up flex 3.6 to flashdevelop
5. compile the editor. you should be able to get a SWF. if you have errors see the DAME's README for fixes.
6. Run the PackageApplicationAsExe.bat script. if all is well, the game's exe should pop up under air/DAME
---------------
Hardest way for cool kids (Compile from original DAME Source)
1. Get DAME source from
https://github.com/XanderXevious/DAME
2-5. Follow steps 2-5 above.
6. We want to run PackageApplicationAsExe.bat but there's a few things we gotta do first
7. Open CreateCertificate.bat. change the RSA flag to 2048 from 1024.
7.5 Set CreateCertificate.bat's Flex SDK path to the bin folder of flex 3.6. Run the bat file, it should give you a SelfSigned.pfx file
8. Open PackageApplicationAsExe.bat . Edit the flex path BUT POINT IT TO THE FLEX YOU USED FOR ANODYNE (4.6), with the newer version of AIR and stuff.
9. Update application.xml's xmlns to 3.0 (line 2)
10. Update <version> to <versionNumber> in application.xml
11. In the package script, add this in signing_options, afer "pkcs12":
-tsa "http://sha256timestamp.ws.symantec.com/sha256/timestamp"
12. remove "-C ../DAME samples" from the "set FILE_OR_DIR" line.
13. change AIR_FILE's value to "air/DAME"
14. after %SIGNING_OPTIONS% add "-target bundle"
15. run the packaging script.

77
LICENSE.md Normal file
View File

@ -0,0 +1,77 @@
Anodyne License v1.0
Last updated April 4th, 2020
Adapted from VVVVVV's source code license.
If you think something ought to be changed reach out to Melos Han-Tani at hello@analgesic.productions
If you are interested in distributing work that falls outside the terms in the licence below, or if you are interested in distributing work that includes using any part of Anodyne not included in this repo then please get in touch - we can discuss granting a licence for that on a case by case basis. The purpose of making the contents of this repo available is for others to learn from, to inspire new work, and to allow the creation of new tools and modifications for Anodyne, and to allow commercial/noncommercial derivative works (fan games, etc).
This notice may not be removed or altered from any source, binary or asset distribution.
This repo contains the source code for Anodyne, including all level, art, music, sound, and text content from the game.
The license contains two parts, pertaining to the source code assets, and then level/art/music/sound/text assets separately.
You may only make use of these assets and source code for
- Derivative games (Fangames, Mods, Improved versions)
- Teaching/education purposes, self-education
These assets may not be used for movies, films, advertisements, or any other type of media without written permission.
Please note that to use these assets you must own a paid copy of Anodyne. This works on the honor system, but if you lie, we'll know.
I am choosing to include the assets here directly out of trust: most open sourced games make you copy the assets from an installed purchased version. As we still rely on Anodyne sales for our livelihood, please don't violate this trust or I'm extremely unlikely to do this again in the future.
Part 1: Anodyne Asset Library (Art, Level, Music, Sound, Text assets)
-------------
The Asset Library of Anodyne consists of mp3, wav, txt, csv, xml, png, etc files inside of bin/, mp3/, sfx/, src/xml, src/csv, src/res and src/data, as well as the .dam level data files.
The Asset Library for Anodyne falls under a CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) with the additional restrictions:
- You must own a paid copy of Anodyne
- You may not use any of the assets in a way that would infringe upon the Anodyne game copyright by creating a product that may be mistaken for Anodyne (e.g. you may not compile the unaltered game and rename it "Andoyne" and sell it).
- You may not redistribute any of the unaltered assets in standlone packages, in a way primarily intended for or directed toward commercial advantage or private monetary compensation. This includes but is not limited to: selling the art in 'asset packages', selling the music on music distribution platforms. This does not include a fangame in which the assets have been mixed with original creative intent.
- You may not redistribute any of the unaltered assets for free without prior written permission (e.g., you may not create a "Anodyne Sprites" itch.io product page. Use your judgment: if the edits you're making are not significantly different, you shouldn't redistribute it for free (e.g. tinting spritesheet slightly))
- Any COMMERCIAL, derivative work using these assets must include an acknowledgement visible to all users of the product (e.g. title screen of a game or game's store page) that it includes used assets that are copyright of Analgesic Productions LLC and are from the Anodyne asset library.
- The origin of these assets must not be misrepresented; you must not claim that you created the original assets.
Basically don't resell our stuff as if it was yours, and make sure to give credit where it's due and we'll be good.
Part 2: Anodyne Source Code
-------
This software available from here is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any claim, damages or other liability arising from the use or in connection with this software.
All materials in the repo, with the exception of the contents of the "org", "com", "mochi", and "extension" directories, are copyright of Analgesic Productions LLC 2013-2020.
Permission is granted to anyone to use this software and to alter it and redistribute it freely, subject to the following restrictions:
- Any branch/fork/etc of this code for slight modding or improvement (e.g. "60 fps version" or "harder bosses mod") purposes must include this license and must require its users to own a paid copy of the original game.
- A branch/fork/etc of this code for significant modding purposes (think Mario Romhacks) does not require its users to own a paid copy of the original game. Use your best judgment here.
- You may not alter or redistribute any unaltered versions of this software in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. This includes, but is not limited to, selling unaltered versions of this software, or including advertisements of any kind in unaltered versions of this software.
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, you are required to include an acknowledgement in the product that this software is the copyright of Analgesic Productions LLC and is based on the Anodyne source code.
- Altered source/binary versions must be plainly marked as such, and must not be misrepresented as being the original software.
- You must not distribute any materials from the game which are not included in this repo unless approved by us in writing.
Basically, making commercial or noncommercial mods or fangames using our code is fine. Just let your users know that you can't play an "improvements" mod of this game without owning the original game. However a mod on the scale of all-new levels/dialogue would not require the user to own the original game.
Also don't do stuff like reskin the game with color-tinted sprites and sell it on Steam.
Or else.

102
README.md Normal file
View File

@ -0,0 +1,102 @@
This is a complete repository of Anodyne, the 2013 game made by Analgesic Productions. For license info, see LICENSE.md.
If you have questions ask in our discord https://discordapp.com/invite/analgesic
Note that while anyone is free to browse these assets, only paid owners of Anodyne may download and use the assets. (Anyone can use the source code, though.)
Here is a brief guide to the files.
If people do end up using this code and have questions how it works, feel free to e-mail me and I'll maintain an FAQ file here. If you find any unsavory comments please let me know privately and I'll remove them.
Guide to files:
mp3, sfx
- Contains the music and sound effects
intra/
- Source code and Game Assets
/////////////
More details on intra/:
bat/
- Contains batch scripts needed to prepare the game for distribution on Play Store or prepare the game for testing via the FlashDevelop IDE. There's nothing particular specific to Anodyne in terms of building it as a standalone EXE so I'm not including instructions on how to do that (look up Adobe AIR). However the "PackageApp_Win" script SHOULD still work if you want to make an .exe on Windows. Mac is a little more irritating, I actually didn't include that script here, but you just need to use command line options with adt
bin/
- This will contain the game once you've built it with FlashDevelop.
- It also contains joyquery which the Windows version uses for controller support
obj/
- I still don't understand what this folder is for. I think it stores temp files for compilation from FlashDevelop.
src/
- The game's source code and assets. More on that soon.
txt/
- Various notes to myself, these might be enlightening or amusing.
xml_app
- .xml files needed for building the game.
/////////
Top Level files:
Intra.dam - The level data. You'll need to figure out how to build a working version of DAME level editor, unfortunately, but I did include the source code for that.
Intra-AIR.as3proj - the flashdevelop IDE file.
Minimaps.dam - Level data for the in-game minimaps
various .bat files: These are used for packaging the game (as an .exe or .apk), or for testing the game using flash player. You could play the game in mobile-size with on screen buttons by running RunMobile.bat, but if you wanted to build an APK you'd need to install android SDK and update the .bat files SDK paths accordingly
Z_HELP.txt - various ramblings to myself about updating the game or how to build stuff. some of this is out of date, I'm not sure. maybe amusing.
//////////
Source code and Assets (src/ folder
awerwer, ca, com - various extensions for mac controllers, steam. none of these are integrated into this open sourced version so this is obsolete i think)
csv - tilemap data for the levels. you could edit these with a tilemap editor. Note that collision data is elsewhere
data -
-- Contains both uncompiled dialogue (.txt) and compiled dialogues (NPC_Data_EN.as), which the game loads. Dialogue can be compiled with the make_npc_data.bat script, which runs the gen_npc.py python script. You shouldn't need to compile these unless you're modifying dialogue. You can also just directly edit the .as files to add new dialogue scenes
-- The other .as scripts contain embeds for sprites that are used by other game code, or loading in game audio. If you want to add music you'd do that here. TileData lets you change collision info of tilemaps. CSV_Data contains embedded .csv files (tilemap data). Common_sprites contain some sprite embeds
entity -
--decoration - Various visual effects
--enemy - Enemies, bosses.
--gadget - dungeon entities (buttons, doors, holes, etc)
--interactive - NPCs, most cutscenes
--player - stuff relating to Young (brooms, swap, player movement)
extension - code for joyquery
global - input management (keys.as), gamestate, flags, saving code, font data. in particular:
-- Registry - contains functions for conversion of level data XML into a parsable format for the game (which SpriteFactory then uses)
helper - misc files - e.g. windmill cutscene, achievements, dialogue state management, helper functions for events/cutscenes, shaders for SUBURB... in particular
-- SpriteFactory - this code helps load data from the level data .xml to spawn enemies. If you wanted to port anodyne's level data to some other format, you might need to edit this at some point
lua - Exporters for use with DAME level editor.
org - Contains the open source Flixel engine. I might have made some modifications here, idk.
res - art assets, more on this later
states - various inner game loops. Using the "State" system from flixel (essentially groups of related objects that can be added/removed from the game). PlayState contains the game's most important loop, where the player and enemies are added and stuff, level loading. Some of these files aren't used I think
xml - the exported level data (exported from the .dam file via DAME, which needs to be compiled to be used)
Main.as - Entry point of the code.
Intra.as - The FlxGame of Anodyne (if you are familiar with the Flixel engine). The vast majority of this is mobile touch controls

10
USING LEVEL EDITOR.md Normal file
View File

@ -0,0 +1,10 @@
1. You'll need to have a copy of DAME (Deadly Alien Map Editor) available. Only works on Windows. Get this from my "binaries" folder (see README)
2. Open DAME. You can then use this to open intra/Intra.dam or intra/Minimaps.dam
3. DAME is used to edit the levels and enemy placement. There should be guides on how to use it, but generally the left side ("Layers") features all of the game's level data. You tick on a top-level box to show that level. Usually there are then four tilemap layers from back to front, then two layers of entities. I believe that "stateful" entities refer to things like Gates and Treasure Chests whose state need to be saved across game exits/loads. Stateless refers to stuff like enemies, which always respawn when re-entering a level.
3.5 - if you want to add your own entities or behaviors or tilesets, you can! just read up on how to use DAME. You'll have to edit TileData.as (in the source code) and some other stuff to get things hooked up with the game though. See the README for some more info on that. If you're gonna get serious with modding and have questions here feel free to ping me on the analgesic discord.
4. To export, first specify the path of the custom LUA exporters I made. (File > Specify Custom Exporters Path). Set this to intra/src/lua . Note that you can add your own lua exporters!
5. MAKE A BACKUP OF THE CSV AND XML FILES (this next step will overwrite them)
6. Set the "Xml dir" (Export directory) for the level data. This should be something like C:\Users\hantani\Documents\Anodyne 1 Repo\intra\src\xml
7. hit export. the editor should generate a bunch of CSV files and one xml file.