• Advertisement

Alternative for an open world

Recommended Posts

Hello there! First of all i don't know if this is the right section for this.. 

Ok so i need a little help with an idea. I have always been fascinated by open world games where i could explore the world freely and i would love to create a game like that but sadly it is rather impossible for a sole dev. So could you help me by giving me an alternative that would be easier to achieve and would give.. i don't know.. 'the same experience' in a way. For example i loved The Forest and it isn't very complicated having no set quests or side quests, you don't get to create a character etc. I have looked into other categories of games like platformers and such, but nothing attracts me like a nice world to explore. 

Btw i love designing terrain/world and creating a story if that's of any help. 

I know this is kind of vague, but i hope you can help and save me from wasting a huge amount of time by starting something i can't finish :)

Thanks in advance 

Share this post


Link to post
Share on other sites
Advertisement
5 hours ago, Avocadoo said:

but sadly it is rather impossible for a sole dev.

What is impossible is a AAA game open world. You could make a lower quality open world.

Something like Don't Starve and Minecraft is possible for most people. But you could also create huge universes, lots of solo developers make space games because it's small in content but has huge worlds.

 

Some extremely large linear games are also impossible for a solo developer. It's all about scale.

Share this post


Link to post
Share on other sites

I've heard the term "walking simulator" thrown around... maybe thats what you're after.

But like Scouting Ninja said if you limit your scope or use tricks you could do an open world yourself.  By tricks I mean things like procedural generation, and things that are variations of each other.  In the case of the latter the point would be to model 10 characters with 10 variations of each instead of a hundred models.

Share this post


Link to post
Share on other sites

Thanks for the answers, i can see your point. I have a question: since the world i want to create isn't going to be so big and i love to design terrain i am thinking of creating the world manually. How much or rather what aspects of the game should be 'procedural generated'? Stuff like monster camp locations maybe? 

 

Share this post


Link to post
Share on other sites
12 hours ago, Avocadoo said:

How much or rather what aspects of the game should be 'procedural generated'? Stuff like monster camp locations maybe?

Warning! Procedural generation has flaws, just remember it is noise and noise doesn't make sense. Sometimes making patters from the noise takes longer than doing things by hand. Warning!

There is no way to estimate, I can say around 30%-60% is my estimate, because you will need to do hundreds of thousands of tests to see what works as procedural and what as hand made.

Often you will combine them. For example design parts of the monster camps like: Bedding zone, feeding zone etc. then you will stitch these procedurally so each camp looks unique.

Share this post


Link to post
Share on other sites

You could also go for some Super Mario Odyssey kind of terrain that is a sized but open level per world where the bounds are surrounded by emptyness

3313272-untitled2.jpg

Depending or your level design you could also use high cliff walls (like in the forest level) !WARNING SPOILER

This would lead to the feeling of beeing open world with some edge cases. You could describe that with a world that is made from islands (as Spellforce 1 did) connected by some kind of transport (like a portal or Ship) so a player can travel through the world and you have to design just single level maps

 

Share this post


Link to post
Share on other sites
On 1/14/2018 at 4:50 PM, Scouting Ninja said:

Warning! Procedural generation has flaws, just remember it is noise and noise doesn't make sense. Sometimes making patters from the noise takes longer than doing things by hand. Warning!

