Jump to content
  • Advertisement

PC Dev Blog #08 - The mines are alive with the sound of SAMA

RoKabium Games

805 views

Alpha Testing

It’s been a busy time with our Alpha testers these last few weeks. Lots of feedback and ideas coming in. We’ve just come out with a new update for the Alpha version. This version is including lots of bug fixes and changes from the testers.

One of the larger items in the recent Alpha release is the sound. We hand picked and replaced all sound effects and added many more, and ended up with over 120 new sound effects added, along with 8 tracks for the background music. We decided to pick most sounds from Pond5, as they had the largest and best database of sounds we found.

RoKabium-Games-Something-Ate-My-Alien-ScreenShot-038.thumb.png.57e5e8cee7c2ed23b4b74f0a5321907c.png

In Lelantos and Aura we have introduced a new mechanic. ‘Portals’ are devices that transfer the Alien instantly to another location on the planet. On Lelantos the Alien needs to use them to find different areas that can’t reached by mining. On Aura, they are used for portaling into the Puzzle rooms. Once a portal is found, it will be displayed on the mini-map, and each will have a unique number so you can keep track of where they go.

RoKabium-Games-Something-Ate-My-Alien-ScreenShot-037.thumb.png.5f5ba493a463fed0842ac7a2a083a674.png

We’ve been playing through the full game now, to try to find how long the game plays for. For us, it takes about 10+ hours to complete, but looking at the Alpha testing data, people are playing it for between 10 -> 20 hours. So it’s looking like it’s easily going to play for 10+ hours.

RoKabium-Games-Something-Ate-My-Alien-Alpha-Testers-Wanted.thumb.png.d7b3648eec78645361d9db259140fd99.png

We are still looking for testers to help us, so if you fancy helping out, follow this link to see what to do: Alpha Signup

Steam

Our Steam / Wish List is doing well, and we are starting to get a nice following on there. We changed our release text to specify ‘Autumn 2019’ as we are now more confident we can achieve this time. The Steam Summer Sale is starting soon, so we are hoping that will bring some extra traffic and adds.

Steam-Wish-List-Adds.png.78970582f85455a2b7ccd5a6a843e460.png

Not seen our Steam page yet? It’s got all the info about SAMA including screenshots and our feature trailer video. Click the link below and check it out. Even give us an add to your Wish List if SAMA looks like it’s for you!

https://store.steampowered.com/app/1047870/Something_Ate_My_Alien/

Social Media

Back in May we did our first interview. @IndieRanger asked us if we wanted to do an interview, and we thought that would be a good idea to get out some info about us and the game. It was a bit nerve wracking, since this was our first interview, but it all went well and they did a nice write up about us. If you haven’t yet, go have a read about us.

RoKabium-Games-KatandRob_1200.thumb.jpg.b25ab3d6f6b217b506db20d9a858c8fd.jpg

Click here for the Rob & Kat Interview

We also got our first YouTube streamer, Fred! He is an Alpha tester and has done a few videos about the game and his views on it. With his comical commentary during the game play, it’s a nice start to our You Tube presence. You can find him here: Fred Impossible

Next things 

RoKabium-Games-Something-Ate-My-Alien-ScreenShot-039.thumb.png.1765d7d7a22251a658fbde69d13c48d1.png

The next phase of Alpha will be introducing some more ideas from the testers. These include modifications to the ‘Somethings’, new upgrades and some changes to the Aura world. Keep tuned to see them soon.
We will continue to interact with our Alpha testers and get as much feed back from them as we can.

Bonus: We also did a quick little ‘fun’ video of some behind-the-scenes development, and how the game looks in the Unity editor with a ‘3D’ look:



0 Comments


Recommended Comments

