Giter VIP home page Giter VIP logo

pokemonwalking's People

Contributors

tommai78101 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pokemonwalking's Issues

Need to address clarity for generating Area Map Files

Area Map Files need a bit more clarification on:

  • How the data format is structured.
  • What is the algorithm used to read/write data in the custom data format.
  • How extensible is the custom data format.
  • Whether to use a custom file format descriptor (.AMF file format?) and store them as PNG files...

Reorganize Level and Script Editor UI actions

Redesign the Script Editor UI, so that only:

  • 1. Level Editor can save and load both map area and script files.
  • 2. Level Editor determines where to save/load the map area and script files from.
  • 3. Level Editor should allow the user to save/load the map area from the official "area" directory, official "script" directory, or the all-in-one "mod" directory.
  • 4. If the user chooses a directory not from these 3 places, both the map area and the script files will be saved together.
  • 5. If the user chooses the "area" directory or "script" directory, then the map area will be saved to the "area" directory, and scripts to the "script" directory.
  • 6. If the user chooses the "mod" directory, the map area will be saved to the "mod/area" directory, the script files will be saved in the "mod/script" directory.
  • 7. When loading an area file or a script file, use the checksum to determine where the required files are at, from these places.
  • 8. If no required files were detected, do not attempt to continue loading the level editor session. Throw some dialog messages or something to warn the user.

When loading an area map containing triggers in Level Editor, trigger data are gone

Steps to reproduce:

  1. Open an area map that is known to contain trigger data in the level editor.
  2. In the level editor, click on Triggers button to switch to the Triggers layer view.
  3. Observe how there aren't any trigger datas marked on the area map.

The expected result should be trigger data markers showing up in the level editor.

Same Area Warp Points

In Pokemon Red/Blue/Yellow/Green, in Team Rocket's Hideout, there are warp points that can warp the player to different locations within the same area.

Game must:

  • Give a better name, if possible.
  • Animate the player warping (beam of light or the player flying upwards while spinning around)
  • Be able to warp the player to a different location in the same area.
  • Fade in/Fade out transition during the warp sequence.
  • If warp point destination location is occupied with another warp point, offset the warp point destination location by 1 tile away from the occupied warp point tile. Should be on a vacant, walkable tile.

