[PRERELEASE] Pogic: A client/server plugin system - Add new creatures to your SMP server & soon more

Discussion in 'WIP and Development Status' started by Myers Carpenter, Mar 19, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    RazorFlint

    Good! Your making good progress. :)
     
  2. Offline

    asdaarg

    This is awesome, so just letting you know me and my friends are intently waiting for progress on this. Keep up the good work :)
     
  3. Offline

    Myers Carpenter

    Progress Report:

    Spent the weekend porting over KodaichiZero's Fairy Mod. I wanted to do this to see what a mod like this would need to work on SMP. A new creature is usually in three classes: Entity, Model, Render. The problem with SMP mods is that the Entity should be two classes, one for the server, one for the client. These two can communicate via the Entity Metadata that's found in the EntitySpawn and EntityMetadata packets. This is good for showing the same skin to everyone (the fairies have 4 skins + the queen skin), but if I was going to trigger playing sounds form these it would be a lot more difficult, therefore I think I'm going to create two new packets: "PlaySoundAtEntity" and "SpawnParticle".

    I've also talked with ScottyDoesKnow of SDK Guns fame, working towards using ModLoader and ModLoaderMP in Pogic. The main difficultly is that ModLoader right now is implemented without an eye towards unloading a mod. This is important because if you disconnect from server A you want to remove all the mods it had added to the system before you connect to server B (or a single player system).

    Also, another mod like Pogic is dynCraft which is making a lot of progress. Here's a demo video he's put up:



    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  4. Offline

    ghiiirocker1

    you are a god, in my book. after you release pogic i'm making a shrine to you in my server.
     
  5. Offline

    Jexius

    If you need help with anything just go on Skype (I saw that you added me). To be honest dynCraft is pretty much ready now. Everyone can access all of the useful methods without reobfustication or anything because of the API.
     
  6. Offline

    CuZnDragon

    Nice but since it's not release and not on bukkit doesn't do much good for me.
     
  7. Offline

    Myers Carpenter

    I'm having Notch-angst. Some of the things I want to do are a lot of work. What if notch does the same thing with his modding API? BAH!

    The fairy mod is more than I want to do right now. It would help greatly if CraftBukkit was built on top of MCP's deobfuscation effort rather than their own. That way the server side entity code wouldn't to figure out how to use the obfuscated method names.
     
  8. Offline

    Tempelchat

    That is really amazing! Hope this doesn't get abadonned and keep up the good work. Waiting for release.
     
  9. Offline

    CuZnDragon

    Or if the bukkit and MCP folks would work together on it at least. Would something like the plane or airship be easier. I know dynCraft have gotten the airship working.
     
  10. Offline

    Myers Carpenter

    re: bukkit and mcp. I'm working on a project to rename all the fields/methods in CraftBukkit using the mcp mappings. It reads from the *.rgs files, methods.csv, fields.csv and spits out a Eclipse refactor script xml. Almost to the part where it spits out the first refactor script. We'll see if this works.

    With this porting a single player mod like Fairy to Pogic would be a lot simpler.

    Another idea I had was use NPCX as the server side logic but have a pogic client side mod create new NPC entities for it to drive on the client.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  11. Offline

    Enzy

    Myers what your doing is amazing but do you ever think it would be possible when someone's joins a server it automatically sends the client mod files to your minecraft.jar or would that not work because having mo's creatures and having people that don't have the client play on my server would be awesome
     
  12. Offline

    Myers Carpenter

    You seem to have this right. Sending client mods on connecting to a server is what this is about. I think if this project is successful the mo' creatures folks will think about converting their smp version to use pogic.
     
  13. Offline

    Enzy

    That would be great but would the player need to have this mod to enable getting the files or would the player just have to join the server to use it
     
  14. Offline

    Myers Carpenter

    You would need to install Pogic, but then each server could have it's own set of client mods that would be used on it. Servers could add monster only found on that one server without having every person that connected to it download a special mod.
     
  15. Offline

    Jexius

    Huh? I couldn't help but reply, sorry. It is on Bukkit, and it has its own server mod (dynCraft).
     
  16. Offline

    CuZnDragon

    Went through the three pages of the messages and no where do you say that this is a bukkit mod. Just that it is it's on server and client mod.
     
  17. Offline

    Jexius

    I say it's both. I remember mentioning it at least once.
     
  18. Offline

    Willobe

  19. Offline

    Myers Carpenter

    Folks doing server side coding may be intrested in another project of mine: "Crazy"

    from the readme:
    Crazy

    A crazy seeming idea that's working. Long have the tribes of Bukkit and MCP been seprate, but now they will be rejoined!

    This script, crazy.py, will create an Eclipse refactor script that will instruct Eclipse how to rename all the methods (and soon fields) in the CraftBukkit project using the names the MCP project uses for their server deobfuscation. This will allow folks that want to dig deeper into the minecraft server code to do so without risking obfuscation madness.
     
  20. Offline

    Phat_Rat

    Ok, a thought I had.... In addition to making Pogic allow single player mods in SMP servers, let it be a mod loader in a way. For example, the server will have the files that it needs to run the mod on the server, and the client will download the regular version of the mod from another folder on the server. The client then has the option to keep the mod after disconnecting, or not keep the mod, and the option to enable or disable any mods they have saved. Also when selecting a world, each world will be tagged with whichever mods were used in it, and by default will not load (But this can be overridden) to prevent crashes, etc. Just a thought. I realize how much work this would be, and even if not now, this could be like the next step for Pogic.
     
  21. Offline

    Drakia

    And require bukkit to take 7x (Atleast) as long to update, woo!
    http://mcp.ocean-labs.de/index.php/Update_process
    From the above page: "All these steps take time, at least 24 hours if someone works on it all the time. Since we all have a live beside MCP this is not possible. So please just be patient and wait. We will have a release ready within a few days to a week."
    The update to 1.4 took MCP ~30 hours (Maybe more, it's hard to tell) while the Bukkit team took 4.5 hours.
     
  22. Offline

    speeddemon92

    I gotta say this is a good idea. Thanks Drakia for mentioning this. This is very closely related to my API ideas I've been brewing for a while now. Nice to see someone beat me to the punch. for both sides of Minecraft. Maybe my API' code will go to my servers then.
     
  23. Offline

    Myers Carpenter

    I do not intend for CraftBukkit to convert their code. I might support a fork of CraftBukkit that has this applied, but updates slower than CraftBukkit does.

    Also I agree that they state that it could take up to a week to update. I think they can go much faster. Hanging out on their IRC channel after the 1.4 release it seemed there was some hesitancy to work on what became the mcp2.10 release given the release had such glaring bugs and it was evident that a update that might wipe out the work they were doing was coming.

    One thing I would like to do is find some way to standardize on the names for the field/method names that are already deobfuscated in CraftBukkit with the MCP names.

    If we knew that Mojang was going to nothing in relation to mods in the future I would be working on a server/client side modding API, extending or working with the Bukkit API so that folks could write SMP client/server mods like the Baby Creeper or KodaichiZero's Fairy Mod using only that API.

    BUT they tell us that they are working on a modding API in the release after next. So Pogic becomes a proof of concept, where the importance is to make people notice what can be done, rather than a long term project. Maybe Notch will take a look at it when adding his API. Maybe the Pogic mods that are created will be easy to translate to the official mod system. I certainly will know more about writing a Minecraft mod for whatever is out there.

    I work on this partly because I love the idea of Minecraft worlds that are very different from each other. Questing to take down hill trolls and befriend fairies... using a portal gun and airplanes to survive earth quakes and meteors. I want to add more to the canvas that is Minecraft.

    Progress Report:

    I used crazy to create a branch of CraftBukkit that so that it now mostly uses MCP names. This made getting the code for KodaichiZero's Fairy Mod to build and act as a plugin much easier.

    I can spawn a Fairy by hand using the Overlord plugin, but she has no texture (need to work on getting the textures out of the client mod jars that are downloaded from the server), and all she does it bounce up and down at a distressing rate. Hoping to spend some time with a debugger tonight to understand what gone wrong there.

    I like this idea, but I'm really hoping that Mojang will do just this. :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  24. Offline

    Phat_Rat

    My thought is even with Mojang supporting mods, there are still going to be mods that people want that can't be done with Mojang's mod API, so someone else will have to do it. You've made a lot of progress with Pogic, and I feel that you would be the one to do it (Not to lay on the pressure). I intend to learn java over the summer, so perhaps I could be of some help once I know how to write the code
     
  25. Offline

    RazorFlint

    Myers When's This going to be finished Atm DynCraft is beating you but i think your s will be better Any Sort of release date yet?
     
  26. Offline

    Myers Carpenter

    This isn't a competion. Jexius and I have been talking in other forums. I'm hoping that he will open source his stuff and I can contribute.

    I haven't had a moment to try and debug the fairy mod. If I get it working and dynCraft client/server is release, I might actually port it over to dynCraft rather than release it as is.
     
  27. Offline

    RazorFlint

    Yeah i saw you two having a discussion on minecraft forums and dyncraft.us, i know ts not a competition i thought yours might jus be a little better the way it works.. :D
     
  28. Offline

    Jexius

    If you want, you can help me with dynCraft.
     
  29. Offline

    SH4D0WS1N

    Especially since Jex lost the code, AGAIN.
     
  30. Offline

    Myers Carpenter

    Progress report:

    it's helps not to screw up and delete the call to the superclass for onUpdate(). The fairy spawns and moves around. When she flies she bounces up and down, I think this part of the client side prediction not working right.

    I started working on texture loading. Having trouble getting the textures read from the downloaded jar.
     
Thread Status:
Not open for further replies.

Share This Page