Search Unity

RageSpline - Create smooth 2D graphics inside Unity - Coming soon

Discussion in 'Assets and Asset Store' started by keely, Apr 7, 2011.

  1. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I posted this on the showcase earlier, but I guess I should post it here too.



    I got a lot of positive feedback from this video and I decided to put my game aside for now, and put my focus on polishing these tools ready for the Asset Store.

    You can try the level I'm creating in this video: here.
     
  2. Fidde

    Fidde

    Joined:
    Dec 20, 2010
    Posts:
    109
    Wow, that looks very cool and cute. Do you have a poly count for the demo scene, is it suitable for mobile devices?
     
  3. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    It looks great.
    Do you know when it will be in the asset store and how much you want for this fine tool?

    Want, want :)
     
  4. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
  5. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    The game is quite cool - very unique. It's quite frustrating though. Maybe after "firing" the cube, clicking on it kinda puts on the brakes and makes it stop? Would still be challenging, but you wouldn't need to replay the level 327 times to make it to the end :)
     
  6. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I'm mainly iOS-developer myself (I have Unity iOS basic) and even though poly/vertcount is quite high in this video (~5-10k), my 3GS device can handle it very smoothly (mostly 60fps).

    Since making of the video, I have tweaked the splitting algorithm to be more intelligent, so that you get more bang with less polys.

    I'm also giving the user an easy way to tweak quality vs. polycount with variables.

    I have no way to test with Android version so can't comment on that.
     
    Last edited: Apr 7, 2011
  7. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    About when: I'm working really hard to get it done and pretty soon I'll be looking for couple of friendly developers for a closed beta test, so stay tuned.

    About price: It's not going to be free, but I haven't decided the actual price. Why don't we turn it around and tell me what you would pay for something like this? ;)
     
  8. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I'm actually designing the game to be slightly frustrating (hence the name Ragecube), but I can agree that the current level on the demo is way too hard to be the first level of the game.
     
  9. Fidde

    Fidde

    Joined:
    Dec 20, 2010
    Posts:
    109
    This is a no-brainer for any iphone developer if you make it easy to adjust the curve tesselation/resolution. Very nice job, I will pick it up the minute it's launched!

    I didn't see any texturing work done in the fast-forwarded video, is the neat coloring seen in the web player actually vertex colors generated by your plug?

    If you need beta testing, don't hesitate to ask. We're working on an ambitious IOS title slated for release this fall, which would benefit a lot from this type of plug.
     
  10. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    Tesselation/resolution will be easy to tweak. There are going to be two options: fixed vertexcount or more intelligent angle-based approach, where you set an angle threshold for a new vertex around the curve (steeper curves need more vertices).

    Yes it's all vertex colors in the video and no texturing. The tool doesn't currently have texturing support on top of vertex colors, but I'm planning to implement it too.

    Sure thing. PM me if you got something to show for your project.
     
  11. Reapazor

    Reapazor

    Joined:
    Jun 19, 2008
    Posts:
    173
    A very cool piece of tech.
     
  12. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967


    Just a quick teaser to show how I'm currently optimizing the tesselation. Putting a lot of verts on the curves keeps the quality of the shape the same all the way. If you split your spline into fixed-length parts, you are wasting polys on straight parts and getting artifacts on the curves.
     
  13. nikko

    nikko

    Joined:
    Mar 20, 2009
    Posts:
    436
    Great idea, very creative
     
  14. melmonkey

    melmonkey

    Joined:
    Mar 31, 2009
    Posts:
    373
  15. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967


    Today I got texturing support pretty much done!

    You can tweak scale/offset/rotation of uv's with the magenta colored handle. Same stuff for gradient is with the green one.
     
    Last edited: Apr 10, 2011
  16. holyjewsus

    holyjewsus

    Joined:
    Mar 7, 2011
    Posts:
    624
    are you some kind of tool creating god?
     
  17. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I think the real tool creating gods work for Unity Technologies. I just drink from their fountain.
     
  18. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    This looks very cool. Add me to the list of day one purchasers! :)
     
  19. Rush-Rage-Games

    Rush-Rage-Games

    Joined:
    Sep 9, 2010
    Posts:
    1,997
  20. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967

    Low-poly


    High-poly

    Introducing the emboss raises the polycount to almost double, but I still don't think it's going to be a problem. Atleast with iOS. I can't test with Android, but if all else fails, you can always drop down the quality all the way to down, like in the screenshot above. That extreme low-poly version looks kinda sexy too :cool:

    Embossing in general is still giving me a hard time too. Round smooth shapes (like in the screenshot and in the original video) work ok, but more edgy stuff still looks craptastic. I might need to take a step back and figure out better approach. I also had to throw away the "advanced" tesselation. It's varying vertexcount was causing artifacts and I don't want to re-do everything. It wasn't essential anyways.
     
  21. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    How soon can you get version 1.0 up onto the asset store?
     
  22. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I'd love to give you a proper date, but let's just say that all the core stuff is working well now and in theory I could release right now.

    However, I still wan't to tweak stuff, do proper beta-testing and have documentation/videos done before launch. I'm sure there's also some bureaucratic hoops in Asset Store too, that I'm not yet aware of.

    I have a one week of holiday from my dayjob next week, so I'm really hoping I could hammer out beta during that week. I'm going to make a separate post for finding maybe 2-3 beta-testers very soon, so stay tuned.
     
  23. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    You could always take a sort of Minecraft-like approach and release it in it's current state but with a reduced, early adopter, price and continue to provide regular updates with fixes and added functionality over time. Then raise the price when it's more stable and fully feature-complete. Totally up to you of course, just a thought...
     
  24. Frank Oz

    Frank Oz

    Joined:
    Oct 13, 2010
    Posts:
    1,560
    This looks awesome! Love it!
     
  25. melmonkey

    melmonkey

    Joined:
    Mar 31, 2009
    Posts:
    373
    How is it with regards to batching?
     
  26. mikesgames

    mikesgames

    Joined:
    Apr 16, 2010
    Posts:
    1,071
    This is amazing!

    I want a copy!
     
  27. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    You're right and I have given it some thought too. I do this for my games and have released everything from the very first ugly prototype for people to play. I think with indie games it's the only logical way to go.

    With tools I think it's a little different. Or maybe it's not. I have no prior experience. I feel that when you pay for a tool (even discounted price), the bugs and radical changes hurt you more. With a game it's just "ok, it crashed, no biggie", but with tools it could be more like "oh, they changed the way the meshes are saved, I just lost all my work" etc.

    Maybe I just try to leave some stuff out from 1.0 and polish the rest. It means less documentation, less bugs, less drama -> quicker release.
     
  28. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    Sounds like a plan. :)
     
  29. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I don't know much about static batching because I only have basic version, but AFAIK the requirement is that objects share the same material. All the RageSpline shapes without textures will share the same material. All the color-information (outline color, fill/gradient color and embossing colors) is baked in the mesh via vertex colors. For different textures, you need different materials, unless you do an atlas, but then you can't really tilemap.

    Does this answer your question?

    edit: For dynamic batching, the vertex count is obviously mostly too high (the limit is 300 verts).
     
    Last edited: Apr 14, 2011
  30. melmonkey

    melmonkey

    Joined:
    Mar 31, 2009
    Posts:
    373
    Sounds good, that is what I expected. Using vertex colors should ensure that static batching works. I (personally) wouldn't be concerned with dynamic batching, as that wouldn't be what I use RageSpline for.
     
  31. WebWolfRussian

    WebWolfRussian

    Joined:
    Feb 5, 2010
    Posts:
    123
    wow fantastic... when when?
     
  32. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I decided to save time and not do proper closed beta-testing. Instead I gave the tool to couple of my friends to play around. We found a couple of bugs and there's still some shapes and forms that cause some minor headaches, but I think it's now v1.0. I started to make documentation and here's a icon/logo that I just got finished:

     
  33. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    Looks cool. Looking forward to this being released on the Asset Store!
     
  34. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967


    I'm sorry for bumping this thread and not releasing a product yet, but just gotta show this. I decided that there should be a little example game with RageSpline when you purchase it. So started making it and 24h minicrunch later this is what I got.

    I'm very close to finishing documentation and I think we can see RageSpline in the Asset Store quite soon.

    Testdrive the game here
     
    Last edited: Apr 19, 2011
  35. WebWolfRussian

    WebWolfRussian

    Joined:
    Feb 5, 2010
    Posts:
    123
    Nice!! We will have these demos (demonstrations), after buying the tool?
    About how much will it cost?
     
  36. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I'm giving the Ragecar source+assets with the tool, but the RageCube in the first video is not included, because I'm releasing it for the App Store later.

    I haven't decided yet, sorry.
     
  37. WebWolfRussian

    WebWolfRussian

    Joined:
    Feb 5, 2010
    Posts:
    123
    So sorry .. I wanted to buy just to look at sript cube ((
    The game was not planning to release .. just for fun.
    I do not think that perimer from the first movie like that would prevent you from making a game, and sales tool would be greatly increased...
    Perhaps the example of other content?
    I just want the code dice.
     
    Last edited: Apr 19, 2011
  38. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    Bizarre, your example game with the car is just like a little game I've been making recently but without your tool, obviously. The "road" in my game is randomly generated using flattened cubes set at different lengths and angles. It works but has an angular look whereas yours is nice and smooth and basically looks much better. Oh well. :mad:
     
  39. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    You are not the first one in the last 24h to tell me that it's exactly like the game they are making. I guess it's one of those classic mechanics that every other developer ends up reimplementing.
     
  40. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    I guess I can console myself with the fact that mine plays better. :) That's what I'm telling myself anyway!

    Anyway, looking forward to your release and I'll be first in line to buy it!
     
  41. ibyte

    ibyte

    Joined:
    Aug 14, 2009
    Posts:
    1,047
    Hi Keely,

    I think this is primarily? an Editor tool but can your framework be used to create spline based objects program-ably?
     
  42. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    And what about texturing ????

    No MattSimpson ! I will be the first to buy it !!! :)

    6R
     
  43. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    Yes. You can create RageSpline-based gameobject from thin air, or modify an existing one, and access the spline points via code. It's an array of points, each has position, two handlespositions and width of outline. You have functions like AddPoint(), GetPoint(), GetNormal(), GetWidth(), etc.

    After you have modified the points-array, you can call the RefreshMesh() and RefreshPhysics(), which will render the actual mesh for your MeshFilter-component.

    And let's say that you would want to create some custom way to build those polys: You could easily build your own system, where you just poll the values with GetPoint() and GetNormal() and make your own mesh just to way you want and still benefit from my easy-to-use editor UI.

    The performance might be a problem if you do a lot of RefreshMesh() every frame. So far, I have only animated small parts with code, like mr.Cube in the RageCube video (check the first post). Atleast in the iOS-platform, hammering a lot of different meshes every frame might tear all the Unity's underlying optimizations apart, but I haven't really stress-tested this aspect properly to say anything accurate. If you generate static mesh/terrain/whatever, this will not be a problem.
     
    Last edited: Apr 20, 2011
  44. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    Yes the basic texturing and uv-positioning is supported. Check out the screenshots earlier in this thread.
     
  45. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    Awesome work @keely! Oddly enough, I had just started something similar to this. There was another thread going on about 2D tools and all that fun stuff. After seeing RageSpline I decided I might as well let you do the heavy lifting and I'll just throw money at you to get a copy :) There were a couple things I had on my spec sheet that I was curious if RageSpline has coming (if not, I get to hack away at it once you release it :)

    - the ability to make the border inside the main shape instead of outside (this would be for instance to add some overlapping texture details like moss on a rock for example)
    - non-connected segments like just the top half of a circle
    - uv coordinates for the borders
     
  46. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
    I didn't do any market research or anything. Just made a tool for my own game and it got some attention. About throwing the money, I already got your iAd-plugin and plan to purchase some more where that came from, so I guess we can call it even :)

    In my v1.0, there is just straight-forward uv's with scale, rotation and offset, which are easily modified with single handle.

    I'm planning to implement separate texturing for the border polys or something similar.

    I know people (me included) would like to make shapes, where repeating texture would follow the contours. Examples could be ground terrain with repeating texture, or maybe some top-down racetrack. I already experimented with some per-point UV-mapping features, but decided to leave them out from the v1.0.

    Anyways. I know there's a need for more flexible uv-mapping that the v1.0 currently has. I just haven't really decided what is the most logical way to implement them. I bet you have some ideas, since you already given some thought on this. What are all the ways that people would want to texture spline-based shapes? That's the bottom-line question IMO.

    If I understand what you mean, this is supported. I have a option for the outline to be either "loop" or "free". Free means that the outline becomes basically an open-ended line (you can still fill the inside too if you want).
     
  47. caitlyn

    caitlyn

    Joined:
    Jun 20, 2008
    Posts:
    402
    brilliant!
     
  48. Thomas-Pasieka

    Thomas-Pasieka

    Joined:
    Sep 19, 2005
    Posts:
    2,174
    Love the possibilities! Would love more videos!!
     
  49. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967
     
  50. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    967