Universal Stellar Horizon (by S.MARSAULT)

Discussion in 'iPhone and iPad Games' started by TouchArcade Bot, Feb 19, 2016.

  1. Dankrio

    Dankrio Well-Known Member
    Patreon Silver

    Jun 3, 2014
    1,740
    13
    38
    You got my attention, at least. You guys seem to be enjoying so much the game.
     
  2. mache

    mache Active Member

    Sep 25, 2014
    27
    0
    1
    Yes is rly nice sit down and enjoy some space/ planet esploration!
     
  3. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    I do, I really do. I admit I love these kind of games, specially when there's free roaming in space and the transition from space to space station and landing on planets is so smooth and without loading screens.

    Since the update that fixed the appearance of elite enemy spaceships, space fights are also more challenging and enjoyable. I also enjoy landing manually in the space stations, and the calm planet exploration. Even though planet exploration is grid based (i.e.: you move from static screen to static screen, not real time movement as in Doom), I enjoy moving around the planet searching for resources, seeing the scenery and going from one point to another to find geographer points, vegetation, animals, etc.

    One thing that might put people off this game on a first impression is the archive size. Now it's 60-65MB installed because it has music, but when there was no music, the installed size was 35MB. Many people (including myself at the beginning) thought it might have been a scam because usually big content games are >1GB in size. The key to such a small install size is that there's no saved images, it's all generated in real time using algorithms. This way you can have a universe with 4 billion planets in a <100MB install size.

    Of course, there's always space for improvement. Bearing in mind the current limits of the game itself (static planet exploration, 1 sun/1 space station/1 planet systems, etc.), things that could be added are: more animal species to be found, static objects such as crashsites, buildings, etc.

    The last thing we mustn't forget is that, if I'm not mistaken, this is a one-man creation: Sylvain Marsault. He's the sole developer, and this is a real work of love. There's been a lot of updates with many improvements, he's added many suggestions to the game that we players make (different kind of missions, multi-color space stations, etc.) and when bugs arise, he's very fast and proactive trying to fix them ASAP.

    Even though this game might not be for everyone, I really, really wish it takes off and becomes a success, because both the game and the developer really deserve to do so.
     
  4. Dankrio

    Dankrio Well-Known Member
    Patreon Silver

    Jun 3, 2014
    1,740
    13
    38
    Thanks for the detailed info!

    Def gonna grab it now.
     
  5. tintin888

    tintin888 Well-Known Member

    Apr 18, 2016
    199
    1
    18
    I was thinking. Besides making planet exploration faster and less choppy, you could add water animation! It would make it so much more realistic. The Dinos and Palm trees look great. One problem is the trees just appear in random spots. It would be much cooler d there were oasises or forests instead of a tree plopped every mile or so. But, the update is FANTASTIC AND I LOVE ENCOUNTERING ALL THE LIFE! Is there any promo codes. One of my friends is not sure about the game and I think he would enjoy it if he could get past the buying problem.
     
  6. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    A new update with ice planets, a new laser animation effect for extractions and new skies has just hit the App Store. As I was telling you, there's always space to add new things :)
     
  7. mache

    mache Active Member

    Sep 25, 2014
    27
    0
    1
    To find stronger weapon to buy, i have to go in "higher rank" system? for rank i mean the number near each system in the navi
     
  8. drh1961

    drh1961 Well-Known Member

    Feb 28, 2013
    247
    1
    0
    Kind of...

    High level systems don't guarantee stronger weapons or spaceships. It is just a bit more likely you will find better stuff in the high level systems. It still will be about 90% the more basic stuff.

    Quality of spacestations vs system level is a much stronger correlation. You can pretty much guarantee the higher level the system, the better the station. Of course finding a station for sale is pretty rare.
     
  9. decript

    decript Well-Known Member

    Nov 22, 2010
    49
    15
    8
    BC, Canada
    #849 decript, Sep 15, 2016
    Last edited: Sep 15, 2016
    I've been eyeing this game for some time because it seemed interesting and the thread has remained active. Luckily a price drop has finally arrived and it seems the game has received a great deal of updates throughout its lifetime.

    I am definitely enjoying the game. The hyperdrive effect and scale of planets to stars is great. As someone said earlier, it has a "just one more planet" pull. The informative tips that other players have posted in this thread have been almost essential to getting the most out of this game. Even though I was aware of the existence of contract jobs, I forgot about them until I discovered my fourth planet and was wondering what to do. Then I had to find where they were, through this 'BBS' button.

    I want this game to flourish, but I can somewhat understand why this game has never received widespread attention. I think it largely lacks a degree of polish (like how the buttons are just tiny text with a plain circle around it with no feedback upon being pushed; the infinite scrolling guide and contract lists) and is not very accessible to new players. Even after reading the guide, I was still quite lost.
    I HIGHLY suggest implementing a proper tutorial and adding more explanations into the guide like the ones players have provided here. Most players might not have the patience to figure it out or look it up.

    Also, I found it hard to manually dock into stations. Sometimes my ship starts rolling non stop to the left and I have to press it again to stop, (pressing roll right doesn't stop it). This has caused me to crash through the station numerous times so i now just always auto dock to avoid the frustration.

    Do the ranks do anything (geographer, miner etc)? Is it possible to give them an effect, even if it is a tiny one?

    Finally, does the game only save when I exit a planet? So if I do some trading at a station, I have leave, go land on a planet, then launch away to save? Could you add a manual save button?

    Love your dedication Marsault, the game is getting better and better. Of course, ideally, I wish there were more objects and effects going on when exploring a planet and perhaps some movement like animated water but I can see this being difficult to implement. The crystals and animals (yet to see them) are a great start to populating the planets.
     
  10. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    @Decript: I think the "non-stop roll" that you describe when trying to dock is a bug that's caused when pressing and sliding more than one finger onscreen fast and simultaneously. It's happened to me sometimes too. When it happens, I quickly hit on the opposite direction of the roll and re-level the spaceship with the space station. I admit I've played so much that I might have got used to it, but it's annoying when it happens.
     
  11. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    Drh1961, I finally got to the space station which you pointed me to and bought it (the first one several pages back, not the latest one). Thanks a lot, now I get nearly 500,000c daily.

    Sylvain, I found an ice planet. You should consider adding a button to change the UI text colour between several alternatives (red, yellow, green, blue, white, for example). It was very difficult to see that there was a monolith on the planet because it was white text over white scenery. I had to find some water to walk on it and know which direction to choose.

    I've also found life (finally!). Only the first animal scanned in a given planet counts towards the counter. The others don't. Nonetheless, each new animal found in a new planet counts, which is great.

    I also agree with Decript that ranks could give a benefit, maybe some money for each milestone reached. That would give people more of a purpose to reach the milestones, instead of just the personal satisfaction of doing so (even though it's really satisfying).

    And finally, the image attached is one of the most beautiful scenes I've seen in the game. I love it. Really beautiful colours. EDIT: no image attached...
     
  12. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    Hopefully the image will attach now...
     

    Attached Files:

  13. drh1961

    drh1961 Well-Known Member

    Feb 28, 2013
    247
    1
    0

    Nice! And nice picture too.

    Should I still supply coordinates for the stations worth buying? Haven't found a good one actually for sale in a few days though.
     
  14. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    No worries, I still have to get to the two you supplied a few days ago :p
     
  15. marsaults

    marsaults Well-Known Member

    May 4, 2011
    331
    3
    18
    Ranks that give benefits is a good idea. I have to set the amounts properly!
    Concerning the problem with monolith detection on ice planets, a temporary trick may help you: in the settings, set the "cockpit transparency effects" to on. This will produce a transparency effect which will darkens the background behind the text you can't read.
     
  16. marsaults

    marsaults Well-Known Member

    May 4, 2011
    331
    3
    18
    I will try to improve the tree distribution!
    Perhaps water animation may be implemented, but not in a very near future.
    Did you friend decide himself?
     
  17. senkoujin

    senkoujin Well-Known Member

    Aug 28, 2013
    417
    0
    16
    #857 senkoujin, Sep 16, 2016
    Last edited: Sep 16, 2016
    Stellar No Man's Horizon

    We believe in you, marsaults, and we will keep supporting you! :)

    As for the real-time movement with procedural generation, I can understand that it may be impossible for you at the moment, but someday, I believe that you will be able to create an algorithm to solve the problem.

    To add on to my theory, though I have no experience developing iOS apps, here's my simple code concept/theory:

    Code:
    //STELLAR HORIZON REAL-TIME PLANETARY EXPLORATION THEORETICAL CODE
    //Written by senkoujin
    
    void main(){
    
    bool planetLocked;
    double planetDistance;
    
    string userSettings_PLANET_SURFACE_DETAILS, userSettings_SURFACE_DEFINITION, userSettings_HORIZON_CLIP_DISTANCE, userSettings_VEGETATION_CLIP_DISTANCE;
    
    
    
    /*---PLANET SURFACE DETAILS---*/
    
    //PLANET SURFACE DETAILS (LOWEST QUALITY)
    int planetSurfaceMapping_LOWEST[2];
    planetSurfaceMapping_LOWEST[0] = //SURFACE DATA HERE
    planetSurfaceMapping_LOWEST[1] = //SURFACE DATA HERE
    
    //PLANET SURFACE DETAILS (LOW QUALITY)
    int planetSurfaceMapping_LOW[2];
    planetSurfaceMapping_LOW[0] = //SURFACE DATA HERE
    planetSurfaceMapping_LOW[1] = //SURFACE DATA HERE
    
    //PLANET SURFACE DETAILS (NORMAL QUALITY)
    int planetSurfaceMapping_NORMAL[2];
    planetSurfaceMapping_NORMAL[0] = //SURFACE DATA HERE
    planetSurfaceMapping_NORMAL[1] = //SURFACE DATA HERE
    
    //PLANET SURFACE DETAILS (HIGH QUALITY)
    int planetSurfaceMapping_HIGH[2];
    planetSurfaceMapping_HIGH[0] = //SURFACE DATA HERE
    planetSurfaceMapping_HIGH[1] = //SURFACE DATA HERE
    
    //PLANET SURFACE DETAILS (ULTRA QUALITY)
    int planetSurfaceMapping_ULTRA[2];
    planetSurfaceMapping_ULTRA[0] = //SURFACE DATA HERE
    planetSurfaceMapping_ULTRA[1] = //SURFACE DATA HERE
    
    
    
    
    /*---SURFACE DEFINITION---*/
    
    //PLANET SURFACE DEFINITION (LOW QUALITY)
    int planetSurfaceDefinition_LOW[2];
    planetSurfaceDefinition_LOW[0] = //SURFACE DATA HERE
    planetSurfaceDefinition_LOW[1] = //SURFACE DATA HERE
    
    //PLANET SURFACE DEFINITION (NORMAL QUALITY)
    int planetSurfaceDefinition_NORMAL[2];
    planetSurfaceDefinition_NORMAL[0] = //SURFACE DATA HERE
    planetSurfaceDefinition_NORMAL[1] = //SURFACE DATA HERE
    
    
    
    
    /*---HORIZON CLIP DISTANCE---*/
    
    //HORIZON CLIP DISTANCE (LOW)
    int horizonClipDistance_LOW[2];
    horizonClipDistance_LOW[0] = //HORIZON CLIP DISTANCE DATA HERE
    horizonClipDistance_LOW[1] = //HORIZON CLIP DISTANCE DATA HERE
    
    //HORIZON CLIP DISTANCE (NORMAL)
    int horizonClipDistance_NORMAL[2];
    horizonClipDistance_NORMAL[0] = //HORIZON CLIP DISTANCE DATA HERE
    horizonClipDistance_NORMAL[1] = //HORIZON CLIP DISTANCE DATA HERE
    
    //HORIZON CLIP DISTANCE (HIGH)
    int horizonClipDistance_HIGH[2];
    horizonClipDistance_HIGH[0] = //HORIZON CLIP DISTANCE DATA HERE
    horizonClipDistance_HIGH[1] = //HORIZON CLIP DISTANCE DATA HERE
    
    //HORIZON CLIP DISTANCE (HIGHER)
    int horizonClipDistance_HIGHER[2];
    horizonClipDistance_HIGHER[0] = //HORIZON CLIP DISTANCE DATA HERE
    horizonClipDistance_HIGHER[1] = //HORIZON CLIP DISTANCE DATA HERE
    
    //HORIZON CLIP DISTANCE (ULTRA)
    int horizonClipDistance_ULTRA[2];
    horizonClipDistance_ULTRA[0] = //HORIZON CLIP DISTANCE DATA HERE
    horizonClipDistance_ULTRA[1] = //HORIZON CLIP DISTANCE DATA HERE
    
    
    
    
    /*---VEGETATION CLIP DISTANCE---*/
    
    //VEGETATION CLIP DISTANCE (LOW)
    int vegetationClipDistance_LOW[2];
    vegetationClipDistance_LOW[0] = //VEGETATION CLIP DISTANCE DATA HERE
    vegetationClipDistance_LOW[1] = //VEGETATION CLIP DISTANCE DATA HERE
    
    //VEGETATION CLIP DISTANCE (NORMAL)
    int vegetationClipDistance_NORMAL[2];
    vegetationClipDistance_NORMAL[0] = //VEGETATION CLIP DISTANCE DATA HERE
    vegetationClipDistance_NORMAL[1] = //VEGETATION CLIP DISTANCE DATA HERE
    
    //VEGETATION CLIP DISTANCE (HIGH)
    int vegetationClipDistance_HIGH[2];
    vegetationClipDistance_HIGH[0] = //VEGETATION CLIP DISTANCE DATA HERE
    vegetationClipDistance_HIGH[1] = //VEGETATION CLIP DISTANCE DATA HERE
    
    //VEGETATION CLIP DISTANCE (HIGHER)
    int vegetationClipDistance_HIGHER[2];
    vegetationClipDistance_HIGHER[0] = //VEGETATION CLIP DISTANCE DATA HERE
    vegetationClipDistance_HIGHER[1] = //VEGETATION CLIP DISTANCE DATA HERE
    
    //VEGETATION CLIP DISTANCE (ULTRA)
    int vegetationClipDistance_ULTRA[2];
    vegetationClipDistance_ULTRA[0] = //VEGETATION CLIP DISTANCE DATA HERE
    vegetationClipDistance_ULTRA[1] = //VEGETATION CLIP DISTANCE DATA HERE
    
    }
    
    
    
    
    
    /*CHECK IF LOCK BUTTON WAS PRESSED*/
    void playerPressedLOCK_BUTTON(){
    planetLocked = true;
    planetLockON();
    }
    
    
    
    /*CHECK IF A PLANET IS LOCKED-ON*/
    
    void planetLockON(){
    if(planetLocked == true){
    preLoad_PLANET();
    }
    }
    
    
    
    
    /*---CHECK USER SETTINGS---*/
    
    void checkUserSettings_PLANET_SURFACE_DETAILS(arrayData1){
    if(userSettings_PLANET_SURFACE_DETAILS == "LOWEST"){
    //BEGIN PRE-LOADING/GENERATING [LOWEST] PLANET SURFACE DETAILS DATA/IMAGING INTO ARRAY
    }
    
    if(userSettings_PLANET_SURFACE_DETAILS == "LOW"){
    //BEGIN PRE-LOADING/GENERATING [LOW] PLANET SURFACE DETAILS DATA/IMAGING INTO ARRAY
    }
    
    if(userSettings_PLANET_SURFACE_DETAILS == "NORMAL"){
    //BEGIN PRE-LOADING/GENERATING [NORMAL] PLANET SURFACE DETAILS DATA/IMAGING INTO ARRAY
    }
    
    if(userSettings_PLANET_SURFACE_DETAILS == "HIGH"){
    //BEGIN PRE-LOADING/GENERATING [HIGH] PLANET SURFACE DETAILS DATA/IMAGING INTO ARRAY
    }
    
    if(userSettings_PLANET_SURFACE_DETAILS == "ULTRA"){
    //BEGIN PRE-LOADING/GENERATING [ULTRA] PLANET SURFACE DETAILS DATA/IMAGING INTO ARRAY
    }
    
    //RETURN APPROPRIATE DATA
    }
    
    
    void checkUserSettings_SURFACE_DEFINTION(arrayData2){
    //CODE SIMILAR TO THE ABOVE FUNCTION
    }
    
    void checkUserSettings_HORIZON_CLIP_DISTANCE(arrayData3){
    //CODE SIMILAR TO THE ABOVE FUNCTION
    }
    
    void checkUserSettings_VEGETATION_CLIP_DISTANCE(arrayData4){
    //CODE SIMILAR TO THE ABOVE FUNCTION
    }
    
    
    
    
    void preLoad_PLANET(){
    planetDistance = 80.0; //Let's assume that this is the locked planet's distance
    
    /*---Let's assume that the player's user settings are all set to NORMAL---*/
    userSettings_PLANET_SURFACE_DETAILS = "NORMAL";
    userSettings_SURFACE_DEFINITION = "NORMAL";
    userSettings_HORIZON_CLIP_DISTANCE = "NORMAL";
    userSettings_VEGETATION_CLIP_DISTANCE = "NORMAL";
    
    checkUserSettings_PLANET_SURFACE_DETAILS(arrayData1);
    checkUserSettings_SURFACE_DEFINTION(arrayData2);
    checkUserSettings_HORIZON_CLIP_DISTANCE(arrayData3);
    checkUserSettings_VEGETATION_CLIP_DISTANCE(arrayData4);
    
    double minimumSurfaceArea = 2000000; //Let's assume that amount of pre-generated/loaded data needed to load a small area of the planet surface is 2000000b (or 2MB) in size based on the current user settings [NORMAL].
    
    double processingPowerRequired = minimumSurfaceArea/planetDistance; //The result here would be 1/4th of a MegaByte (0.025MB or 25000b) needing to be generated/loaded for EACH light year needed to reach the planet.
    }
    
    ^: I wrote this in C, and it's certainly not perfect, and the arrays are probably MUCH larger than just 2, but it shows my basic theory. You can try to make the device (iPhone/iPad) pre-load/generate as much data as possible and store it in memory temporarily BEFORE arriving at the planet. You may need to set a threshold via conditional statements/operations for each different setting. If the planet distance is too short, and the device's RAM/processing power is too low, then you'd have to reduce the amount of possible pre-loaded/generated surface area (depending on the user settings), thus making the pre-loaded/generated surface smaller. You may need to do some major multi-threading work because players can still travel to other planets and stations while still having another planet LOCKED, and you'd want to keep the pre-loading/generating process running in the background and temporarily allocating that data to memory. I'd probably advise this theory to be implemented under the condition of being restricted to LOCKED PLANETS ONLY. If everything goes as planned, the player could land on the pre-procedurally generated surface and move freely in real-time UP TO the pre-loaded/generated boundaries. You could try experimenting if you wish, but this is only theoretical. ;)



    P.S. - BUG REPORT
    My LOCKED-ON Legendary coordinates just disappear when I'm around 20~30 light years away. When I try to re-LOCK on the coordinates, the yellow marker no longer shows up, making it near impossible to find the planet.
     
  18. VirtualBoyFreak

    VirtualBoyFreak Well-Known Member
    Patreon Bronze

    Apr 26, 2011
    4,801
    85
    48
    Spain
    Thanks for the transparency effects tip, didn't remember that! (space fights are too slow on my 4S with transparency effects on, so I have it off and forgot about that option...)
     
  19. Bookworm21

    Bookworm21 Active Member

    Jul 10, 2016
    33
    0
    0
    I'm having problems with manual docking - the station seems to be rotating much faster than my ship can roll. Is this common?
     
  20. marsaults

    marsaults Well-Known Member

    May 4, 2011
    331
    3
    18
    I think it is a bug. Does it occur only once when you start your game? In the nav section, what is the level of your current system?
     

Share This Page