Update:
Source is now available for this project.
I'm going to have to ask that anyone who downloads the source does not use it in their projects (not that you can really *add* it to a project; you have to build the project off of it), and that it's used purely with the intention of adding on to it, and submitting scripts to help finish the engine.
If you have developed something you'd like to make a part of pureLA, please PM me with the following:
-Script Name
-Script Description
-Script Dependencies
-Where the script belongs in the pureLA family
-The name you'd like to be credited under
I do ask that you don't use any code that you've borrowed from another location. Original 'made-by-you' code only. Also, it's required that the script follows the conventions used throughout pureLA. This means- No dependencies outside of the category it falls under (IE octorok map engine scripts can have dependencies through that system, but not other systems), and if possible, single-script objects if objects are needed. This requires almost all script creation to be done with the pureLA engine handy for efficiency and ease-of-integration.pureLA.zip (54.42 KB)
About pureLA:
Project Head: Mamoruanime
pureLA is a pseudo pipeline engine system using GameMaker 6.1 housing essential scripts needed for any Gameboy Zelda fangame.
Each element to the engine is it's own system, in which everything runs from a host script, and branches out to many other areas of the code, but still running independently of the other individual scripts. This allows you to pick and choose which engines you would like to use for your games.
Individual systems within the pureLA engine avoid using multiple objects to operate. Meaning they need to be initialized, but do not need separate objects to run the scripts. Everything's handled using built in drawing functions and variables.. This increases your fangame's overall speed and filesize. One controller object is all that's needed to run each engine.
The following are the systems used in pureLA along with a brief description:
Octorok Map System (OMS)External Map Dynamic LoaderNayru Inventory System (NIS)Item File Loader and Inventory ManagementDin Dialog System (DDS)Links Awakening Dialog ManagementEach system can run independently of the other unless otherwise specified in code. In which case, simply running a system's initialization script will allow the other to run.
-
The main feature of this engine is ORE.
ORE dynamically loads maps created on a 9x9 room grid. This grid is the ONLY room you need in your game. Upon initializing, ORE will load 9 map files, with the player being in the center of the grid.
Q: Why set up the map system this way?
A: Simply put, it's foolish to load a huge room at one time, and it's even more foolish to have a million rooms in gamemaker just to symbolize one area in your game. That causes major filesize issues on your compiled EXE. ORE reduces your filesize by requiring only ONE room with no tiles or object data initially placed. The system loads your rooms for you, and discards them when they're not needed. No more long load times, and no more shoddy transitions from room to room. Everything is near authentic to Links Awakening.
-
The second main system is NIS. NIS handles everything involving inventory. Much like in Links Awakening, and the Oracle series, your items are placed on a grid for you to select from. Selecting an item places it in slot A or slot B. Most inventory and menu systems use multiple objects to represent what's on the screen, but NIS does not. Instead, it uses various arrays and individual scripts to display your inventory, and manage each action the player takes henceforth. Simple scripts such as "AddInvItem(x,y);" make it easy to place an item in your inventory. If a place is not free in the inventory, it moves to the next logical place.
Certain items might have multiple iterations of itself, or possibly different kinds of ammunition. Much like in the GB zelda games, upon selecting these items, a dialog will appear showing the other selectable versions of the item.
Another key feature is that each item is it's own script. One script is needed for each item to operate in the menu, as well as in-game.
-
The DDS system handles dynamic dialog display along with any and all text functions in the game. Typewriter scripts, text effects, and even the ocarina song display scripts are handled through this.
-
The goal for pureLA is to help people easily create their GB zelda fangames without the loss of development quality. The scripts in pureLA are easy enough to use for even the most inexperienced developers to utilize these efficiently.
-
About OoTGB:
Project Head: Mamoruanime, Metallica48423, and DJvenom if he's still interested (lol you still get sources foo)
Ocarina of Time GB is the test-bed for pureLA. It will be used to showcase the functionality of the engine, as well as give players a fun retro gaming experience with one of their favorite Zelda titles.
As apposed to this game being a 1:1 transition from 3d to 2d, it's more of a "re-imagining" of the classic; offering the original storyline and fun as if it were made back in 1994 for the GB.
Development on OoTGB is done simultaneously with pureLA, and will have more frequent demo releases. pureLA will have a release once the pipeline is completed and ready.
Tech demos will be released frequently showcasing general functionality, and game demos will be posted at each milestone in development. Below is a list of preliminary milestones:
- Inside the Deku Tree
- Dodongo's Cavern
- Adulthood
Once these three milestones are reached, the engine will be near complete if not already finished, and OoTGB will be in full exclusive development.
Preliminary technology screens are attached to this thread, as well as a tileset preview. The tileset preview shows how the resources are optimized, and will be released publicly via the Zelda game mass rip project (in the Graphics board)
Feedback, as well as ideas are greatly appreciated.
Preliminary builds and source have been previewed by a select few. Namely DJvenom; who has viewed each preliminary milestone as it's created and offered excellent feedback for each.