Java программирование.

Вопрос к разработчикам модов / плагинов.
Есть несколько вопросов.

Какие знания нужны для выполнения данных задач?
Для разработки собственного детища мне нужно сначала получить базовые знания о Java программировании или лучше сразу начать по гайду на McModding?

Сколько вы обучались данному мастерству?
 
Свой первый "мод" я сделал без знания java
 
GetRekt написал(а):
Вопрос к разработчикам модов / плагинов.
Есть несколько вопросов.

Какие знания нужны для выполнения данных задач?
Для разработки собственного детища мне нужно сначала получить базовые знания о Java программировании или лучше сразу начать по гайду на McModding?

Сколько вы обучались данному мастерству?

Без знания Java(хотя бы поверхностно) соваться смысла нет. И так куча проблем будет, даже без учета особенностей языка.
 
Как мне кажется "первый мод" это было что то типо добавить свой крафт/броню/блок и так далее. Меня интересует нечто большее.

К примеру полная переработка худа, совмещение модов и так далее.
 
GetRekt написал(а):
Как мне кажется "первый мод" это было что то типо добавить свой крафт/броню/блок и так далее. Меня интересует нечто большее.

К примеру полная переработка худа, совмещение модов и так далее.
По мере добавления своих предметов, блоков и т.д. Ты можешь и выучить Jav'у, но лучше параллельно учить более лёгкий язык, например Python или Javascript. А то Java, сложноватый.
 
Liahim написал(а):
WhiteWarrior написал(а):
Свой первый "мод" я сделал без знания java

Аналогично )))
Обучался делая мод...
Спустя год знаю основы java и forge API...

смотрю на свой первый мод...
Mod (modid = "updatecraft", name="Electro-GalacticUpdate", version = "1.5-alpha", dependencies="required-after:GalacticraftCore; required-after:GalacticraftMars; required-after:IC2")
public class BaseUpdateCraft {
    public static String ASSET_PREFIX = "updatecraft";
    @Instance("updatecraft")
    public static BaseUpdateCraft instance;
    @SidedProxy(clientSide = "com.kirill.UpdateCraft.ClientProxy", serverSide = "com.kirill.UpdateCraft.CommonProxy")
    public static CommonProxy proxy;
    private static int modGuiIndex = 0;
    public static final int GUI_ITEM_INV = modGuiIndex++;
    public static boolean enablePlanet = false;
    @EventHandler
    public void init(FMLInitializationEvent event){MainList.Lists();}
    
    @EventHandler
    public void preLoad(FMLPreInitializationEvent event){registerEntity(MyBestEntity.class, "myBestEntity", 0x00FFFF, 0x00008B);
    }
    
    @EventHandler
    public void load(FMLInitializationEvent event){/* EntityRegistry.addSpawn(MyBestEntity.class, 1000, 100, 200, EnumCreatureType.monster, BiomeGenBase.plains); */
        NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
        proxy.registerRenderers();
        proxy.registerNetworkStuff();
        GalaxyList.planet();
       
        }
    
    public static void registerEntity(Class entityClass, String name, int primaryColor, int secondaryColor)
    {
        int entityID = EntityRegistry.findGlobalUniqueEntityId();
        long seed = name.hashCode();

        EntityRegistry.registerGlobalEntityID(entityClass, name, entityID);
        EntityRegistry.registerModEntity(entityClass, name, entityID, instance, 64, 1, true);
        EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID,         primaryColor, secondaryColor));
    }

     @Mod.EventHandler
      public void preInit(FMLPostInitializationEvent e){proxy.preInit(e);
      proxy.registerRenderers();
        proxy.registerItemRenderers();}
      
      @Mod.EventHandler
      public void init(FMLPostInitializationEvent e){proxy.init(e);
      GCCoreUtil.registerGalacticraftNonMobEntity(EntityTier4Rocket.class, "SpaceshipT4", 150, 1, false);
      HashMap<Integer, ItemStack> input = new HashMap<Integer, ItemStack>();
      input.put(1, new ItemStack(ItemsList.CompressedIridium));
      input.put(2, new ItemStack(ItemsList.CompressedIridium));
      input.put(3, new ItemStack(ItemsList.CompressedIridium));
      input.put(4, new ItemStack(ItemsList.CompressedIridium));
      input.put(5, new ItemStack(ItemsList.CompressedIridium));
      input.put(6, new ItemStack(ItemsList.CompressedIridium));
      input.put(7, new ItemStack(ItemsList.CompressedIridium));
      input.put(8, new ItemStack(ItemsList.CompressedIridium));
      input.put(9, new ItemStack(ItemsList.CompressedIridium));
      input.put(10, new ItemStack(ItemsList.CompressedIridium));
      input.put(11, new ItemStack(ItemsList.CompressedIridium));
      input.put(12, new ItemStack(ItemsList.CompressedIridium));
      input.put(13, new ItemStack(ItemsList.CompressedIridium));
      input.put(14, new ItemStack(ItemsList.CompressedIridium));
      input.put(15, new ItemStack(ItemsList.CompressedIridium));
      input.put(16, new ItemStack(ItemsList.CompressedIridium));
      input.put(17, new ItemStack(ItemsList.CompressedIridium));
      input.put(18, new ItemStack(ItemsList.CompressedIridium));
      input.put(19, null);
      input.put(20, null);
      input.put(21, null);
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 0), input);

      HashMap<Integer, ItemStack> input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, new ItemStack(Blocks.chest));
      input2.put(20, null);
      input2.put(21, null);
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 1), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, null);
      input2.put(20, new ItemStack(Blocks.chest));
      input2.put(21, null);
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 1), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, null);
      input2.put(20, null);
      input2.put(21, new ItemStack(Blocks.chest));
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 1), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, new ItemStack(Blocks.chest));
      input2.put(20, new ItemStack(Blocks.chest));
      input2.put(21, null);
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 2), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, new ItemStack(Blocks.chest));
      input2.put(20, null);
      input2.put(21, new ItemStack(Blocks.chest));
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 2), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, null);
      input2.put(20, new ItemStack(Blocks.chest));
      input2.put(21, new ItemStack(Blocks.chest));
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 2), input2);

      input2 = new HashMap<Integer, ItemStack>(input);
      input2.put(19, new ItemStack(Blocks.chest));
      input2.put(20, new ItemStack(Blocks.chest));
      input2.put(21, new ItemStack(Blocks.chest));
      EGUcoreUtil.addRocketBenchT4Recipe(new ItemStack(ItemsList.rocketTier4, 1, 3), input2);
      }
      
      @Mod.EventHandler
      public void postInit(FMLPostInitializationEvent e){proxy.postInit(e);}
}
 
