Sign in to follow this  
Dubya

Unity Program Concept Help Needed

Recommended Posts

My friend and I are planning on starting a Warhammer 40K campaign, and I thought it might present an opportunity for me to put my (limited) C++ skill to work.  However, I'm finding it much more difficult to get it started, and I figured I could bounce it off the community for suggestions, ideas, and advice.

 

Basically, I need the program to simulate the galaxy for us.  I started a program, but I'm not sure my design is capable of what I need it to do.  Here's what I have:

 

I want Main to start by creating the galaxy.  It will run through a 3 dimensional array and create Solar Systems.  Each Solar System will consist of 2 to 12 planets, and each planet will consist of 3 to 7 territories.  Subsequent uses of the program will allow us to pull specific locations on the galactic map, as well as run through each solar system to determine random events such as planetary catastrophes, invasions, etc.  

 

I figure I'll have at least these classes:

A Galaxy class that holds a three dimensional array of Solar Systems.

A Solar System class that holds whether the system has been discovered, number of planets, controlling race, and other undetermined details.

A Planet class that holds 3-7 territories, a controlling race, climate, environmental details, etc.

A Territory class that holds resources per turn, strategic bonuses, and controlling factions.

 

From a generalized standpoint, do you have any suggestions on how you would go about doing this?  Are there any specific programming practices that I'll need (for example: arrays are obvious, and classes, I can see inheritance being useful, but not necessary . . . ) ?  Is it efficient to have Galaxy holding a 3 dimensional array of Solar Systems (I'm particularly uncertain about the areas of the array that simply don't have a Solar System, wouldn't this setup be allotting memory for a Solar System even though it should be non-existent?)?  Or would it be better to have it hold a bool (true = a solar system exists, false = undiscovered area) and an int (the int would be an index so we know which solar system is there)?

 

Anyway, I don't want to make the post too long.  I appreciate any suggestions, and, at the very least, hopefully it will bring up some new ideas and challenges for me and like-leveled programmers.

 

 

Share this post


Link to post
Share on other sites

Yes, it would waste memory. One question though is, how much. What is the density of your solarsystems in a galaxy. If its really high, I would consider using a 3d array, since the wasted memory is quite small. And its a very easy thing to work with. If not, then take a look at octree's http://en.wikipedia.org/wiki/Octree. Also, depending on the size of your galaxy, you might even be able to use an array of solar systems, and just store the coordinates for each. Not very efficient, but if an galaxy only have say 50-100 solar systems, it wont matter, since looping through the array is going to be very fast anyway.

Share this post


Link to post
Share on other sites

I would not allow you program to randomly generate your world.  As a programmer you need control.  Take the time to plan your universe and solar systems, this will give you consistency for future modifications.  Eventually if you wish to make it a Multi-player game over a LAN you will need everybody to be in the solar system.

 

However, If you wish to play this game yourself and do not want it to be to easy since you would know where everything is, then do this....

  1  -  Have your starting position be random when you first start your game.  Also make any AI Enemies Random through out you Universe.

  2  -  If Multiplayer, Make any guest's starting position Random - If the are joining a universe in progress everything else is the same.

  3  -  At the start of the game, make you PC aware of only their surroundings.  They must discover the rest of the universe through game interaction in order to travel to other planets.  In Other words, you might be aware of Planet X in the DeadZone Universe, But your Charactor has no knowlege ( Which is obviouse that is your goal )

Share this post


Link to post
Share on other sites

Mercurialol: The idea of the three dimensional array would be an x- y-axis with a z component representing depth.  This was my original thought for creating a three dimensional space that could represent a galaxy.  My concern is that every single [x][y][z] space would represent a Solar System which would include several planets, and each planet includes several territories.  With so much space for the galaxy, this could add up to a lot of memory.

 

Magnus Westin: This is an awesome suggestion, and I've never heard of octree.  I took some time to read the wiki article you provided at work today, and it definitely seems like it would be more efficient from a memory standpoint.  If I understand correctly, the first octree would be the galaxy, with the eight octants serving as maybe sectors, then subsectors, then planets, then territories.  I'll keep researching!

 

Poigahn: The level of randomization would strictly be limited to throwing in solar systems for a starting point.  From there, I'd like to have total control as to creating new solar systems of our own invention, as well as maintaining income, etc.  I'm not looking at having multiple users over a LAN, but it's something that might be useful.  Do you have any documentation I could read to research this?

 

