• 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.

[Question] Any Unity3d Pokemon scripts to use?

Chrisario

Friend code :0018 2912 2366 let me know
108
Posts
10
Years
  • 2 days ago I downloaded Unity3d then I noticed that I can make a Pokemon game ,but to to that I need some kind of script like the animationSprite scripts.What I mean is I like to make a pokemon game like the nintendo ds for example ,HGSS\DPPt XYORAS so how do do this I just started using java but my scripting skills are very low ,atleast a example of firered that would help a lot .
    The moves abilities,stats all that the NPCs and the Battles. This is really something I like to do so althanks I really would would like if I can get this done.
     
    12
    Posts
    8
    Years
    • Seen Mar 8, 2016
    Don't you think you should start with what we already have available (I mean the RPGMakerXP add-on and most of the help that is directed to that program) before you try a new program?

    I mean, Unity3D can make awesome games, but if you are new to coding or even game-making, I think you should stick to the basic and use the most available and well-known "product", which is Essentials for RPGMakerXP.

    If you insist on Unity, though, maybe this could help... I just fetched something on the Internet that would compile RUBY into JAVA, but I did not test it:
    opalrb. org (can't post links yet)
     

    Chrisario

    Friend code :0018 2912 2366 let me know
    108
    Posts
    10
    Years
  • I get your point fabuaan I'm really not that good in rmxp so that's what I decided if you can give me a advice what assets I shouid use. I want to kinda make a kit for future projects but I'm still new to that new Game engine like on the DS the way the player move and run like that as well the way its connected
     
    12
    Posts
    8
    Years
    • Seen Mar 8, 2016
    Well, the Pokémon Essentials demo is quite complete in terms of explanations.

    The most difficult part would be using RPGMXP... you could waste a few hours watching YouTube video-tutorials about mapping there, since all you'll do on your first try is mapping and eventing.

    Here is a good mapping tutorial:
    www pokecommunity com / showthread php?p=7798865 (can't post links yet)

    Haven't seen a good event one (actually, didn't look for it). But in RPGMXP the event screen is simple enough, very intuitive... and the most complex events you will copy and paste from the demo and give it some twerks.

    Also, this should help:
    www pokecommunity com / showthread php?t=269965
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • I disagree with fabaaun. Good on you for trying something other than Essentials. The most important thing, Chrisario, is probably to make everything modular and figure out what route you'd like to go with file I/O. If you write your files consistently and concisely, like what Essentials does with its core files, you can expand on it the battle system in whatever way you want. (To be quite honest, I'm writing up my own file reader which just reads the Essentials files so that an Essentials update could also update content in my own Unity project without much refactoring)
     

    FL

    Pokémon Island Creator
    2,449
    Posts
    13
    Years
    • Seen today
    2 days ago I downloaded Unity3d then I noticed that I can make a Pokemon game ,but to to that I need some kind of script like the animationSprite scripts.What I mean is I like to make a pokemon game like the nintendo ds for example ,HGSS\DPPt XYORAS so how do do this I just started using java but my scripting skills are very low ,atleast a example of firered that would help a lot .
    The moves abilities,stats all that the NPCs and the Battles. This is really something I like to do so althanks I really would would like if I can get this done.
    What Java have to do with Unity? And even JRuby, isn't something that will convert the entire Essentials codebase in ten minutes...

    If you aren't good with scripts, scripting an entire game mechanic is almost impossible. Just train a lot in scripting or team up with a good scripter (like the creator of this video).

    If you wish 3D models, take a look into this thread.
     

    pkmn.master

    Hobbyist Game Developer
    299
    Posts
    16
    Years
  • As a Unity developer myself, I very highly recommend learning C# for Unity scripting before you start a project like this. It is a very flexible language and (in my opinion) starting with it will help you learn other languages (Java and especially c++) that you might use in you game/software development future, whether you are a hobbyist or planning on becoming a CS major. I recommend studying C# basics online and eventually try out a book such as Learning C# Programming with Unity 3D. Java will not help you, as the language Unity uses is actually better titled Unity Script because it is different from Java in so many ways. Should you decide to use Unity Script, it will most likely only be useful on the Unity engine from that point on, so if you limit yourself to that, you will be limited in other game engines that don't use it. That aside, game programming is just as TBM_Christopher said, modular. Break your data into as many classes as possible to keep the game clean, and connect these separate classes to your battle script. It is a major hurdle to create a Pokemon game from scratch, but it is certainly possible. To get you started you will probably want to create a class that will hold the parameters for your moves. Something like the following: (written in C#)

    using UnityEngine;
    using System.Collections;
    /// <summary>
    /// Data holder for Pokemon Moves.
    /// </summary>

    public class Attack {

    public string Name { get; set; }
    public string Description { get; set; }
    public short Power{ get; set; }
    public int Accuracy { get; set; }
    public int PP { get; set; }
    }

    Note that this would give you very basic damaging moves only. You'd have to create something such as an enum on a separate file that will hold the list of different status effects attacks might inflict, or a list of the name of stats so you can change those through an attack.

    This is all I can give for a few tips. Just study hard and realize that it will take a lot of time, but will be worth it in the end, or even if you fail to make it far in the project. It is my philosophy in the field of Computer Science that failure is something I desire, because failure contributes to memory more than success does. Good luck!
     
    119
    Posts
    10
    Years
  • O so where does the Player movement go and what comand do I use?

    if you're going to be using unity, everything you want to do, you will need to write a script for it. so for example, movement - you will need to make a player controller or some sort of script to allow for player movement, based on key inputs and applying force to the player object. Id recommend watching some youtube tutorials to understand the basics of unity and make a small little game project before going onto something big like pokemon. Also c# and java are pretty similar so if you know some basic java, learning c# wont be as difficult. Good luck in making your game!
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • if you're going to be using unity, everything you want to do, you will need to write a script for it. so for example, movement - you will need to make a player controller or some sort of script to allow for player movement, based on key inputs and applying force to the player object. Id recommend watching some youtube tutorials to understand the basics of unity and make a small little game project before going onto something big like pokemon. Also c# and java are pretty similar so if you know some basic java, learning c# wont be as difficult. Good luck in making your game!

    Kind of a nitpick but for a pokemon game I wouldn't recommend force based movement; velocity based will usually serve you better for oveworld behavior.
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • Well, I'm actually tackling this exact problem in my own project. I used what's called a Singleton design pattern (to be honest the term is unfamiliar to me but basically it means there's only one instance of the class I wrote) to make a dialogue b system, which has a string member variable that contains the dialog to put on screen. Whenever the player starts 'talking', I set the string, then toggle a Boolean that while the player is talking, they can't move.

    Give me a minute to annotate my code and you're free to use it - just credit me if you do!

    Edit: Here it is. Keep in mind that this is specific to my own game, your mileage may vary, but maybe you'll find this a helpful starting point.
    Code:
    using UnityEngine;
    using System.Collections;
    
    /*******************************************************************************
    / I made a Message class because my game uses more than just text for its
    / dialog system. You may want just text, you may want some of these members,
    / heck, you may want color like Essentials.
    / This way, your NPCs in the editor can have an array of Messages as a variable.
    *******************************************************************************/
    [System.Serializable]
    public class Message
    {
      public string Text = "";
      public string Name = "";
      public Texture2D Portrait = null;
    }
    
    
    public class DialogManager : MonoBehaviour {
      
      // A static member like this, once initialized, can be accessed from anywhere
      // Without mucking around with the findobject which can slow your game down
      public static DialogManager Dialog;
      
      // This is a sanity check for me - I use it to keep tabs on which systems are
      // loaded.
      public bool Ready = false;
      
      // Whether or not the dialog system is currently displaying dialog. You can
      // access this to keep your player from being able to walk during a dialog.
      public bool isTalking = false;
      
      // Unused currently. My plan is to use it for how many characters per frame
      // show up when a dialog box is shown.
      private int TextSpeed = 1;
      
      // This is the one that can be replaced with a string if you want a simpler
      // dialog system than what I'm showing.
      private Message current;
      
      // I thought that it'd be a good idea to cache the next message in my system
      private Message next;
    
      // Use this for initialization, since a static member has to be initialized
      // once and only once to be useful. Also, this gameobject won't delete when
      // loading your other scenes.
      void Awake () {
        if(Dialog == null)
        {
          DontDestroyOnLoad(gameObject);
          Dialog = this;
          
          Ready = true;
        }
        else if(DialogSystem != this)
        {
          Destroy (gameObject);
        }
      }
    
      // Public settor for TextSpeed. It's better to make members of a class
      // private whenever possible, though it means you have to write settors and
      // gettors.
      public void SetTextSpeed(int i)
      {
        if(i>0)
        TextSpeed = i;
      }
    
      // Public gettor for TextSpeed.
      public int GetTextSpeed()
      {
        return TextSpeed;
      }
      
      // This function exists so that from ANYWHERE in your project, you can call
      // "DialogManager.Dialog.StartDialog([yourmessage])" to start a dialog.
      public void StartDialog(Message toSay)
      {
        current = toSay;
        isTalking = true;
      }
      
      // Sets the Next Dialog box
      public void EnqueueDialog(Message toSay)
      {
        next = toSay;
      }
    
      // Here's the meat of where this becomes useful. This will vary from game to
      // game the most, so I trimmed out my funky code.
      void OnGUI()
      {
        // I use a GameStateManager elsewhere in my project. Replace this
        // with your isTalking variable
        if(GameStateManager.GSM.GetState () == "Dialog")
        {
          // Display Portrait
          // Display Name
          // Display Text
        }
      }
      
      // AdvanceDialog sets to the cached next dialog or, if it's the last one,
      // disable isTalking.
      public void AdvanceDialog()
      {
        if(next != null)
        {
          current = next;
          // At this point, you'll have to figure out how you want to store your
          // dialog for yourself and enqueue it. For this exercise, I'm only using a
          // 2-step chain.
          next = null;
          return;
        }
        else
        {
          isTalking = false;
        }
      }
    }
     
    Last edited:

    Chrisario

    Friend code :0018 2912 2366 let me know
    108
    Posts
    10
    Years
  • Wow this awesome Christopher can you send me a email and to think this would be possible to do I hope there's soon gonna be a thread of this game dev
     

    scotchkorean27

    Programmer/Pastry Enthusiast
    24
    Posts
    8
    Years
  • From what I can gather, it looks like you're trying to make a game using Unity3D's 2D Framework? I don't know a ton about the 2D system, so a lot of what I have to say may be unique to the 3D framework, but i'll try anyway.

    To answer your initial question, no there aren't any libraries or scripts dedicated to rebuilding the pokemon engine in Unity (as far as i know). However, a lot of the more mundane scripts and systems (world navigation, menu traversal, persistence) are common problems in all forms of game development, and a lot of the time, those solutions can be adapted for what you're trying to do. If you have zero knowhow in C#, I'd say prowl the Asset Store or the internet for some premade scripts, read over the code, and make modifications as needed. The Asset Store is also really nice if you have zero artistic experience or talent, since a lot of people put up some really great art assets for free.

    Also, keep in mind that using Unity doesn't constrain you to what you see in Unity's documentation. You have access to everything C# and JavaScript have to offer, and they will definitely come in handy (especially data structures and file I/O (I hate PlayerPrefs)).

    Make sure you're aware of the differences Unity has from other engines or programming approaches. The key one I ran into working on a 3D pokemon game is scene switching. By default, Unity doesn't retain anything when moving from one scene to another. One way around this is to create a persistent gameObject that stores the most important stuff, and adding Application.DontDestroyOnLoad(transform.gameObject) to a script attached to that object. Another is to persist the data by writing it to disk, either by serialization or through PlayerPrefs (which I dislike). There are also certain nuances involving the way unity handles update functions, but these are problems that you'll want to work out early before they come back to haunt you.
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • I can't believe I forgot to mention this Youtube tutorial titled "Let's Clone Pokemon" XD

    https://www.youtube.com/watch?v=TqbYcAQKfPU
    It's a slightly older version of Unity that doesn't include the 2D sprite animation tools that are available now, and there are plenty of aspects I'd do way differently from how this guy is, but you might find it valuable to see someone else attempting to do exactly what you're looking to do.
     

    Chrisario

    Friend code :0018 2912 2366 let me know
    108
    Posts
    10
    Years
  • Ok so can I make a Player Npc and you guys know that NdS spiky's map editor would it be able to export those models to use and the battle system try to make it exactly like FRL but I lost hope with Essentials . I really want to add the right move animations of all of the existing moves.
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • I don't think Spiky's map editor would be able to export terrain models. I'd recommend using Unity's built-in terrain engine or creating a heightmap using a 2-dimensional array and creating a mesh out of that at runtime.

    As for move animations, those are VERY touch and go - there's not a particularly good way to recreate them after ripping, so I'd recommend starting with how the animations look and then trying to identify the steps that go into them, and making them piece by piece.
     

    Chrisario

    Friend code :0018 2912 2366 let me know
    108
    Posts
    10
    Years
  • Wow this all looks so complex I have used Unity like a month ago so stil have not idea . Do I need to practice my scripting skills?
     

    TBM_Christopher

    Semi-pro Game Dev
    448
    Posts
    14
    Years
  • Oh yeah, but the answer to "Do I need to practice scripting?" will always be yes! :P

    That said, we're living in interesting times. If you haven't been keeping an eye on it, Models-Resource has lately been uploading almost all of the overworld objects from the NDS Pokemon Games, so provided that you're willing to work with a limited range of models, you could theoretically create a pretty nice overworld even without much modeling skill.
     
    Back
    Top