Procedural generation can also be from grammers and rule sets.

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


  • Advertisement
  • Advertisement
  • Popular Now

  • Advertisement
  • Similar Content

    • By evelyn4you
      hi,
      until now i use typical vertexshader approach for skinning with a Constantbuffer containing the transform matrix for the bones and an the vertexbuffer containing bone index and bone weight.
      Now i have implemented realtime environment  probe cubemaping so i have to render my scene from many point of views and the time for skinning takes too long because it is recalculated for every side of the cubemap.
      For Info i am working on Win7 an therefore use one Shadermodel 5.0 not 5.x that have more options, or is there a way to use 5.x in Win 7
      My Graphic Card is Directx 12 compatible NVidia GTX 960
      the member turanszkij has posted a good for me understandable compute shader. ( for Info: in his engine he uses an optimized version of it )
      https://turanszkij.wordpress.com/2017/09/09/skinning-in-compute-shader/
      Now my questions
       is it possible to feed the compute shader with my orignial vertexbuffer or do i have to copy it in several ByteAdressBuffers as implemented in the following code ?
        the same question is about the constant buffer of the matrixes
       my more urgent question is how do i feed my normal pipeline with the result of the compute Shader which are 2 RWByteAddressBuffers that contain position an normal
      for example i could use 2 vertexbuffer bindings
      1 containing only the uv coordinates
      2.containing position and normal
      How do i copy from the RWByteAddressBuffers to the vertexbuffer ?
       
      (Code from turanszkij )
      Here is my shader implementation for skinning a mesh in a compute shader:
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 struct Bone { float4x4 pose; }; StructuredBuffer<Bone> boneBuffer;   ByteAddressBuffer vertexBuffer_POS; // T-Pose pos ByteAddressBuffer vertexBuffer_NOR; // T-Pose normal ByteAddressBuffer vertexBuffer_WEI; // bone weights ByteAddressBuffer vertexBuffer_BON; // bone indices   RWByteAddressBuffer streamoutBuffer_POS; // skinned pos RWByteAddressBuffer streamoutBuffer_NOR; // skinned normal RWByteAddressBuffer streamoutBuffer_PRE; // previous frame skinned pos   inline void Skinning(inout float4 pos, inout float4 nor, in float4 inBon, in float4 inWei) {  float4 p = 0, pp = 0;  float3 n = 0;  float4x4 m;  float3x3 m3;  float weisum = 0;   // force loop to reduce register pressure  // though this way we can not interleave TEX - ALU operations  [loop]  for (uint i = 0; ((i &lt; 4) &amp;&amp; (weisum&lt;1.0f)); ++i)  {  m = boneBuffer[(uint)inBon].pose;  m3 = (float3x3)m;   p += mul(float4(pos.xyz, 1), m)*inWei;  n += mul(nor.xyz, m3)*inWei;   weisum += inWei;  }   bool w = any(inWei);  pos.xyz = w ? p.xyz : pos.xyz;  nor.xyz = w ? n : nor.xyz; }   [numthreads(1024, 1, 1)] void main( uint3 DTid : SV_DispatchThreadID ) {  const uint fetchAddress = DTid.x * 16; // stride is 16 bytes for each vertex buffer now...   uint4 pos_u = vertexBuffer_POS.Load4(fetchAddress);  uint4 nor_u = vertexBuffer_NOR.Load4(fetchAddress);  uint4 wei_u = vertexBuffer_WEI.Load4(fetchAddress);  uint4 bon_u = vertexBuffer_BON.Load4(fetchAddress);   float4 pos = asfloat(pos_u);  float4 nor = asfloat(nor_u);  float4 wei = asfloat(wei_u);  float4 bon = asfloat(bon_u);   Skinning(pos, nor, bon, wei);   pos_u = asuint(pos);  nor_u = asuint(nor);   // copy prev frame current pos to current frame prev pos streamoutBuffer_PRE.Store4(fetchAddress, streamoutBuffer_POS.Load4(fetchAddress)); // write out skinned props:  streamoutBuffer_POS.Store4(fetchAddress, pos_u);  streamoutBuffer_NOR.Store4(fetchAddress, nor_u); }  
    • By mister345
      Hi, can someone please explain why this is giving an assertion EyePosition!=0 exception?
       
      _lightBufferVS->viewMatrix = DirectX::XMMatrixLookAtLH(XMLoadFloat3(&_lightBufferVS->position), XMLoadFloat3(&_lookAt), XMLoadFloat3(&up));
      It looks like DirectX doesnt want the 2nd parameter to be a zero vector in the assertion, but I passed in a zero vector with this exact same code in another program and it ran just fine. (Here is the version of the code that worked - note XMLoadFloat3(&m_lookAt) parameter value is (0,0,0) at runtime - I debugged it - but it throws no exceptions.
          m_viewMatrix = DirectX::XMMatrixLookAtLH(XMLoadFloat3(&m_position), XMLoadFloat3(&m_lookAt), XMLoadFloat3(&up)); Here is the repo for the broken code (See LightClass) https://github.com/mister51213/DirectX11Engine/blob/master/DirectX11Engine/LightClass.cpp
      and here is the repo with the alternative version of the code that is working with a value of (0,0,0) for the second parameter.
      https://github.com/mister51213/DX11Port_SoftShadows/blob/master/Engine/lightclass.cpp
    • By pat thompson
      Environment concept exploring what the underwater worlds of Pandora in Avatar 2 might look like. Fan art illustrated in Photoshop.
    • By pat thompson
      Hexagon terrain tile set sample for the Mouchet Software game "Cohorts". These tiles are meant to be aerial views, and play important strategic roles in the game.
    • By pat thompson
      Environment Design for the AGS slot game "Chinatown Luck". The gate was modeled in 3D first, and then illustrated with the rest of the scene in Photoshop. Heavily animated in After Effects - the whole cityscape comes alive, with lanterns swaying, neon flickering and sparking, people moving, steam rising from street food stalls, rain drizzling, mist flowing, etc.
  • Advertisement