There are no comments to display.

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
  • Blog Entries

  • Similar Content

    • By iGrfx
      I tried to clear a RWStructuredBuffer<bool> by a CommandList->ClearUnorderedAccessViewUint call.
      I got an error like this:D3D12 ERROR: ID3D12CommandList::ClearUnorderedAccessViewUint: ClearUnorderedAccessView* methods are not compatible with Structured Buffers.
      However, I've searched on the internet but got nothing, I saw someone done this before, Does anyone know how to solve this problem? Thanks in advance!
    • By joetext
      Hey all, I'm at my wits end with this weird memory leak. My issue is with the small preview-render view that comes up on the Windows 10 taskbar when you hover over your application. I don't know the name of it, but it's the little thumbnail view that pops up when you have your mouse hovered over a minimized application. When I do this with my dx11 program, memory absolutely rockets up, I'm talking like going from 1 gb to 4 gb in a few seconds. I managed to find a single line that I can comment out and "fix" the leak, but it's not making any sense to me. The graphics portions of my program are somewhat fragmented between different abstraction layers so bear with me.
      // the code that actually handles the render calls // map buffers and copy data from cpu buffers m_context->copyDataToBuffer((void*)verts.data(), sizeof(Vertex) * verts.size(), m_vertexBuffer); m_context->copyDataToBuffer((void*)indicies.data(), sizeof(uint) * indicies.size(), m_indexBuffer); m_context->copyDataToBuffer((void*)uniforms.data(), sizeof(HuiUniforms) * uniforms.size(), m_uniformBuffer); // render ISamplerState* sampler = shaderSys->getSamplerState(); m_context->setVertexBuffer(m_vertexBuffer); // this is the line that is causing the leak m_context->setIndexBuffer(m_indexBuffer); m_context->setUniformBuffer(m_uniformBuffer, ShaderType::Vert); m_context->setUniformBuffer(m_uniformBuffer, ShaderType::Frag); m_context->setTopology(PrimativeTopology::TriangleList); m_context->setSamplerState(sampler); Texture2D** textureArr = &diffuseTexture; m_context->setTextures(textureArr, 1); m_context->drawIndexed(indicies.size()); m_vertexBuffer is an abstraction for a ID3D11Buffer. Here's the code for that setVertextBuffer call
      void D3DRenderContext::setVertexBuffer(IBuffer* buffer) { D3DBuffer* d3dBuffer = static_cast<D3DBuffer*>(buffer); ID3D11Buffer** d3dBufferResource = d3dBuffer->getBuffer(); UINT stride = sizeof(Vertex); // Vertex is a simple struct UINT offset = 0; m_context->IASetVertexBuffers(0, 1, d3dBufferResource, &stride, &offset); } And for completeness sake here's the copy buffer function
      void D3DRenderContext::copyDataToBuffer(void* data, int dataSize, IBuffer* toBuffer) { D3DBuffer* d3dBuffer = static_cast<D3DBuffer*>(toBuffer); ID3D11Buffer** d3dBufferResource = d3dBuffer->getBuffer(); HRESULT result; D3D11_MAPPED_SUBRESOURCE resource; result = m_context->Map(*d3dBufferResource, NULL, D3D11_MAP_WRITE_DISCARD, NULL, &resource); memcpy(resource.pData, data, dataSize); m_context->Unmap(*d3dBufferResource, NULL); } A few things.. I removed like 15 ASSERTS to make the code shorter, so any pointer that could potentially be null, and the dx results are all checked in the actual code. Second, I have the dx debug output enabled and it has nothing to say. Third, I've tried flushing the context after every call to drawIndexed, to no avail.

      This leak is just beyond bizarre to me, granted I have no clue how the underpinnings of that preview window work. In the meantime, I'm going to figure out how to tell windows to disable it, but I'd still like to know why this is happening. Any suggestions appreciated!
    • By Ruben Torres
      You've optimized all of the low-hanging fruits of your game. Except that you didn't. You missed a sneaky, non-so-obvious spot: optimizing your Unity Scene Hierarchy.
      [The original entry with its formatting can be found at Unity Optimization: Your Scene Hierarchy is Robbing you Performance]

      What's the crack with the hierarchy now?
      I want to show you something.
      Launch Unity and open your game project. Then, run your game on your target device and attach the Unity Profiler to it. Record a few frames during gameplay.
      In the Unity Profiler, look for the following unpleasant profiler markers:
      UpdateRendererBoundingVolumes Physics.SyncColliderTransform TransformChanged​Dispatch You didn't find any?
      Keep looking. I'm sure you'll find at least one.
      They'll spawn when you're about to give up. As soon as you mouse over the close button of the Profiler, they'll show up.
      Found them already?
      If so, it's your lucky day.
      I discovered those in my previous project as well and I learned how to land a final blow to them.
      I know the evil behind them...
      Do you want to know the performance secrets of Unity Scene Hierarchies?
      Quick Navigation (opens in a new tab)
      Level 1 Developer: A Typical Unity Scene Hierarchy
      Level 2 Developer: An Optimized Unity Scene Hierarchy
       The Gamedev Guru's Golden Rules of a Clean Unity Scene Hierarchy
      Level 3 Developer: The FAP Hierarchy Tool
       The Gamedev Guru's Hierarchy Score

      Level 1 Developer: A Typical Unity Scene Hierarchy
      I still remember the first Unity project I worked on, just slightly over a decade ago.
      I was not sure what the difference between game objects and components were.
      But that didn't matter. I created games anyway.

      Deep Unity Scene Hierarchy
      Was it uncommon to see a messy unity scene hierarchy like this?
      Actually, yes. Because it used to be worse than that.
      Interestingly enough, you can get away with this kind of hierarchies most of the time.
      But you'll suffer. You'll pay the price later on.
      Luckily, before I started developing games professionally, I learned to appreciate more structured hierarchies.
      A great scene hierarchy structure can be your best friend. Structure makes development and collaboration much easier.
      It doesn't have to be the best, whatever that means. It's enough for it to be good.
      But bear with me here. This is important.
      Having a cluttered unity scene hierarchy is dangerous and will get you into trouble. This is so because it's highly unlikely you'll directly notice its side effects.
      There'll be a creepy ghost chasing you, pulling you back, slowing you down. Sometimes you think you hear something, but when you look back, there's nothing. So you get used to walking slower.
      I learned to diagnose these side effects over the years. And the main problem is that the side effects of a messy unity scene hierarchy are not obvious to spot.
      You'll see the profiler and wonder what some markers mean. Their names are often cryptic... what secrets do they hide?
      The only thing you can be sure of is this:
      Mysterious markers tell you something's worth investigating
      When you and I talk about structuring your scenes better, we usually discuss increasing clarity and reducing maintenance cost.
      But performance? Just like my cat gitignores all the toys she has around my flat, everybody forgets about performance when it comes to the Unity Scene Hierarchy.
      Let's analyze the previously shown unity scene hierarchy. It contains 2,000 rotating spheres nested on top of each other.
      What does the profiler say about it? Look, don't be scared.
      Unity Scene Hierarchy Optimization-Deep-Hierarchy Profiler Overview
      That's pretty bad for a simple prefab and a rotation script applied to a built-in sphere.
      As you can see, Physics.SyncColliderTransform and UpdateRendererBoundingVolumes are taking a huge portion of your frame budget.
      But let's not stop analyzing there, because I'm quite curious about this case.
      Let's dig further. I hope you saved some 4G data this month for this impressive image.

      Unity Scene Hierarchy Optimization-Deep-Hierarchy Profiler Details
      Here lies the key of the article.
      Unoptimized hierarchies causes two BIG problems in Unity.
      Deep hierarchies do not allow the job system to work efficiently in parallel. Nested hierarchies cause bottlenecks in several subsystems within Unity. Remember my words...
      Because this applies to all types of dynamic objects and especially user interfaces.
      In case you're wondering, I own a Threadripper with 16 physical cores and 32 threads. Do you know how many am I using effectively in this project? Just one.
      There're so many ways to say the same: the performance of your game will suffer. And by trying to fix this mess by following your gut feeling based on those mysterious names, you'll start to age blazingly faster.
      What would a Level 2 Developer do with 2,000 objects?

      Level 2 Developer: An Optimized Unity Scene Hierarchy
      A Level 2 Unity Developer knows that parenting transforms comes at a price.
      The Level 2 Developer also knows this price is paid in milliseconds of CPU time. Or, similarly put, it is paid in hours of overtime spent by the developer chasing this up.
      Ask yourself: do you have enough CPU budget to pay for this expensive hierarchy?
      From which area of your game are you subtracting those milliseconds from?
      Will your game bombard the player with less and less flashy particles? Or will you cut the number of city invaders your player will have to defend from?
      Hopefully, you'll do nothing of these two things., but rather...

      The reason complicated parenting steals resources from your game is simple:
      Each transform modification affects its children and potentially its parent and siblings
      Unity recalculates a lot of thingies for you when you change an object's position, rotation or scale.
      This process is transparently done for you, so you can focus on developing your game. That is great, but the price to pay for it becomes astronomical if you're caught off-guard.
      The solution?
      Keep it simple, adhere to...
       The Gamedev Guru's Golden Rules of a Clean Unity Scene Hierarchy
      No more than 50 total child elements per game object No more than 4 levels of depth in any game object Isn't that simple?
      A Level 2 Developer will keep their unity scene hierarchies as flat as possible.
      Look below. Same amount of objects, this time structured under a flat hierarchy.

      Savings are huge, I see.
      But doing this is easier said than done, right? Detaching and destroying relation(ships) between objects is a laborious, error-prone and time-intensive task.
      What would a Level 3 developer do?

      Level 3 Developer: The FAP Hierarchy Tool
      A good Unity developer gets things done.
      A great Unity developer gets things done faster, more accurately.
      But how is that?
      By using tools.
      Because the only cheap hierarchy is the empty one, there's one key answer you need to answer at all points from your game...
      How complex are your hierarchies?
      You can answer this by methodically analyzing your hierarchies and giving it a score.
      The Gamedev Guru's  Hierarchy Score
       Below 35: Smells of Trouble. RUN!
       Around 50: You might be OK (For now)
       Above 70: Profit! (But don't relax)
      So what are the math formulas I need to calculate the score?
      Luckily, none. I've done this for you.
      I prototyped a tool to automatically analyze and detect bottlenecks in your hierarchy based on The Gamedev Guru's Golden Rules of a Clean Hierarchy.
      I call this tool...
      The Fabulous Advanced Profiling Hierarchy Tool
      Run your game. Get to a point of interest. Open the tool and let it do the work for you.

      The Gamedev Guru's FAP Hierarchy Tool
      Let the tool whisper in your ear the magical melody of an integer that we will call... score.
      Once you know what your score is, you know what to do... Or not?
      Because I'm not giving you only that tool, but also a bonus script to boost your hierarchy problem-solving techniques.
      I'm giving you the extraordinary power of the simple DetachGameObject.cs Demigod script.
      You're not likely to encounter many 27-line scripts that will help you improving performance so much in that small time frame.
      What this does is simple: it'll move your heavy and nested game objects to the root of the scene hierarchy in run-time. That way, you'll profit from having structured hierarchies during development and gain an insane performance advantage during run-time.
      Chances are, you can do this for the great part of your hierarchy that is heavily nested for structure's sake.
      Claim your free bonuses before they become a 404 error (opens in a new tab)
      And after that? Comment below and share your score.
    • By Talvysh
      What I Want to Build
      A solid ARPG in the realm of Diablo/Path of Exile.  A gritty, gorey world with hope and beauty peppered throughout.
      I already have a world that I've been designing in my head for the game, but I haven't thought about any of the systems yet.
      The world is, idk, magicpunk?  Basically steampunk, but with magic fueling everything instead.  There is a lot of content we can do with the world, but the timeframe for this game would be during the Crimson Plague - Demons, Necromancers, Ghouls, etc.  To summarize necromancers were playing around with the creation of a new curse or parasite to spread the Ghoul disease.  It turned out pretty affective.  There are some people who are immune to the curse, while others have to use, say, magical barriers to block the disease from spreading.
      Team
      What I Can Offer
      Game design, writing, pixel art, digital art, and programming: C#/Unity, Godot, GameMaker, Kotlin & Java (Haven't used much of LibGDX though), Python, and full-stack web.
      My main focus is writing and game design.  I've always loved creating intricate worlds, getting the player immersed, and fiddling with game systems.
      I have some background with management, and took a class in college for human relations in business - If that counts for anything.  Ha ha.
      General Positions We Need
      Artists (2-3) Modeling (2-3) - *Only if we end up doing something 3D Programmer (1-2) Audio Engineer 1 Composer 1 We can go without a programmer since I have a decent background in it.  We can knock 1 off of artists if we're doing something 2D, but I'd still prefer someone that is dedicated to it.
      Stretch Goals
      Turning our little band of gamers into a serious team.  Get a name for ourselves, start selling/publishing games, etc.  If anything we can network with each other and hopefully become friends!
    • By Jman2
      Hello,

      So a long while ago i asked a question about effecinet mip offset in a linear memory data array, essentially i wanted to load all the data in one go but still allow access to individual faces or mip levels. The method i used was basically to create a look up table when ever the user created an image that stored pointers into the byte data, that is probably the correct solution, however i did come up with a pieace of useless math today after thinking about it:
      inline Uint32 TextureOffset(const TextureDesc& info, Uint32 mipLevel, Uint32 arraySlice, Uint32 byteCount) { Uint32 pow = Mathf::Pow(4, mipLevel); Uint32 A = byteCount / info.m_ArraySize; // Total bytes to a surface + mips Uint32 B = CalculateSurfaceSize(info.m_Width, info.m_Height, info.m_Format); // Total bytes to top level surface return (arraySlice * A) + B + (B * (Mathf::Floor(pow / 3) / pow)); // offset bytes } The above will find the exact offset to the mip and array level, but its waaay to expensive to be useable i think.
      Woder what method anyone else would use, i know alot will just create a List or vector of each surface pretty sure thats what nvidia does but it would be nice to be able to load everything into a big bulk container and just dip into the data at the specific offset you need too. The annoying think about the look up is having to loop through and create the offsets to access the data.
      I thought an elegant pieace of math would exist but i guess i was wrong xD
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!