• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

PokeDroid - A Java Android & Desktop Engine

  • 29
    Posts
    17
    Years
    Feature List
    GB Progress (37%)
    Map System: 50%
    Event System: 22%
    Battle System: 40%
    Download Links
    No Downloads Yet

    Introduction & Premise

    PokeDroid started out as YAPJE, the idea was to have a randomly generated Pokémon world. However before doing this I decided it would be much better to have a Java android and desktop open-source engine.
    The engine is being made to allow for extensions using LUA, Java and JSON files to add new story, game play ideas and mechanics and attempt to add a great Pokémon game experience on an android platform, the engine uses LibGDX which is cross-platform and is relatively easy for developers to change the source code to allow for forks of PokeDroid.

    Gameplay
    The standard story line will come with PokeDroid, based off Pokemon Red. I will be attempting to recreate Pokémon Red within a Java Framework. This does not mean however you will not get Pokémon abilities or uses of IV's and not DV's. These will be determined by the Game Mode you use and not the story. This means that a story will be fresh if a new game mode is installed, and new game modes will become new if new story's are installed. Game Mode's will also be used to enforce Nuzlocke rules, change random encounters to be truly random and other things.

    Updates will be given per-generation, as all games stem from GB games, this will be the first version, GBC being the second, GBA being the third, DS being the fourth and so on...

    This means that development will be incrementally and makes the initial version much easier to implement.

    So, I want to develop content but how...
    PokeDroid is in early days, but there are ideas on how extensions will be made.
    • GameMode - GameMode's determine the mechanics that the gameplay will take, this includes deleting pokemon when they faint, making random pokemon appear based off what pokemon would appear and other interesting features.
    • Stories - Stories will determine the maps, the encounters and the events. The story will be the game that you will be playing and hopefully developers will create other stories that can be played on PokeDroid. I will try to release Pokémon Red for PokeDroid, with an appropriate Gen1 GameMode. If this happens then I will work on the other gamemode's too such as Gen1-Gen5, with each's appropriate features.
    • Maps - PokeDroid will have a map editor packaged available as a separate download. I am hoping to allow it to do most of the hardwork for those who are not as experienced with programming or do not wish to edit base files directly.
    I have a suggestion/idea I would like to see within this project
    Please by all means give me your suggestions, I would love to see them, expand on them or discuss some constraints on them. I am only in my second year of university and don't believe I have the coding experience to do EVERYTHING, and it is a very aspirational project.
    I would also love to see what people would like to do with the API, events or mapping systems, and/or any improvements or features they would like within them.

    I appreciate all expansion ideas upon this system however it may not be possible to fit them all in or to do them at all, I will certainly try to adhere to any ideas you wish, I will take a voting approach to some of the features within the system.

    Outro
    I appreciate any feedback and support upon this project, I'm quite a shy person and just writing these ideas to show other people is a big leap for me in-terms of project development and helps me drive this project forward. I am hoping you can see the potential within this project and will be very supportive of it.

    Images
    Old:
    Spoiler:

    New:
    Spoiler:


    Editor:
    Spoiler:
     
    Last edited:
    Update Log:
    • Changed to LibGDX for both Desktop & Android support (Now running OpenGL, better for games).
    • Implemented TileMap's and full walking and running.
    • Loading of TileMap's from JSON files.
    • Player can walk and run.
    • In-Game audio player working.

    To be worked on next:

    • Battling system
    • Adding pokemon in-game
    • GUI work
    • More on the mapping system
     
    Update to PokeDroid:
    • Added a Title-Menu
    • Added a Main-Menu
    • Created Story System
      • Multiple Stories available
      • Story Select & Back to Title for menu
    • Added interactable entities
    • Removed Audio to attempt to find a faster solution
    • Added real-time and unreal time

    Things available to customise using the story system:
    • Can change map, tileset and starting map
    • Can change the main character
    • Can create and add new entities to maps, with custom step-by-step scripting similar to RMXP
    • Can create custom GUI's
    • Can set to use real-time or unreal time with any time scale.

    Images:
    Spoiler:
     
    Last edited:
    The screen adapts to the aspect ratio, so it will run fine with a 4:3 resolution or any other.

    How does that work? Does it add black bars on the sides, does it resize the screen or does it does it show less of the map? Frankly, none of these are good solutions but I am curious which one you chose.
     
    How does that work? Does it add black bars on the sides, does it resize the screen or does it does it show less of the map? Frankly, none of these are good solutions but I am curious which one you chose.

    I have chosen to keep a fixed width of 640px, with a variable height. This means that on a 4:3 screen there will be the same amount of tiles horizontally as on a 16:9. Vertically there will be less tiles shown on a 16:9 screen but this shouldn't affect game play in any way.
     
    Here is a quick little update log regarding the editor this time, with first looks at the editor:

    • Editor can create new story's, save and load them (They are stored as .zip files)
    • Editor can set the story information, the character, the different tilesets and createtile maps.

    Editor Images
    Spoiler:
     
    I don't know how or if this will help you - Tiled. libGdx can read tmx files which Tiled generates. Just a thought.

    As much as I love Tiled due to it's game agnostic approach. The lack of an extension system infuriates me, it makes creating games with specific map properties quite hard/tedious to do. The map editor for PokeDroid will be made specifically for PokeDroid, with an ability to extend it's current functionality to accommodate any additional/needed functions.

    I will be mainly focusing on the desktop edition of PokeDroid, but will not be ignoring the needs for android.

    My main focus has been university so there hasn't been much major progress but I am still working on PokeDroid.
     
    so what sort of features would be included by default would it be like essentials containing a lot of the mainstream features or will it be more basic (like an earlier generation)
     
    Recently this project has been on my off-list due to starting a new job as a software developer, however I am restarting it up to do in my spare time.

    Anyone wishing to join this project please send me a message, i'd love to have more people on the team.

    I love these kind of projects, what are your greatest upcoming challenges?
    The greatest challenge initially was making all these components work together in a way that allows a person to customise them.
    The initial engine had a entity system which was much like the event system in RPG Maker XP. This will have to be rewritten as I wasn't happy with how it turned out.

    Also LUA is something i'm not too familiar with but would love to use scripting AND java plugins, due to java plugins being used for more complex things and scripting being available for most people.

    Another issue would be a central repository for plugins/maps etc. I do want for something like this but it's not planned at the time due to hosting costs and such (also it's blocked by many other features that need to be added.)

    I will be trying to use git more and all latest versions will be on my github split into separate branches which will be merged into master regularly.

    These 3 branches come under:
    feature/editor
    feature/battlesystem
    feature/mapsystem

    If anyone can come up with other features which seem like there own sub-system feel free to chime in, I love feedback.

    As a small sidenote to anyone following this project, there is now a Trello set up to see planned features and other things.

    Trello is a project planning board meaning you'll be able to see the next features to be added and the current features being worked on.

    Features can also be voted on so any features which are unsure to be added can have so many votes.

    The trello board is found here: https://trello.com/b/GWbRf9DI/pokedroid#
     
    Last edited by a moderator:
    Back
    Top