Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

BulletML for Unity (coming soon, April 2014)

Discussion in 'Works In Progress - Archive' started by Pixelnest, Mar 22, 2014.

  1. Pixelnest

    Pixelnest

    Joined:
    Oct 25, 2013
    Posts:
    27
    Hello fellows,

    We've seen on the forums many prototypes of BulletML integration in Unity but nothing complete and public for now, so we decided to make a fully working, simple and documented plugin to use BulletML with Unity 2d.

    BulletML for Unity


    A complete plugin for BulletML integration in Unity 4.3 and above.

    It will be released in April 2014 (so close!), the plugin is already functional but we want to make sure we deliver the best package, with a complete documentation.

    Main features:

    • Simple and lightweight. No scripting required (if you don't want to).
    • Bullet bank mechanism. Associate a pattern's bullet to a sprite and a prefab easily.
    • Customizable: use your own mechanism like pooling or sprite assignation if you need.
    • Multiplatform, no restriction.

    Included in the package:

    • The plugin core, scripts and dependencies
    • A full documentation available online, from the plugin installation to a BulletML reference with examples
    • A showcase demo to see the awesome patterns you make
    • A concrete demo featuring a typical shooter boss fight

    The price will be 20$ (15$ the first week), we think it's the fair price as it greatly enhance a shoot them up game and for the features provided.

    Screenshots

    A preview of some patterns you can easily integrate with BulletML for Unity.

    $screenshot1.png

    $screenshot2.png

    The boss fight demo with a horrible monster coming to invade Earth:

    $screenshot3.png

    A preview of the XML you write:

    $screenshot4.png

    What is BulletML ?
    BulletML is an XML-based markup language to design bullets behavior in a shooter (shoot them up, shmup) game.
    With very few lines of XML you design some awesome complex patterns.

    A quick complete example:

    Code (csharp):
    1.  
    2. <?xml version="1.0" ?>
    3. <!DOCTYPE bulletml SYSTEM "bulletml.dtd">
    4.  
    5. <bulletml type="horizontal" xmlns="http://www.asahi-net.or.jp/~cs8k-cyu/bulletml">
    6.  
    7.   <action label="top">
    8.     <repeat>
    9.       <!-- The main loop, until the boss is destroyed -->
    10.       <times>99999</times>
    11.       <action>
    12.         <fire>
    13.           <direction type="absolute">360 * $rand</direction>
    14.           <bulletRef label="boss3_shot"/>
    15.         </fire>
    16.         <wait>30 - (15 * $rank)</wait>
    17.       </action>
    18.     </repeat>
    19.   </action>
    20.  
    21.   <bullet label="boss3_shot">
    22.     <speed>0.25 + 0.25 * $rank</speed>
    23.     <action>
    24.       <wait>30 * (2.0 - 1.0 * $rank)</wait>
    25.       <actionRef label="frag_shot">
    26.         <param>0</param>
    27.       </actionRef>
    28.       <actionRef label="frag_shot">
    29.         <param>90</param>
    30.       </actionRef>
    31.       <actionRef label="frag_shot">
    32.         <param>180</param>
    33.       </actionRef>
    34.       <actionRef label="frag_shot">
    35.         <param>270</param>
    36.       </actionRef>
    37.  
    38.       <vanish />
    39.     </action>
    40.   </bullet>
    41.  
    42.   <action label="frag_shot">
    43.     <fire>
    44.       <direction type="relative">$1</direction>
    45.       <speed>0.2 + $rank * 0.2</speed>
    46.       <bulletRef label="boss3_shot_2"/>
    47.     </fire>
    48.   </action>
    49.  
    50.   <bullet label="boss3_shot_2">
    51.     <action>
    52.       <wait>20 * (2.0 - 1.0 * $rank)</wait>
    53.       <fire>
    54.         <direction type="relative">30</direction>
    55.         <speed>0.4 + $rank * 0.3</speed>
    56.         <bullet label="boss3_shot_3"/>
    57.       </fire>
    58.       <fire>
    59.         <direction type="relative">-30</direction>
    60.         <speed>0.4 + $rank * 0.3</speed>
    61.         <bullet label="boss3_shot_3"/>
    62.       </fire>
    63.       <vanish />
    64.     </action>
    65.   </bullet>
    66.  
    67. </bulletml>
    becomes

    $gif_circle.gif

    What is NOT included in BulletML for Unity (at least version 1.0)?
    • We don't feature any object pooling, as we think there are a lot of awesome plugins already available for that much.
    • However, we include a simple mechanism to destroy bullets that go out of the screen of enhance performances at a very low cost.


    Coming soon, stay tuned! :)

    If you have questions or some features you would like to see included, feel free to contact us or leave a message here.
     
    Last edited: Mar 22, 2014
  2. eatfrog

    eatfrog

    Joined:
    Jan 16, 2014
    Posts:
    4
    here's my alternative -> https://github.com/eatfrog/bulletmllib4unity
    or wait, it's pretty much the same thing, except free!

    "Valryon forked eatfrog/bulletmllib4unity to Valryon/bulletmllib4unity a month ago"


    lolololo.
     
  3. Pixelnest

    Pixelnest

    Joined:
    Oct 25, 2013
    Posts:
    27
    Well, we will offer you the package if you want to make sure we are not using your (public) code.
    Yes, we checked the existing soltuion before reinvienting the wheel but we were not able to use yours, so we decided to make our own.

    Also, we provide a documented, illustrated and fully tested Unity plugin in addition to the BulletML engine. It's not what you provide in your GitHub repository.

    PS : What is the point with spamming all the threads and reddit we opened to feature our work?!
     
    Last edited: Mar 22, 2014
  4. TheRaider

    TheRaider

    Joined:
    Dec 5, 2010
    Posts:
    2,245
    Maybe he just wants to people to know there is a good free option and it is available now.

    Just let it be, will be good for people to compare and make a judgement. Download the free one and if that isn't what they want turn to yours.


    What do you use to read in the xml? system.xml seems to add a lot to download size.
     
  5. Pixelnest

    Pixelnest

    Joined:
    Oct 25, 2013
    Posts:
    27
    Yes, you're definitely right, thanks.

    Well, we are currently using System.xml in the BulletML engine, but were not aware of the size addition, that's definitely an issue.
    We will switch to Mono.xml (or maybe there is a better recommandation?) before releasing the plugin to reduce the download size.
    Thanks for the advice.
     
  6. TheRaider

    TheRaider

    Joined:
    Dec 5, 2010
    Posts:
    2,245
    I use system.xml too but a lot of people are highly critical of it because of the additional size. There are a few people who have written lightweight ones which don't need system.xml but I decided to be lazy and use system.xml since it would change my client bases opinion but obviously in mobile/web games using it might not be the best idea.
     
  7. thedreamer

    thedreamer

    Joined:
    May 13, 2013
    Posts:
    226
  8. Pixelnest

    Pixelnest

    Joined:
    Oct 25, 2013
    Posts:
    27
    It seems like ISG toolkit is made for 2D or 2.5D games (only use X and Y coordinates in the gameplay), just like us.
    They definitely offer more shooter features than we do but I don't know if you can make bullet patterns with it. Those two plugins are probably complementary.