MaximPixel написал(а):
GetRekt написал(а):
Как мне кажется "первый мод" это было что то типо добавить свой крафт/броню/блок и так далее. Меня интересует нечто большее.

К примеру полная переработка худа, совмещение модов и так далее.
По мере добавления своих предметов, блоков и т.д. Ты можешь и выучить Jav'у, но лучше параллельно учить более лёгкий язык, например Python или Javascript. А то Java, сложноватый.

Еееее, соль))). 
Конкретно я хочу обучиться тем знаниям, что бы их хватило на создание систем для Minecraft. Моей задумкой является открыть свой RPG проект. Но пошарившись по интернету понял, что в открытом доступе нет многих модов, которые я бы хотел добавить на проект.
 
GetRekt написал(а):
MaximPixel написал(а):
GetRekt написал(а):
Как мне кажется "первый мод" это было что то типо добавить свой крафт/броню/блок и так далее. Меня интересует нечто большее.

К примеру полная переработка худа, совмещение модов и так далее.
По мере добавления своих предметов, блоков и т.д. Ты можешь и выучить Jav'у, но лучше параллельно учить более лёгкий язык, например Python или Javascript. А то Java, сложноватый.

Еееее, соль))). 
Конкретно я хочу обучиться тем знаниям, что бы их хватило на создание систем для Minecraft. Моей задумкой является открыть свой RPG проект. Но пошарившись по интернету понял, что в открытом доступе нет многих модов, которые я бы хотел добавить на проект.
Конечно знаний Java будет недостаточно, надо знать и Forge API
 
[qouote=4elik]Конечно знаний Java будет недостаточно, надо знать и Forge API
[/quote]


Forge API - второстепенность для майнкрафта. Сначала Java нужно основы изучить, затем уже Forge. А еще не мешало бы подтянуть скилл дизайна))


Liahim написал(а):
И понимать основы ООП.
Хоть где-то можно показать, что ты умный )))

ООП это?...
 
Без Forge API трудновато будет...
Язык не так сложен, как API...
ООП - https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
 
Так не получится. Сначала читаешь про основы языка, про все операторы и синтаксис. Потом берешь и начинаешь делать мод на все подряд, упорно и долго. Сделав один большой кусок говна, ты изучишь фордж апи, удалишь этот кусок говна и напишешь хороший мод. Но случится это минимум через год.
 
Maxik001 написал(а):
Так не получится. Сначала читаешь про основы языка, про все операторы и синтаксис. Потом берешь и начинаешь делать мод на все подряд, упорно и долго. Сделав один большой кусок говна, ты изучишь фордж апи, удалишь этот кусок говна и напишешь хороший мод. Но случится это минимум через год.

+
Главное сразу какой-нибудь большой проект не делать, иначе придется очень много раз переделывать свой код.
 
Делал свой энерги аддитионс вообще без знаний) Сейчас смотрю и удивляюсь как так получилось что багов мало, держится все на честном слове. А пока делал немного изучил джаву, потом даже интересно стало. Думаю лучше не сразу делать что-то глобальное, а какой-то простенький мод параллельно почитывая какую-то книгу для чайников по джава
 
Я планирую сейчас посмотреть видеоуроки обучения основам Java.
Затем заняться Forge Api.

И думаю для первого раза изменения тултипа для вещей будет легким.


ЕЕЕЕ БОЙ, сделал калькулятор на Java :D
 
GetRekt написал(а):
Я планирую сейчас посмотреть видеоуроки обучения основам Java.
Затем заняться Forge Api.

И думаю для первого раза изменения тултипа для вещей будет легким.


ЕЕЕЕ БОЙ, сделал калькулятор на Java :D


Если это правда, то предлагаю тебе сделать змейку, тогда знаний и попа боли будет больше;)
 
Назад
Сверху