Thanks for the replies!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Announcements

  • Forum Statistics

    • Total Topics
      628389
    • Total Posts
      2982410
  • Similar Content

    • By sveta_itseez3D
      itSeez3D, a leading developer of mobile 3d scanning software, announced today a new SDK for its automatic 3D avatar generation technology, Avatar SDK for Unity. The Avatar SDK for Unity is a robust plug-n-play toolset which enables developers and creatives to integrate realistic user-generated 3D avatars into their Unity-based applications. SDK users can allow players to create their own avatars in the application or integrate the SDK into their own production processes for character design and animation.
      “Virtual avatars have recently become increasingly popular, especially in sports games and social VR apps. With the advance of VR and AR, the demand to get humans into the digital world is only increasing”, said Victor Erukhimov, itSeez3D CEO. “Our new Avatar SDK for Unity makes it super-easy to bring the avatar technology into any Unity-based game or VR/AR experience. With the Avatar SDK for Unity now every developer can bring face scanning technology into their games and allow players to create their own personalized in-game avatars, making the gameplay much more exciting and immersive.”
      Key features of the Avatar SDK for Unity:
      Automatic generation of a color 3D face model from a single selfie photo in 5-10 seconds (!). Works best with selfies, but can be used with any portrait photo.
      Shape and texture of the head model are unique for each person, synthesized with a deep learning algorithm crafted by computer vision experts
      Head models support runtime blendshape facial animations (45 different expressions)
      Generated 3D heads include eyes, mouth, and teeth
      Algorithms synthesize 3D meshes in mid-poly resolution, ~12k vertices, and ~24k triangles
      Six predefined hairstyles with hair-recoloring feature (many more available on request)
      Avatar generation API can be used in design-time and in run-time, which means you can allow users to create their own avatars in your game
      Cloud version is cross-platform, and offline version currently works on PCs with 64-bit Windows (support for more platforms is coming soon)
      Well-documented samples showcasing the functionality.
       
      Availability
      The Avatar SDK for Unity is offered in two modes - “Cloud” and “Offline”. The “Cloud” version is available at http://avatarsdk.com/ and the “Offline” version is available by request at support@itseez3d.com.
      ###
      About itSeez3D
      At itSeez3D, we are working on the computer vision technology that turns mobile devices into powerful 3D scanners. itSeez3D has developed the world's first mobile 3D scanning application that allows to create high-resolution photorealistic 3D models of people's' faces, bodies and objects. The application is available for iOS and Windows OS mobile devices powered with 3D cameras. In 2016 the company introduced Avatar SDK that creates a realistic 3D model of a face from a single selfie photo. To learn more about itSeez3D scanning software and 3D avatar creation technology, please visit www.itseez3d.com and www.avatarsdk.com.

      View full story
    • By sveta_itseez3D
      itSeez3D, a leading developer of mobile 3d scanning software, announced today a new SDK for its automatic 3D avatar generation technology, Avatar SDK for Unity. The Avatar SDK for Unity is a robust plug-n-play toolset which enables developers and creatives to integrate realistic user-generated 3D avatars into their Unity-based applications. SDK users can allow players to create their own avatars in the application or integrate the SDK into their own production processes for character design and animation.
      “Virtual avatars have recently become increasingly popular, especially in sports games and social VR apps. With the advance of VR and AR, the demand to get humans into the digital world is only increasing”, said Victor Erukhimov, itSeez3D CEO. “Our new Avatar SDK for Unity makes it super-easy to bring the avatar technology into any Unity-based game or VR/AR experience. With the Avatar SDK for Unity now every developer can bring face scanning technology into their games and allow players to create their own personalized in-game avatars, making the gameplay much more exciting and immersive.”
      Key features of the Avatar SDK for Unity:
      Automatic generation of a color 3D face model from a single selfie photo in 5-10 seconds (!). Works best with selfies, but can be used with any portrait photo.
      Shape and texture of the head model are unique for each person, synthesized with a deep learning algorithm crafted by computer vision experts
      Head models support runtime blendshape facial animations (45 different expressions)
      Generated 3D heads include eyes, mouth, and teeth
      Algorithms synthesize 3D meshes in mid-poly resolution, ~12k vertices, and ~24k triangles
      Six predefined hairstyles with hair-recoloring feature (many more available on request)
      Avatar generation API can be used in design-time and in run-time, which means you can allow users to create their own avatars in your game
      Cloud version is cross-platform, and offline version currently works on PCs with 64-bit Windows (support for more platforms is coming soon)
      Well-documented samples showcasing the functionality.
       
      Availability
      The Avatar SDK for Unity is offered in two modes - “Cloud” and “Offline”. The “Cloud” version is available at http://avatarsdk.com/ and the “Offline” version is available by request at support@itseez3d.com.
      ###
      About itSeez3D
      At itSeez3D, we are working on the computer vision technology that turns mobile devices into powerful 3D scanners. itSeez3D has developed the world's first mobile 3D scanning application that allows to create high-resolution photorealistic 3D models of people's' faces, bodies and objects. The application is available for iOS and Windows OS mobile devices powered with 3D cameras. In 2016 the company introduced Avatar SDK that creates a realistic 3D model of a face from a single selfie photo. To learn more about itSeez3D scanning software and 3D avatar creation technology, please visit www.itseez3d.com and www.avatarsdk.com.
    • By Canislupus54
      I'm looking for programmers for an rpg I want to make. If you're wondering what "semi-turn based" means, it means that you take turns, but instead of a rigid back and forth like Pokemon, a timer determines when you can act, a sort of modernization of the classic Final Fantasy Active Time Battle system. Right now, I'm looking for programmers to create a prototype of both the combat system and the movement outside of combat. Preferably for Unity C#. Concept artists, particularly for characters, and writers to help me flesh out the character and story aspects, would also be helpful.
      Here's a concept doc to fully explain things: https://docs.google.com/document/d/1ObDMAUWsndSAJ1EpQGRDxtR8Xl9xPotx89OZ0sgRaIw/edit?usp=sharing
      If you can fill another role and are interested, feel free to let me know as well.
      At the moment, this is purely a hobby project, with no payment planned. If we produce something we feel we can release, then of course we'll work out something for compensation. But, again, don't join this project counting on payment.
      If you're interested, contact me on here, or at jordestoj@yahoo.com . Thanks.
  • Popular Now