Search Unity

  1. Tune in to get all the latest Unity news live from Berlin on June 19, 6pm CEST. Set up a YouTube reminder!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  5. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  6. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

The largest space ship to ever fly in unity with archviz.

Discussion in 'Made With Unity' started by FirstTimeCreator, Apr 30, 2018.

  1. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
  2. Paul-Swanson

    Paul-Swanson

    Joined:
    Jan 22, 2014
    Posts:
    78
    Looks pretty good
     
  3. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
    Thanks, I've since started the project over from scratch to re-write my collision avoidance pathfinding + steering behavior system. It's fun to build a FPS in space but it just isnt realistic for one person to really have any hope of making an actual game.

    However, I do believe it is possible to build a space game solo with exterior ship views and possible a cockpit view but not FPS as well. It's just too much work, too many layers of systems for one person to keep track of.

    With that said im changing my focus to
    1. The HiVelocity Collision Avoidance pathfinding system (Ability for ships to navigate complex MOVING geometry such as large complex moving space stations and ships within proximity.
    2. 3rd person exterior ship view with no interiors or "limited interiors" so i can have a lot of ships in the scene.
    4. Weapons, targeting and tracking systems (LineCast Based Bullets with Particle representations) So i can have probably 80,000 visual bullet effects (For an epic battle scene).

    5. Squad Based AI Agent Controller (Squad Leader)
    6. Team AI Controller (which will issue commands to squad leader AI's).
    7. Mock Battles with up to 4 teams in a scene and 300 ships.


    I really want to build a space game so the time has come to be realistic and drop the first person aspect as well as the dream of landing on planets.

    I am going to create the most 3D epic battle scene ever seen in space in unity and use it for the game I'm building.
     
  4. winterfluxstudio

    winterfluxstudio

    Joined:
    May 4, 2018
    Posts:
    61
    This looks really good.

    Yeah, the implementation of landing on planets would be a monumental task for a single person, when added to everything else you need to do.

    Mock Battles with up to 4 teams in a scene and 300 ships.

    What sort of specs do you think the end user will require?
     
  5. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
    An i5 with at least 8 gigs ram. A hyper threading processes will be boost performance significantly since i will be using it in 2017+ but i will build in a fall back if it isn't available. Mostly it will be used for the weapons systems.

    I already have a working prototype right now of the collision avoidance path finding system, currently I have 100 ships running in the scene averaging about 7MS/200FPS on an i7.

    I am just working on kinks with behavioral steering. It's fairly complicated when ships are flying around moving objects as well as avoiding each other.

    The pathfinding and steering system is transform based instead of physics based which gives a substantial performance boost allowing for a large number of ships. Currently the performance drain is coming from the sphere casts.

    Because the ships maintain a constant sphere cast in the forward direction but im working to optimize and remove that probably by using a proximity based mesh trigger to detect ships and objects in proximity to activate the sphere casts.

    I also use a procedural grid system around ships which shoots line casts out first then sphere casts if something is detected for greater accuracy.

    Right now im working on logic for determining when to slow down and stop as well as horizontal and vertical strafing forces/steering to avoid objects flying at the ships at an angle.

    When dealing with moving objects things become alot more complex and alot of scenarios have to be accounted for especially to achieve a "fluid" semi-realistic flight model for the AI pilots.

    I will be uploading a video demonstrating the AI Pilot system sometime in the coming week. It will have 100 ships flying around moving asteroids as well as large moving space stations flying around waypoints.

    I may explain some of how it works in the video so sub to the channel.

    In the end I want to have EPIC space battles with large numbers of ships, 50 to 100 fighters (depending on the performance i can achieve and system specs) and 25 capital ships per team.

    After im done with the collision avoidance pathfinding system i will be starting on Squad mechanics, flight formations and Squad leader AI after that weapons systems.

    after that I'm on my way to creating an actual game as the core of the game will be functioning.

    P.S:
    Here is my first attempt a while back when i built a stress test prototype:

    I have since rewritten it probably 3 times, The star wars version is very basic, has no procedural grid around the ships. I just was seeing what unity could handle.

    This is my old channel you can see some of the prototypes i did there on my Journey learning the game engine.

    This a newer version, but I have since re-designed it, for optimization purposes.
     
    Last edited: May 28, 2018
    winterfluxstudio likes this.
  6. winterfluxstudio

    winterfluxstudio

    Joined:
    May 4, 2018
    Posts:
    61

    Love the elevator music.

    are you going to try and release it as a full game ,or is this just testing/prototyping and generally seeing what Unity can handle?
     
  7. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
    Right now I am prototyping the core mechanics for an actual game. I am not doing first person in space with interiors though. I got pretty far with the prototype but realized its far too much work for one person to build. If I had other people working on it, it could be possible. I just don't want to spend years building it.

    What I am building is a fleet combat simulator. Something like X3 Mechanics but without trading focused on ship combat with a better more intuitive fleet command interface. Once i have a fully working prototype working within a single scene of team based fleet combat and ship combat management then i can build a sector system, sector map and build a sector based conquest system.

    It will be extremely simple though starting out. There will not be ship interiors and first person. Though I will make that functionality "possible" to build later. Ship views with be with exterior cameras and i will build a playable fighter with cockpit view.
     
  8. winterfluxstudio

    winterfluxstudio

    Joined:
    May 4, 2018
    Posts:
    61
    @2:25 in the last video - when you are using the elevator, the battlecam spins (almost 360?) is that intentional or a bug?

    I'm curious how you handled the asteroid avoidance for the ship. I assume it's meant to be automatic? if so, what happens to player control when the auto-avoidance system takes over? can the player manually take back control and kamikaze into the asteroid?
     
  9. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
    It is because the ship is moving, the cam is rotating with the ship.

    As far as the collision avoidance, its rather complex. I generate a procedural Grid around the ship and shoot raycasts and linecasts out in 360 degrees around the ship to detect geometry and then I steer the ship based upon available paths in the nearest direction to it's target. Thats an old version though im working on a new version now which has more logic, such as knowing when to stop, when to slow down and when to turn around if its blocked entirely from getting around something as well as logic for handling when a ship is avoiding an object and another ship at the same time, the hard part is making it appear fluid or realistic.

    Also my new version, the ships will be able to turn more fluidly around objects as opposed to simply "rocking" as it attempts to repath.

    Also there are more layers of logic routines that must be considered in the design such as when i add Targeting systems, so the ships will target and attack while also using the collision avoidance pathfinding system and also a system for ships to perform "maneuvers" later on.

    I don't want my ships flying around in circles like in "star citizen". That is not very fun because it is predictable. in my game, ships will use the collision avoidance system to force the player to chase them through objects and around moving asteroids, battles will take place around moving stations and moving asteroid fields and debris fields.
     
    Last edited: May 28, 2018
  10. winterfluxstudio

    winterfluxstudio

    Joined:
    May 4, 2018
    Posts:
    61
    That must be resource intensive. How often do you raycast? sorry for all the questions. I love space related games and have attempted to make some myself and come up against some quite complex challenges so it interests me.

    Did you try any other method of implementation before the one you currently have? ie - what if the asteroids raycast specifically to figure out "what am I on course to hit" and when it reaches a certain threshold, it communicates to the ship about the upcoming impact, enabling the ship to make appropriate adjustments.
     
  11. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
    I don't use any raycasts, only line casts and spherecasts. I use linecasts by default because they use the least amount of resources. When something is detected in a direction of the line cast then I spherecast in that direction to get more accurate data about the geomoetry of the collision, IE to know if the ship can fit through the direction being casted in if there is no collision in that direction and the ship needs to turn towards that direction.

    Yes I tried a few others before ultimately going with a GRID system around the ship. The sensors around the ship to line cast/sphere cast toward are the easy part. The harder part is designing the classes and logic in a way that allows for all of the necessary logic that can be constantly expanded for any scenario that needs to alter steering behavior.

    My setup consists of:

    PilotAgent ( a main loop in which AI can be implemented) The PilotAgent will receive commands from Squad Leader AI, which basically tells the ship what to target, what formation to enter, its combat stance such as "aggressive, defensive, passive, suicidal").

    Navigation: (a class that controls what the ship is targeting and steering towards, Collision avoidance Paths, waypoints and other ships/targets)
    Throttle: ( functions that manipulate the rigidbody velocity)
    Grid: (System to generate a procedural grid of points around the ship which can be scaled for small ships and large capital ships) The Grid is used for raycasing/sphere casting around the ship to detect geometry)
    CollisionAvoidance : This class handles logic for when to line cast and spherecast in directions around the ship and in what direction to look for open paths and handles steering behaviors.

    When an impact is detected in the ships forward direction, the collision avoidance class will begin by cycling through the grid to find the point nearest to the Target destination of the ship, it will then fire a line cast to that point if nothing is detected it will fire a sphere cast that size of the ship in that direction to see if the ship can fit through the Open path if it can the ship will turn towards that direction.

    Theres alot more to it but.. abit busy working on it to write it all out in a forum post.
     
    winterfluxstudio likes this.
  12. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
     
  13. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404
     
  14. FirstTimeCreator

    FirstTimeCreator

    Joined:
    Sep 28, 2016
    Posts:
    404


    Galactic Armada: The Fall of Humanity
    The first game in the series will be a single player story driven space action combat game
    where you play the role of a squad captain. The game will feature some open world game play as well as some linear story line
    arcs with a flow similar to that of the space sim classic "FreeSpace 2". My intended target for total play time before the game ends is at least 10 hours.
    Because I am a solo developer doing pretty much everything, the game will mostly feature text based GUI prompts for the story in which the player must read, with some
    voice over's that i get my friends and family to help with.
    In the first game in the series you will be introduced to the
    "Galaxy", 400 years in the future in the year 2,518. In this distant future, mankind has expanded into space, constructed colonies on other worlds and established a
    militarized presence in space. For 100 years mankind reveled in their accomplishment, arrogantly believing in their technological hegemony over
    the few alien races in which contact has been established.
    And then.... They arrived, with fleets so large, not even light could pass their awe inspiring presence. That is when everything changed.

    -----------------------------------------------------

    Galactic Armada: Fire,Fury & Conquest (expansion)
    If the first game in the series is successful, the second game will be an expansion which will add a Conquest system to the game.
    This system will feature Sectors which contain Solar systems contained in a Galaxy Map similiar to the X3 game series.
    Players will be able to construct new ships and give orders to fleet commander (AI's). Form fleets and capture sectors for resources.
    The game's conquest will be simple based upon a "Risk" model where sectors produce a certain amount of resources & ships each year, which the
    player will allocate for building new ships and researching ship upgrades.

    My goal is to create what X3 was not, a conquest game, but without the trading. Exploring will be a possible addition, however
    the point of the game will be strategy,conquest & fleet command. Exploration type missions could be implemented to grant players "bonuses" through artifacts.

    Additionally, the fleet engagements in Galactic Armada will be much larger, with many more ships than what was possible in X3 using mods to drop ships in. The x3 engine and software design simply could not handle anything
    past 100 or so ships without completely bogging down the engine.

    My system is being designed to run up to 200 smoothly on an i5 CPU, 300 on an i7 and up to 500 (within a single scene,spread across a solar system with active collision avoidance, path finding and multiple AI systems working in concert) on the latest generation Intel CPU's.
    The game will be designed to allow (scaling number of ships) options based upon the CPU the game is running on.

    ------------------------------------------------------

    The game is ambitious for a solo developer and the software design to run it will must be a technological marvel to behold as well as a
    true demonstration of the power of the Unity Game Engine. (Amazing). I think it would also be the first "true" space game built with unity as all i could find was some very basic prototypes.

    Building this game has been my life long dream, my passion. I was a programmer for 15 years prior to starting to learn game development over 2 years ago.
    In the past 2 years I have not given up, I have banged my head against the wall a few times but I have persevered and I have finally achieved
    the first and most difficult component required to run Galactic Armada, the Collision avoidance path finding system, capable as well as efficient enough to
    run hundreds of ships with enough CPU left for weapons systems and AI.

    So tell me, Who is ready for a new Space Sim Classic? Who wants to relive the days when space sims were new and refreshing and pushing the
    boundaries of technology as well as "fun" with a good, interesting original story. I know I do, and I know it won't happen unless I build it.
    The time of waiting is over. The time of creation has begun.

    People I will need to make the game reach it's true potential:

    Modelers + Artists:
    If you are a modeler and reading this and would like to take part in the creation of Galactic Armada, I will do what I must to get you on board so
    please contact me: GalacticArmadaGame@gmail.com. I need ships, ships, ships, stations and environmental objects ((Exteriors only, with the exclusion of cockpits for player flyable ships), asteroids, debris ect. Sketchup AND 3dsMax modelers welcome!
    I will also need a concept artist for portraits and backgrounds, if drawing art (aliens) is your thing please contact me as well.

    Writer(s):
    I am fully capable of designing and implementing the story as well however this can be time consuming so a writer would not hurt, since it would allow me to
    focus all of my time on the software + interfaces for the game.


    Programmers (optional):
    GUI designer. To speed things up a UNITY GUI designer will useful in freeing up my time to focus on AI systems (where my passion is). I will be designing the GUI in similar representations of previous successful space games.


    Volunteers for Voice-Overs:
    People that want to read and speak into a microphone to do voice overs for NPC factions in the story.

    Volunteer Testers:
    People with at least some basic knowledge of game development and testing to run prototype builds on a wide range of hardware and report
    performance recordings, bugs and glitches, suggest improvements and changes for a better experience.