Search Unity

Forever - Endless Runner Engine

Discussion in 'Assets and Asset Store' started by Dreamteck, Mar 20, 2019.

  1. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    What is it?
    A powerful, flexible and easy to use tool for the creation of linear, procedural levels, ideal for endless runner games, procedural racing games and more.

    The way Forever works is by extruding and snapping together level segments. The level segments are special kinds of prefabs that are created inside the Unity editor. Use the tools you know to create the level design for each segment and let our system do the rest.

    Forever is a battle-tested product and it is currently being used in the development of various projects, one being our very own Lifeslide. It has the potential to save weeks of hard work and it's now available to the public.


    Key Features:

    ♥ Procedural path generation ♥
    ♥ Automatic mesh and object extrusion along the generated path ♥
    ♥ Multithreading support for the generation process ♥
    ♥ Works great on mobile ♥
    ♥ Works for both 3D and 2D projects ♥
    ♥ Easy and straightforward setup ♥
    ♥ Offers built-in logic for traversing level paths ♥
    ♥ Minimal programming skills required to write player behaviors ♥
    ♥ Flexible and easily extendable functionality ♥
    ♥ Open Source ♥
    ♥ Level streaming feature for bigger projects ♥
    Video Tutorials
    We are currently recording video tutorials which will get you started with Forever and then acquainted with the more in-depth features and advanced usage of the system. Watch them on Youtube: Forever Video Tutorials

    Video Tutorials
    Of course, you will probably have tons of questions and this is why we made Forever's documentation public. You can read an in-depth explanation of how our system works and also find the FAQ in the User Manual PDF

    Compatible With Dreamteck Splines
    Dreamteck Splines is our first plugin. It is used for the creation of splines and using them for following behaviors and mesh generation. Forever is not only compatible with Dreamteck Splines but it also allows for seamless integration of our splines inside the level segments, enabling the user to bend the created splines along with the segment they belong to.

    We have been using Forever for about two years in the making of out game Lifeslide and are super-excited to release it to the public. Now let's make some awesome games!​
     
  2. Andreas_StrangeQuest

    Andreas_StrangeQuest

    Joined:
    Mar 12, 2019
    Posts:
    5
    Evaluating your product right now. I can find the examples but unfortunately not the assets for the video tutorials which would be great to have to follow it better. Anywhere to be found?
    EDIT: Found similar ones (but not barebone) in the Retro Wave sample. That will work fine for now.
     
    Last edited: Apr 4, 2019
  3. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Hi, Andreas, Thank you for using Forever!

    The assets from the video are from the free package of Emaceart: https://assetstore.unity.com/packag...w-poly-nature-set-tiny-trees-and-rocks-130107
     
  4. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Version 1.03 is released and this is the changelog so far:

    -------- 1.01 --------
    FIX: Improved the behavior of the Custom Lane Runner component
    FIX: Custom segment paths are now properly drawn in runtime
    FIX: Restarting the Level Generator when remote levels are used no longer causes it to stop working
    FIX: Changing the path generator of the Level Generator during runtime now properly preserves the direction and position of the path

    FEATURE: Added the "Seamless Edges" toggle for the custom segment paths - allows for the user to choose whether the custom paths should preserve the semalessness between the segments or they should be mapped more accurately around their ends.
    FEATURE: Added "Move Up" and "Move Down" operations for custom paths so that they can be re-arranged

    -------- 1.02 --------
    FIX: Disabling extrudable objects in the Level Segment no longer throws an exception and works properly
    FIX: Improved the stability of loading and unloading remote levels
    FIX: Selecting levels segments in the editor during runtime no longer causes their colliders to not be enabled
    FIX: The Level Generator now properly activates all segments upon generation in Finite mode
    FIX: Swapping a Level Path Generator with a High Level Path Generator inside the Level Generator during runtime no longer throws an exception

    FEATURE: The IndexType property of the SegmentObjectSettings component is now also available in the Extrusion Settings Window under "Indexing"
    FEATURE: The Custom Path Generator now has the "useRelativeCoordinates" property which allows for it to be seamlessly exchanged during runtime, continuing the generated path from the same point and direction
    FEATURE: The Custom Path Generator now offers the "segmentCount" property which defines how many segments this path is meant for approximately

    API: Added the "SetLevel" method to the LevelGenerator class for setting the desired level easily

    CHANGE: The "Enabled" property in the Extrusion Settings window has been replaced by the "Indexing" field. Setting "Indexing" to "Ignore" now has the same effect as disabling the object
    CHANGE: ExtrusionSettings.Indexing.IgnoreAll is now the equivalent of SegmentObjectSettings.IndexType.Ignore

    -------- 1.03 --------
    FIX: Bending Dreamteck Splines no longer throws info messages in the console when the points' tangents and positions are the same
    FIX: Fixed the SegmentObjectSettings component not being saved correctly when applying prefabs.
    FIX: Changes made to the sequence headers inside the level editor window are now properly saved and work with Undo
    FIX: Changes made to path generators are now properly saved in the project upon exit

    API: "LevelSegmentCustomPath" renamed to "LevelSegmentPath"
    API: Added the "CalculateLength" method to the LevelSegment and the LevelGenerator - for calculating the path length in world units

    We are currently working on an advanced Spline editor that you can take advantage of for all custom paths.

    Here is what is coming further in the future:

    - Junctions
    - Light Probe bending support
    - ObjectPooling for custom (non-extruded) segments
    - A system for spawning non-overlapping background objects
    - An advanced Segment Shuffle system (along with a visual editor) which generates complex levels out of custom segments only.
     
    Last edited: Apr 14, 2019
    DrOcto likes this.
  5. mindfulmx

    mindfulmx

    Joined:
    Mar 21, 2017
    Posts:
    42
    Hello, the math example generate the operations with script? or I need to do it manually for each operation (sum, multiplication, substraction, etc..)?
     
  6. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Yes, the math example generates everything automatically - you just need to set the minimum and maximum numbers (minOperandA, maxOperandA and minOperandB and maxOperandB) inside the Math Gate component - it will then pick the operation (+/-/*) at random and produce possible results (only one of which correct). We didn't include division as it is a bit harder to work with but you can add it by simply including it in the switch statement for the operations and making sure the random value for operations is between 0 and 3.
     
    mindfulmx likes this.
  7. wesley_unity341

    wesley_unity341

    Joined:
    Dec 14, 2018
    Posts:
    9
    Hi, I bought the Forever package. It's not bad, however, I want a straight segment where the Y-Axis points straight up following a level that has randomness on the Roll of extruded mesh pieces. But the pieces between the completely straight segment and the tiled/roll segments do no line up. Is there a way to make this happen?
     
  8. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Thank you for using Forever!

    I'm pretty sure that what you are after can be achieved but I didn't entirely understand your setup and where the problem comes. Can you write to our support at support@dreamteck.io and elaborate on the issue a bit more (if you can provide a screenshot too, that would be awesome) and we'll make sure to help out with your setup.
     
  9. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Hi first of all the asset looks pretty cool so congrats on that. I watched a few videos but wasn't able to find a answer to a question I have. Would this be able to be used for a game other than a endless runner? For example I'm working on a FPS game with a custom controller I've made. Would I be able to add the necessary scripts to my character and have the character freely moving around the endlessly created world?
     
  10. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Thank you for your interest in Forever!

    Yes! Absolutely! In this case you just need to attach the Projected Player component to your player - this will just notify Forever to generate further segments when your player enters a new segment. From there on, the player logic is up to you - you have full freedom of movement.
     
  11. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Hi I purchased your asset today. Seems pretty fun so far. I'm trying to use it in 2019.1.0f2 and am in the Level Window and there is no "Count" ,"Prevent Repeat" or "Type" at the top of the Level Window like there are in the video tutorials so I can not actually set the number of segments to spawn.
     
  12. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Thank you for purchasing!
    In version 1.04 there is a "Settings" button on the right side of the sequences inside the Level Window. Clicking it will open a window with all of there settings. We changed it in version 1.04 because the sequences now have a lot of properties.
     
  13. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    Superb ! Can it work with Unity terrains as well or only meshes ? Thanks !
     
  14. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Thank you!
    Only meshes and sprites can be bent (sprites are converted to meshes upon bending). Terrains cannot be bent.
     
  15. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    Thanks, I was thinking using like a 'custom mesh' but I think it won't be very much 'performant' though.

    I went ahead and purchased the assed; i start playing around; now i was asking myself what would be the best workflow when creating segments; playing around in Blender i did a quick shape, imported back (btw, all meshes need to have 'read/write' enabled ? I must manually set it in the model's properties).

    So you see the 'gap'; i was wondering how you would actually solve this : within Unity (somehow?) or in the modeling software itself ?

    What was your workflow in your big/huge game ?

    Thanks !

    I love this asset !

    upload_2019-4-26_21-24-17.png
     
  16. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Thank you for purchasing!

    So this is a very old video back when Forever was not a thing but it is a dev vlog about or game project - Lifeslide. This is how we create seamless segments for the game:
     
    DiscoFever likes this.
  17. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    Wow you guys rock ! Any chance you share your vertex color painter any day soon ? :cool:
     
    Dreamteck likes this.
  18. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    It's definitely not something production-ready even though we have advanced it a lot since the video but drop us a message at team@dreamteck.io and I'll send it over.
     
  19. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    So, after countless hours, I've 'pseudo'-managed to make it seamless ... in Blender ...
    but in Unity there's a tiny tiny gap and the mesh collider is .. well .. a bit off ...

    any idea ?

    upload_2019-4-27_21-39-34.png
    upload_2019-4-27_21-39-34.png
     
  20. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    For the collider issue, go to the Level Segment component, expand the Object List, select the object with the mesh collider (in your case - the root object) and set the "Mesh Collider" field to either "Copy" or "Extrude".

    The seam issue you are having is because either you have objects (or the model pivot) which are outside of the mesh bounds or your mesh edges are not completely flat and therefore are not aligned with the bounds. Make sure that when you select the level segment object in the editor and look at it from the TOP perspective (isometric) the edges of the mesh are aligned with the bounds.
     
  21. mooumari

    mooumari

    Joined:
    May 9, 2018
    Posts:
    12
    hello there,
    I have a question about Forever
    Can I build a game with Forever just like Color snake by ketchapp or Alto's Odyssey?
     
    Last edited: May 1, 2019
  22. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Absolutely. But keep in mind that you will have to write the game mechanics yourself. Otherwise, both games can be recreated in Forever.
     
  23. mooumari

    mooumari

    Joined:
    May 9, 2018
    Posts:
    12
    thank you,
    I have another question
    will Forever be in the may sale?
     
  24. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Unfortunately no. It is a brand new product and we haven't gotten a proposal from the Asset Store but since it performs well so far, we have no doubt that it will be included in the next sale!
     
  25. mooumari

    mooumari

    Joined:
    May 9, 2018
    Posts:
    12
    Do you know when will be the next sale?
     
  26. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Not really but we know that there are smaller sales from time to time.
     
  27. mooumari

    mooumari

    Joined:
    May 9, 2018
    Posts:
    12
    ok, thank you so much I am probably going to wait for the next sale
     
    Dreamteck likes this.
  28. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Hi I was wondering is there a way to change which direction the path is generated? It appears to spawn with a default of X position. Would I be able to change that to spawn along the Z axis as opposed to the X?
     
  29. mobdoggo

    mobdoggo

    Joined:
    Oct 22, 2018
    Posts:
    16
    is it okey for people like me who can't code?
    do you have playMaker actions ?

    - Thanks
     
  30. alanmthomas

    alanmthomas

    Joined:
    Sep 7, 2015
    Posts:
    197
    Does the engine support branching paths? Sort of like the T junctions in games like Temple Run and its various clones.
     
  31. prasad_unity417

    prasad_unity417

    Joined:
    May 31, 2019
    Posts:
    1
    Hello, I recently downloaded the forever template. I would like to know if it is possible to add a background ( landscape ) to the Math Runner game. I can create a terrain but I am not sure about mounting the game onto the terrain which again will have to be infinite. Would appreciate your response.
     
  32. HugoTremblay

    HugoTremblay

    Joined:
    Jun 24, 2015
    Posts:
    14
    Is it normal that the level segments get added so slowly?
     
  33. HugoTremblay

    HugoTremblay

    Joined:
    Jun 24, 2015
    Posts:
    14
    So you guys have already abandoned this or what?
     
  34. rbagao

    rbagao

    Joined:
    Feb 13, 2016
    Posts:
    19
    Is there a tutorial for the 2D part?
     
    isasaurio likes this.
  35. isasaurio

    isasaurio

    Joined:
    Nov 13, 2016
    Posts:
    18
    Hi, I'm doing a 2D game, but unfortunately I didn't find any tutorials.
    I am following the example "Magic Valley", but when I play this error appears.
    What am I doing wrong?

    regards
     

    Attached Files:

  36. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Are you using custom spline paths for the segments?
     
  37. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    We haven't abandoned it. As our support message says, our studio is currently expanding and we are having an extremely busy summer. We are still working on everything but just very slowly. It will be like that till the end of September.

    While it may be inconvenient for you guys, this is great news in the long run because after all that, we will be able to make even better and bigger products and provide better support for Forever and Dreamteck Splines.
     
  38. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    You can add objects in the background on the side of the road and they will bend automatically once you save the segments.
     
  39. isasaurio

    isasaurio

    Joined:
    Nov 13, 2016
    Posts:
    18
    No, like the example, i used "HighLevelPathGenerator".
     
  40. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Submit a support ticket with a link to the project or an isolated scene where this issue happens and we'll take a look:
    https://dreamteck.io/support/contact.php
     
  41. t1az2z

    t1az2z

    Joined:
    Sep 30, 2015
    Posts:
    3
    Hi! We've been thinking about purchasing your asset, but I have a question: is there a way to generate levels before the gameplay begins, to show it to a player, clear it from the scene to free resources and regenerate exactly the same level during the gameplay phase? Also is there a way dynamically change player's speed during gameplay?
     
  42. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    It is possible to do but not right out of the box. You will need to extend the LevelPathGenerator class and creqte a custom Segment Shuffle both using a seed for randomization. You can copy the logic of the Random Path Generator class and replace the randoms with your own method that is based on a custom seed. That way, you will always get the same results until you change the seed.

    And yes, you can change the follow speed dynamically.
     
  43. jiigga

    jiigga

    Joined:
    Sep 12, 2018
    Posts:
    4
    Hello, I'm planning to buy your amazing engine, but there're no tutorials, explanations or any help in Documentation regarding 2D. Are you planning to add some? I'm building Platformer Runner and your Engine looks like a huge time saver, but I'm quite new to Unity and afraid that lack of documentation will freeze my process.
     
  44. DungeonBrickStudios

    DungeonBrickStudios

    Joined:
    Jun 9, 2015
    Posts:
    69
    Hi! I bought this asset a couple of weeks or so ago, you guys really did a great job with it, rich with features and considerations.

    I just need a bit of help with one thing. I want to have events like, for example, a tree falling when the player is a certain distance away from it. Is there a method I can use to calculate the distance along the path from the player to this tree object?

    My idea is that as soon as the tree gets instantiated, it calculates how far the runner is away from it. Based on the runner's speed (because different characters might have different speeds) it will know after how long it should start falling using basically distance = speed * time. That way ideally it will fall just as the player is passing it by.

    Any tips on what I can use? I looked at the project and travel methods but I'm not sure how I can use them to find the distance between two points along a path.
     
  45. DungeonBrickStudios

    DungeonBrickStudios

    Joined:
    Jun 9, 2015
    Posts:
    69
    Another question I have is regarding sequences, this might be a bug. This is my setup:

    Level Generator, Type is infinite.

    One sequence (random, spawn count = 3, prevent repeat) that contains three nested sequences. Each nested sequence consists of 3 segments, they are all set to random, no repeat, with a spawn count of 3 also (called them temple, forest, castle).

    Generation starts off good. I get the first "temple" nested sequence, all three parts play out just fine. Then the forest, then the castle, all good. But once the level generator goes through all the nested sequences in the overall sequence, it starts to pick segments from each nested sequence randomly. So I get temple mixed with forest, castle, etc.

    Any help would be greatly appreciated.
     
  46. alanmthomas

    alanmthomas

    Joined:
    Sep 7, 2015
    Posts:
    197
    Any word on when this and DreamTeck Splines are going to be getting their updates?
     
  47. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    Hey! We hope to continue creating tutorials for both of our tools - Forever and Dreamteck Splines very, very soon.
     
  48. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    336
    This would involve some distance/speed/time calculations to get right. You would need to estimate your time of arrival. My suggestion is to use Project for the tree and find it's percent along the level path, then you would use the result.percent property of your runner to fet their percent and then using CalculateLength, you can find the distance between the player and the tree. Then, based on the player's current speed, you can determine the delay after which the tree would fall.
     
  49. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Also, does it allow for split path choices? (Left/Right options) or is it just a continuous steam and the only option is dodging via lanes?
     
  50. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Seems someone asked this once, but never got answered? I assume the answer is no.

    Is this planned in the future? Seems like a pretty typical feature of endless runners.