Level Editor must:

  • Use a new tile format to support this warp point.
  • Define a new pixel data format.
  • Provide different art assets for man-made warp points (Team Rocket's Hideout, Lavendar Town warp points) and natural warp points (Ilex Forest, Deoxy Triangle).

Documentation must:

  • Add information about this new warp tile.

Additional information of trigger ID and trigger data is needed when loading a level area in Level Editor

The current issue with opening existing levels to iterate on new changes, map fixes, and other tweaks, is that the level editor doesn't have any knowledge of any trigger data the old level area files used.

We may need to expand and store additional data into the level area files, so that when opening them, we can load more information.

The whole level editor's metadata storage system is flawed from the beginning, and it is not useable if we cannot re-open pre-existing area maps. It is also not as intuitive when knowing the fact we need to open an old trigger session first, before attempting to load an old map.

Ideally, both the trigger data and the level area data should all be in the same file, so when opening the file, we can restore everything that was saved to said file.

Transition to JSON support.

Convert scripts (or ditch the current custom script format) to proper JSON scripts for reading/parsing data.

Need to separate triggers into: Game Triggers, NPC Triggers, and Event Triggers

Currently, the Triggers are being mixed up between Obstacle triggers, NPC triggers, and player-scripted triggers. Too much stuff to handle.

Rewrite and split off these components into their own triggers, so it makes it even easier to manage and take control of them in the script editor.

That way, there is no need to fight over which entity takes which trigger stored on the area map files.

Incorrect pixel data bitmaps and many more.

The entire pixel data structure is completely incorrect, thus breaking almost every single component in the game AND in the editor.

Gotta rewrite the [Tiles] section in the documentation, and then have to clean up all the pixel data and bitmaps loading.

TOP PRIORITY!

Support [N x N] and [N x M] sized tiles

N = 1 or more.
M = 1 or more. Does not equal to N.

The game and the editor both needs to support tiles that are larger than 1x1 tiles.

Or, the editor needs to support large tiles, while the game translate large tiles into 1x1 tiles that are grouped together with the same functionality.

Either way, this will help immensely with placing down building tiles and large structural tiles that 1x1 tiles can't fit data in.

Add non-playable characters to the game and level editor

With the necessary features added to both the game and the level editor:

  • TDIC
  • Multiple triggers on same tile
  • Moving triggers to adjacent tiles

We can then work on adding non-playable characters to the game and level editor.

EDIT: Not there yet. Will need to separate those features out of this NPC feature.

Condense the NPC, Obstacles, and Item data bytes a bit better

For saving data into the area map file, consider condensing the NPC, Obstacle, and Item data (called EditorDataSet), so that it is in the format (sequential read/write order):

Pixel 0 (first pixel):

  • (x, y) position format is AARR. (X = AA, Y = RR)
  • (editor ID) is GGBB.

Pixel 1 (second pixel):

  • Color Data value (AARRGGBB)

This saves up 2 pixels per data, from 4 pixels down to 2 pixels.

Glitchy editor

Sometimes, it is possible for the level editor to become glitchy.

This is due to overabundance of method calls invoking Java Swing validate() method, which updates the Swing UI components.

The goal is to reduce the amount of invocations to validate(). This should also boost performance and reduce computer fan noise.

When loading script files, the editor will display 2 Erasers

By default, Eraser should never be added into the triggers list twice when loading a script file. This needs to be fixed.

Eraser trigger should only appear once in the editor.

I'm wondering if it's really necessary to add/include the Eraser trigger into the area map file upon saving the map?

Implementing an improved game loading/saving system

This is to replace the current loading/saving system the game uses, which involves manually counting bytes alongside how many bytes being read from the data file.

This new method of loading/saving system will not only improve the situation by removing the manual counting, but also make the system be flexible enough to add additional information without having to fight against hordes of byte values.

Documentation will be updated once this feature has been implemented and after it has been successfully tested.

Blocks #9 .

In a modded world, cannot transition from one area to another.

When a modded world is loaded, if the player attempts to enter a warphole (door), the supposed second area didn't get loaded, and the screen shows up as a void. The player can exit the void by returning back to where the door is supposed to be (usually pressing down will exit the void).

This needs to be fixed if the player is attempting to load custom mods and scripts.

Original, default worlds do not have this issue.

Make the triggers more human-readable

Instead of using mnemonics and symbols, triggers can be made human-readable, so it is easier for the users to edit and update the triggers without having to open the level editor and access the script editor.

Trigger Data Identification Code implementation

Trigger Data Identification Code (TDIC tag) is a fixed-length checksum used for identifying which trigger script file goes with which area level data.

This makes it so that whenever you create / mod an area and provided script files for said area, the area and the script file can store the checksum, so that, regardless of how many area files and script files are placed in the modding folder directory, they will always be able to uniquely identify each other and the correct script file will always be loaded with the area level that is active in the game.

This also reduces a lot of headache on game and level distribution, which is sorely needed. I blame my younger self for not realizing this sooner.

Triggers should follow entities and move to adjacent tiles if entities has moved away from original tile

This is related to non-playable characters and getting them to interact with the player based on trigger data.

Trigger Data not only stores information about events, but also stores scripted movements and dialogues. With non-playable characters, these features are essential to get it to work right.

If an entity moves from a tile to another adjacent tile, triggers must follow the entity, otherwise, the game will be broken.

When following the entity, both the game and the level editor need some sort of tracking to track where the trigger events should fire, and when the tiles are cleared of any events, should triggers be moved elsewhere.

Game Levels need to be updated with TDIC

Info about TDIC: #29

Currently, the game's test level maps are created using the Editor v8 build. The maps will have to either be recreated using the latest Editor v9-dev build (work-in-progress), or new maps will have to be generated.

Allow multiple triggers scripts be placed in the same pixel data space in the area

This is in conjunction with NPCs, where it is possible for NPCs to have different trigger scripts depending on where the player's progress is at.

Script editor must have the ability to specify multiple trigger scripts in the same location. Each trigger script must have data available to check for conditions.

Level editor must have the ability to store multiple triggers within the area map file.

Game must be able to run and trigger multiple triggers, and checking each trigger condition if multiple trigger scripts are located in the same pixel data.

Blocks Characters / NPCs system.

The item BICYCLE cannot be restored in the PACK after loading a save file.

This has to do with the save data having little to no information about the item when attempting to load the data.

Needs both saving and loading the data to work together in order to restore items that were already picked up and put into the PACK.

Current codebase for saving and loading data is not really that flexible to add or make changes without losing track of where the byte pointer is reading at.

Will need a full rewrite, with a better way of packaging the save data information. Also, will need a new documentation change.

Hint: Think about TCP and UDP data packet headers.

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.