Hi, guys!
My prograss crashs with a stackoverflow exception in some pcs. I changed the stacksize of thread from default(1M) to (2M) for fixing this problem. But I have got confused with some doubts.
1、Why this exception happens in some pcs not all? I think the logic is the same ,so the stack used must be identified too.
2、Why the default stack size is 1M? Just for saving the memory of process or have some other reasons?
3、Can there any tools or methods for me to find the logic where using so much stack?
↧
How to check the peak stack size of all thread in a process.
↧
The Wayfarer (Tentative Title) - Branching Out, World Building
Waaaay too long since my last update.
Since then, I've been working (not nearly as much as I should be) on outdoor environments and a skill tree.
I want this game to follow the classic RPG class formula of Mage, Fighter and Thief, but I didn't want to constrain my players to a single class. Instead, I decided to go with a classless/multiclass concept where players are able to traverse a large skilltree which is implicitly divided into the three aforementioned classes.
Take a look at the prototype:
So this is still an early proof of concept, and all of the visual elements will probably change, but it's going to function in pretty much the same way as shown here. You'll also get a (very) small taste of the kind of skills you might see in the game. One more note: the three skill branches never merge in this example, but I think they will in the final version. Also, all parent nodes of a skill must currently be unlocked before unlocking a given child node. I'm not sure if this will persists, or if I'll remove that constraint to give me freedom of traversal.
Other than that, I've been spending a bit of time building some outdoor environments to try to nail down what my worlds will look like.
This first screenshot is, quite honestly, pretty bland and generic, but it will at least give a sense of how villages will be laid out in the world:
After I made this scene, I procured a license for Gaia--a really powerful and full featured terrain generation tool for Unity.
Here's what 15 minutes of work with Gaia looks like:
Pretty amazing huh?
So in the end, I think I'll be using Gaia to build my world, and then I'll refine the terrain manually and tweak the positioning of settlements and other points of interest to best suit the game's story and gameplay.
That's it for me.
Stay tuned for an update on NPCs and monsters!
↧
↧
In-game trigger boxes?
Greetings,
we're making a 90s style game with prerendered backgrounds and static camera angles using a custom software-based engine (Sample WIP video)
I was wondering what's the best way to go about setting up camera triggers. In the video I was manually switching cameras. I was thinking just OBBs (or AABBs), every camera would be associated with a bounding box, if you're in box A then camera A renders.
- Is this a good approach or is there a better more simpler/automated way of doing it? How did old games like Resident Evil or Final Fantasy do it?
- Doing it this way I'd have to use some sort of editor to setup the boxes. We're using Blender so I guess I could use that, although I'd prefer a more specialized editor. Is there any good 3rd party editor that's more suitable to doing this stuff? (The same editor would be used for door triggers, item/enemy spawns, text triggers etc). I thought about writing my own editor but that's a bit luxurious at the moment, I'm still setting the core things up.
Any ideas/help is greatly appreciated
Thanks
-vexe
↧
Error Handling Question
Hi guys,
So I'm looking at another developers project for learning purposes and I'm just moving through the code so I can get an understanding of what's happening and how to write my own version of it. And the first thing I'm looking at is the 'try ..catch' statement. From what I can tell the purpose of try catch is to try a block of code and if an exception occurs then catch it, In this example I'm not sure how catching is actually working.
try {
Thread.sleep(1);
} catch (InterruptedException e) {
}
I've also seen some basic examples where 0 is divided by a value and it's suppose to throw an Exception, the person then draws a line to say hey you can't divide like that. But in this case what will happen ?
I think more importantly, if an error occurs, does the program crash, and whether or not it crashes will I see a message in Eclipse console telling me what caused the error ?
And then, from what I've read some peoples approach is to determine what exceptions/errors may occur and then change their code to prevent that from happening.
These questions will help me understand whether or not I can take the following approach, code, run the program, attempt all possible interactions, when an error occurs see what it says in the console or rather see what interaction I did that caused it then modify the code to prevent that from happening, instead of catching exceptions.
Update:
I looked up exceptions a bit, I see that InterruptedException is a specific exception that throws when a sleeping thread is interrupted using the interrupt(); method. And that I don't see interrupt being used in the project then the exception is actually not required.
↧
Instance Shader Problem
I am using slimDX and am having a problem with a shader. I have an instance Shader that works perfect but I needed one for drawing fonts manually. The idea is to create the plane and simple instance it with separate position color and texture coordinates for each char. I know this post is terribly long but any help would be appreciated. I tried to provide everything needed but if you need more I will be glad to post it.
This is the shader. the only difference between it and the working one is the instance texture coordinates. I was able to render 4,000 spheres with 30,000 faces with the original and still maintain a 100+ framerate. I don't know if that is a lot but it looked like it to me.
cbuffer cbVSPerFrame:register(b0)
{
row_major matrix world;
row_major matrix viewProj;
};
Texture2D g_Tex;
SamplerState g_Sampler;
struct VSInstance
{
float4 Pos : POSITION;
float3 Normal : NORMAL;
float2 Texcoord : TEXCOORD0;
float4 model_matrix0 : TEXCOORD1;
float4 model_matrix1 : TEXCOORD2;
float4 model_matrix2 : TEXCOORD3;
float4 model_matrix3 : TEXCOORD4;
// this is the only addition
float2 instanceCoord:TEXCOORD5;
float4 Color:COLOR;
};
struct PSInput
{
float4 Pos : SV_Position;
float3 Normal : NORMAL;
float4 Color:COLOR;
float2 Texcoord : TEXCOORD0;
};
PSInput Instancing(VSInstance In)
{
PSInput Out;
// construct the model matrix
row_major float4x4 modelMatrix =
{
In.model_matrix0,
In.model_matrix1,
In.model_matrix2,
In.model_matrix3
};
Out.Normal = mul(In.Normal, (row_major float3x3)modelMatrix);
float4 WorldPos = mul(In.Pos, modelMatrix);
Out.Pos = mul(WorldPos, viewProj);
Out.Texcoord = In.instanceCoord;
Out.Color = In.Color;
return Out;
}
float4 PS(PSInput In) : SV_Target
{
return g_Tex.Sample(g_Sampler, In.Texcoord);
}
technique11 HWInstancing
{
pass P0
{
SetGeometryShader(0);
SetVertexShader(CompileShader(vs_4_0, Instancing()));
SetPixelShader(CompileShader(ps_4_0, PS()));
}
}
this is the input elements for the 2 buffers
private static readonly InputElement[] TextInstance = {
new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0, InputClassification.PerVertexData, 0),
new InputElement("NORMAL", 0, Format.R32G32B32_Float, InputElement.AppendAligned, 0, InputClassification.PerVertexData, 0),
new InputElement("TEXCOORD", 0, Format.R32G32_Float, InputElement.AppendAligned, 0, InputClassification.PerVertexData, 0),
new InputElement("TEXCOORD", 1, Format.R32G32B32A32_Float, 0, 1, InputClassification.PerInstanceData, 1 ),
new InputElement("TEXCOORD", 2, Format.R32G32B32A32_Float, InputElement.AppendAligned, 1, InputClassification.PerInstanceData, 1 ),
new InputElement("TEXCOORD", 3, Format.R32G32B32A32_Float, InputElement.AppendAligned, 1, InputClassification.PerInstanceData, 1 ),
new InputElement("TEXCOORD", 4, Format.R32G32B32A32_Float, InputElement.AppendAligned, 1, InputClassification.PerInstanceData, 1 ),
new InputElement("TEXCOORD", 5, Format.R32G32_Float, InputElement.AppendAligned, 1, InputClassification.PerInstanceData, 1 ),
new InputElement("COLOR", 0, Format.R32G32B32A32_Float, InputElement.AppendAligned, 1, InputClassification.PerInstanceData, 1 )
};
the struct for holding instance data.
[StructLayout(LayoutKind.Sequential)]
public struct InstancedText
{
public Matrix InstancePosition;
public Vector2 InstanceCoords;
public Color4 Color;
};
instanceData buffer creation. Instance Positions is a simple List<InstancedText> above
DataStream ds = new DataStream(InstancePositions.ToArray(), true, true);
BufferDescription vbDesc = new BufferDescription();
vbDesc.BindFlags = BindFlags.VertexBuffer;
vbDesc.CpuAccessFlags = CpuAccessFlags.None;
vbDesc.OptionFlags = ResourceOptionFlags.None;
vbDesc.Usage = ResourceUsage.Default;
vbDesc.SizeInBytes = InstancePositions.Count * Marshal.SizeOf<InstancedText>();
vbDesc.StructureByteStride = Marshal.SizeOf<InstancedText>();
ds.Position = 0;
instanceData = new Buffer(renderer.Device, vbDesc);
and finally the render code.
the mesh is a model class that contains the plane's data. PositionNormalTexture is just a struct for those elements.
renderer.Context.InputAssembler.InputLayout = new InputLayout(renderer.Device,
effect.GetTechniqueByName("HWInstancing").GetPassByIndex(0).Description.Signature, TextInstance);
renderer.Context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;
renderer.Context.InputAssembler.SetVertexBuffers(0, new
VertexBufferBinding(mesh.VertexBuffer, Marshal.SizeOf<PositionNormalTexture>(), 0));
renderer.Context.InputAssembler.SetIndexBuffer(mesh.IndexBuffer, SlimDX.DXGI.Format.R32_UInt, 0);
renderer.Context.InputAssembler.SetVertexBuffers(1, new VertexBufferBinding(instanceData,
Marshal.SizeOf<InstancedText>(), 0));
effect.GetVariableByName("g_Tex").AsResource().SetResource(textures[fonts[name].Name]);
EffectTechnique currentTechnique = effect.GetTechniqueByName("HWInstancing");
for (int pass = 0; pass < currentTechnique.Description.PassCount; ++pass)
{
EffectPass Pass = currentTechnique.GetPassByIndex(pass);
System.Diagnostics.Debug.Assert(Pass.IsValid, "Invalid EffectPass");
Pass.Apply(renderer.Context);
renderer.Context.DrawIndexedInstanced(mesh.IndexCount, InstancePositions.Count, 0, 0, 0);
};
I have been over everything I can think of to find the problem but I can't seem to locate it.
my best guess is the instance data buffer is wrong somehow since VS graphics debugger shows no output from vertex shader stage
but I just can't see where.
↧
↧
Does Java main class run multiple times
Hi guys,
Can I see Javas Main class as a main loop in which everything inside will be run continuously ?
This is confusing because at the start of the main class in my code sample two class objects are created and one array object. I'm not sure about the process.
In GML there's a section where code is only run once, and then there are sections where scripts are continuously run. And of course if I only want code thats in the section which runs continuously to only run once I'd use a boolean.
↧
Suggest a budget game dev laptop to replace desktop?
Something under $750-1000 USD. I don't have a desktop so this is it. But it would also be nice to have something lighter, since I'll be carrying to school often, and will have an external monitor to use at home. New to game dev so not sure what to plan for... what specs are you guys using?
So far, I've looked at these:
Legion Y520 (~$790 USD):
i5-7300HQ
NVIDIA GeForce GTX 1050Ti
8GB RAM (single, but can upgrade to 32GB max with 2 slots)
15.6" and 2.4lb
1TB 5400RPM HDD, upgradeable
(Can fork over $230 more to upgrade to an i7-7700HQ and 1TB 5400RPM + 128GB PCIe SSD........ is it worth it?)
Ideapad 510 (~$880 USD):
i7-6500U
NVIDIA GeForce 940MX
4GB Soldered + 4GB DIMM (can upgrade to 12GB max in total)
15.6" and 2.2lb
1TB 5400RPM HDD, upgradeable
Ideapad 510s (~$930 USD):
i7-6500U
AMD Radeon R7 M460
8GB (single, already maxed)
14" and 1.7lb
256 GB SSD, upgradeable
Any thoughts on these? The main quips I have with the Legion Y520 is that the CPU isn't as energy efficient as the Ideapads, and it's also quite heavy. And it's a gaming laptop... I've heard those don't have a very long lifespan? Haven't looked at other brands yet. Any suggestions?
I'll be working on 2D and 3D projects... I'll be using my own art and also using assets. Are these specs an overestimation... should I be looking for less?
↧
[Hobby][Rev-share] Writer w/ 15+ yrs. XP looking for project
Hey guys!
l'm a passionate and published writer looking to get my hands dirty in the game dev world, collab with some cool people, and make awesome games. Story arcs, character development, dialogue creation, text editing... you name it, l'm game.
l'm perfectly happy doing hobby projects, but if people are getting something like rev-share, i will expect compensation as well
EXPERlENCE:
15+ years of writing experience. l've written & edited everything from fiction to journalism to content marketing and more. But mostly fiction.
Many of my stories have been published. You can check out my style and see if l'd be a good fit here.
OTHER SKlLLS:
l've done a small bit of voice-acting and would love the chance to get more into it. l've been told on occasion that i have a "good voice for reading."
GENRE STRENGTHS:
Drama, horror, mystery, suspense (big Stephen King/SOMA/Prey fan)
GAME GENRE:
While l have my favorites, l'll be happy working with any genre.
Looking forward to hearing from you guys!
-Snarky
↧
Engine Project Companion
Dear reader,
I'm a long time gamer, designer, developer, board game fan and hobbyist board game author, passionate in games since age of 6 with addiction to video games starting at the first own computer in the 90's. Professional developing in games industry since 2012 using the popular tools and engines as of Unreal Engine and Unity 3D to create games and optimie workflow by making tools. Highly interested in game engine development starting at the time of my bachelor studies to self improving in any topic a game engine needs to fit and above now working on my current engine project since 3 years in my rarely spread spare time seeking for a companion to contribute, helping improving existing source code on the framework base and planning/developing new features inside the framework but also on the wide tools base.
About the Project
Drough initially intended as game engine has now become a modular C++ based framework to setup and build custom game engines but could also be used for developing games in the same turn while from game developers for game developers regardless of professional, indie or hobbyist; plugging in modules improves the system with different sets of capabilities using OS low level APIs. It's partner project is my WorkBench frontend; itself also fully customizeable written in C# using C# Assemblies as plugins, providing a fully desktop integrated game development environment with state of the art but simple planned tools for both, game designers and game programmers with a code driven but node based editing masked interface. An integrated download center should help customizing the tool in the future and maybe access a users account on the website.
Currently the framework provides:
AI (FSM, Behavior Tree and some utilities used in machine learning)
Asset support for most common file types (Bmp, Jpeg, Obj, Png, Tga), data types (Ini, Json) and packages (an own one + zip)
Multithreaded task based and event system
Logging and Profiler backend (file based and UDP)
OpenGL 4+ Core Profile and Vulkan graphics
Who Contributes
You as contributor should be a reliable consitent person with the same passion about making games and the tools used to make them as I do with a good or semi good knowledge in C++, C# and the will to invest at least a few hours per week of your spare time to help bringing the project onto the next level. "But why should I do that" would you propably ask yourself when reaching this point, so to be honest, I could not offer anything because I also just only spend time, a lot of creativity and experience into the project but I you could get part of a team working on something great getting on the edges of your knowledge and beyond.
It would be also great to take a view on the multiplatform aspect, when you would carry some linux experience into the OS code.
Getting in Touch
When your read all the post until here, congrats! and thank you for sharing your time regardless how you decide for contributing or not. If so, I would like to get in touch, maybe with a small introduction of yourself on this thread or via PM. I would be happy about anyone to write
↧
↧
Anyone having worked with Esenthel Engine lately? Has it improved?
So I haven't touched Esenthel Engine in 5 years... I left it behind just before the guy did a big redesign because of his objectives no longer aligning with my interests (lets just say that to this day the idea of a world editor runnable on mobile devices amuses and saddens me at the same time, and trying to also push into the multiplatform engine market IMO was a bad call for an engine with such a small dev team (one guy?)).
I received a notification E-Mail last week about a new Demo being available, and went to watch the Demo video on Youtube... and actually liked the new effects.
Now, the engine was way ahead of its time in the early DX11 era when Unity was still trying to get its graphics looking good with DX9, and Unreal wasn't on UE4 yet. And sure enough, thanks to good assets the Demo did look good.
But the looks of what could be achieved with the engine was never the problem. Problem was the severly dated Editor and the obscure command schema to use it, and concerns about performance raised by some people (and I also saw the engine perform poorly in my case, but then I was making a loot of newbie mistakes still while using that engine, so might be on me in my case).
So did anyone use the engine as of 2017? Has it improved on the Editor front? How is performance looking, is it usable for anything larger (outside of eye candy demos)?
Thing is, the engine had a terrific asset importer that always imported my 3D Coat exported assets without any issues that never imported right into Unity 3... Unity just recently improved their importers to a point where I no longer constantly struggle with issues after an import.
And the terrain system was pretty good. In Unity we still wait for a terrain system that does half of what the Esenthel terrain system did back in 2011.
So I still have a soft spot for the engine... I HOPE that the engine dev did realize that his priorities shifted in the wrong direction back in 2012/2013, and went back to make his engine run as well as possible on PC, and update his world editor.
↧
Box2D collisions
I'm really new to using Box2D. I've setup a small thing with a Dynamic body that falls onto a static one. When the box hits the body, it begins "vibrating" for a bit and shaking, then suddenly stops. If anyone has used it or might know what is happening I'd appreciate it,
That's the setup of the boxes.
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(100.0f, 400.0f);
b2Body* groundBody = world.CreateBody(&groundBodyDef);
b2PolygonShape groundBox;
groundBox.SetAsBox(240, 20);
groundBody->CreateFixture(&groundBox, 0.0f);
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set(100.0f, 0.0f);
b2Body* body = world.CreateBody(&bodyDef);
b2PolygonShape dynamicBox;
dynamicBox.SetAsBox(32.0f, 32.0f);
b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.3f;
body->CreateFixture(&fixtureDef);
body->SetAngularVelocity(20);
int32 velocityIterations = 8;
int32 positionIterations = 4;
world.Step(ticks_per_frame, velocityIterations, positionIterations);
b2Vec2 position = body->GetPosition();
float32 angle = body->GetAngle();
std::cout << angle<< "\n";
SDL_Rect rect = {position.x, position.y, 32, 32};
//SDL_Point point = {32, 0};
SDL_RenderCopyEx(mainren, textures[0], NULL, &rect, angle, NULL, SDL_FLIP_NONE);
↧
Mobile Game Reviews: Let's Talk Rucoy Online
In this daily blog (and video)-series I take a first impressions look at the best mobile games that I come by. Be sure to share your favorite mobile game with the rest of us in the comments below!
Rucoy Online is a grindy pixel-art MMORPG with both PVP and boss battles, which reminds me a bit of Runescape back in the day (no woodcutting, mining etc., though). The game is rather hardcore too, with no worldmap, no tutorial in the beginning etc.
I enjoyed the fact that you at any time can switch between playing as a Knight, Archer or Mage, and that each class even had to be trained up individually. Also, the game is light on the battery and loads quickly, making it suitable for most phones. The monetization focuses mostly on cosmetics, and there are no obtrusive ads (a banner-ad is shown at the bottom of the screen in menus).
The biggest drawback of Rucoy Online is its issues with botting, and for better or worse; the game is still actively being developed, which means many features have not been added yet. But if you enjoy grindy MMOs (like I do), I'd still recommend checking out the game for yourself.
My thoughts on Rucoy Online:
Google Play: https://play.google.com/store/apps/details?id=com.lightarc.castle&hl=en iOS: https://itunes.apple.com/us/app/castle-battles-strategy-but-fast/id1210311968?mt=8
Subscribe on YouTube for more commentaries: https://goo.gl/xKhGjh Or join me on Facebook: https://www.facebook.com/mobilegamefan/ Or Instagram: https://www.instagram.com/nimblethoryt/ Or Twitter: https://twitter.com/nimblethor
↧
What's a good way to document information
Hi guys,
So something I'd find useful is having like a reference book/cook book for the languages I'm learning.
For example I'm currently busy with a tutorial that's talking about client/server networking in java, so far I've written the code and made a bit of sense on what's going on, how ever I want to break things down by line, like how you'd go to oracle to see what the documentations say about the difference libraries, their methods, exception types and all that. I'd like my own version that only has what I've already learnt or what I'm currently learning/what's relevant.
I'm looking for a way to create documents and then organize them so they're easily accessible and navigable , I'm sure if I were a better programmer I would make something like that but I'm more a game dev, so what do you use(if any) to do this sort of thing ? do you know of any software like that ? I'm finding crap on google and thought well other developers may use something of the sort.
I used to use a book and write down what I've learnt into sections so I could look back for quick reference. But I'm not a fan of my handwriting and I type much faster.
↧
↧
Team looking for 3D modeller
I have a small team together to work on an open world adventure game but we are lacking specifically anyone to do with 3D modelling. The basic concept of the game is you play as a demigod who has seen mankind grow from the bottom, up. The Gods are unhappy with the humans because there is a worldwide war that is destroying Earth. They tell the humans they are angry, and they destroy the universe but keep the demigod alive to watch everything disappear. He wakes up in a world filled with fantasy, kind of like the elder scrolls. Here, he must protect the innocent people and fulfill his duty in a prophecy.
If you have any interest in joining the team, even if you are not a 3D designer, please email me at 78darknight87@gmail.com.
Thanks
↧
Game uses iGPU instead of dedicated GPU
Hi,
on my Dell laptop, my game uses the Intel iGPU instead of the dedicated AMD GPU (verified by looking at GPU usage in GPU-Z). Other games like World of Warcraft use the dedicated GPU, so this has to be an issue of my game. I remember having already tried something, but it was not successful so I undid the changes.
Here is the code I use to initialize Direct3D:
// Create a DirectX graphics interface factory.
result = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&factory);
if(FAILED(result))
{
return false;
}
// Use the factory to create an adapter for the primary graphics interface (video card).
result = factory->EnumAdapters(0, &adapter);
if(FAILED(result))
{
return false;
}
// Enumerate the primary adapter output (monitor).
result = adapter->EnumOutputs(0, &adapterOutput);
if(FAILED(result))
{
return false;
}
// Get the number of modes that fit the DXGI_FORMAT_R8G8B8A8_UNORM display format for the adapter output (monitor).
result = adapterOutput->GetDisplayModeList(DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_INTERLACED, &numModes, NULL);
if(FAILED(result))
{
return false;
}
// Create a list to hold all the possible display modes for this monitor/video card combination.
displayModeList = new DXGI_MODE_DESC[numModes];
if(!displayModeList)
{
return false;
}
// Now fill the display mode list structures.
result = adapterOutput->GetDisplayModeList(DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_INTERLACED, &numModes, displayModeList);
if(FAILED(result))
{
return false;
}
// Now go through all the display modes and find the one that matches the screen width and height.
// When a match is found store the numerator and denominator of the refresh rate for that monitor.
for(unsigned int i=0; i<numModes; i++)
{
if(displayModeList[i].Width == (unsigned int)ScreenWidth)
{
if(displayModeList[i].Height == (unsigned int)ScreenHeight)
{
numerator = displayModeList[i].RefreshRate.Numerator;
denominator = displayModeList[i].RefreshRate.Denominator;
}
}
}
// Get the adapter (video card) description.
result = adapter->GetDesc(&adapterDesc);
if(FAILED(result))
{
return false;
}
// Store the dedicated video card memory in megabytes.
VideoCardMemory = (int)(adapterDesc.DedicatedVideoMemory / 1024 / 1024);
VideoCardDescription = adapterDesc.Description + (L"\nVRAM: " + std::to_wstring(VideoCardMemory)) + L" MB";
// Release the display mode list.
delete [] displayModeList;
displayModeList = 0;
// Release the adapter output.
adapterOutput->Release();
adapterOutput = 0;
// Release the adapter.
adapter->Release();
adapter = 0;
// Release the factory.
factory->Release();
factory = 0;
// Initialize the swap chain description.
ZeroMemory(&swapChainDesc, sizeof(swapChainDesc));
// Set to a single back buffer.
swapChainDesc.BufferCount = 1;
// Set the width and height of the back buffer.
swapChainDesc.BufferDesc.Width = ScreenWidth;
swapChainDesc.BufferDesc.Height = ScreenHeight;
// Set regular 32-bit surface for the back buffer.
swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
// Set the refresh rate of the back buffer.
if(VsyncEnabled && FullscreenMode == EFullscreenMode::Fullscreen)
{
swapChainDesc.BufferDesc.RefreshRate.Numerator = numerator;
swapChainDesc.BufferDesc.RefreshRate.Denominator = denominator;
}
else
{
swapChainDesc.BufferDesc.RefreshRate.Numerator = 0;
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
}
// Set the usage of the back buffer.
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
// Set the handle for the window to render to.
swapChainDesc.OutputWindow = hwnd;
swapChainDesc.SampleDesc.Count = Settings::MSAA;
swapChainDesc.SampleDesc.Quality = 0;
// Set to full screen or windowed mode.
if(FullscreenMode == EFullscreenMode::Fullscreen)
{
swapChainDesc.Windowed = false;
}
else
{
swapChainDesc.Windowed = true;
}
// Set the scan line ordering and scaling to unspecified.
swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
// Discard the back buffer contents after presenting.
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
// Don't set the advanced flags.
swapChainDesc.Flags = 0;
D3D_FEATURE_LEVEL FeatureLevels[] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0 };
ID3D11DeviceContext* lDeviceContext;
// Create the swap chain, Direct3D device, and Direct3D device context.
result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, 0, D3D11_CREATE_DEVICE_BGRA_SUPPORT
#if defined(_DEBUG) || defined(DEBUG_GRAPHICS)
| D3D11_CREATE_DEVICE_DEBUG
#endif
, FeatureLevels, 3, D3D11_SDK_VERSION, &swapChainDesc, &SwapChain, &Device, &FeatureLevel, &lDeviceContext);
DeviceContext = lDeviceContext;
if(FAILED(result))
{
return false;
}
↧
Custom physics for rigid body
The context here is unreal engine 4
There is a character class inbuilt that possess basic character movement physics like walking , jumping , going up on an inclined surface etc etc. which is fulfilled in the engine by specialised movement code that is not ran on any physics engine but computed on CPU each frame on game thread. You can say it simulates some of the physics properties like velocities and acceleration calculating how much to move the character but its not a real physics simulation.
I wonder if how feasible it is to extend this kind of system to support a free rigid body like object, say making a box tumble around but with custom code instead of something like PhysX or Bullet. Is it worth it or would I simply end up with something that engines like PhysX can already do?
↧
>>Developer looking for 2d artists and animators for an unconventional adventure RPG
Greetings.
My name is Kthulhu, and I am currently organising a rather amazing indie project with many interactive characters, emotionally powerful intertwining plots and a few rather... unconventional features.
As it stands, 2d artists are needed. If you have knowledge (even basic) in character design, background design or animation, you'll be fitting to fill any of the open roles (currently, there are multiple vacancies, the more the merrier). Bonus perks are capabilities in pixel-art, animation involving pixel-art, and similar specialties.
If you want to be part of this endeavour, contact me at eran190@gmail.com ; no need for a resume, but a portfolio is recommended. If you can draw a proportional character according to a given description (accuracy is a perk), and have the time to dedicate to this project (ideally a few hours a week, at least), you'll qualify.
>>>>>>>>>>>>In return, I will be gladly willing to help you on whatever project you have cooking, as I can help in many different facets... Writing (plot/character related), game design and advice/critique regarding pretty much any aspect of the game are my areas of expertise!
Sincerely, and awaiting our potential partnership, Kthulhu.
↧
↧
Secure way for automatic secondary Authorisation?
Hi,
I making a game to go onto the Oculus Home platform with the first version and possibly using GameSparks to do some of the backend things like storing player data and and keeping rankings lists etc. GS does have authorisation 'forwarding' for some platforms like Steam and Facebook but not yet for Oculus. It seems I need player accounts to do the data things I mentioned.
As I really don't want to ask players to do a second login, (they're already logged in to Oculus) I was wondering if there's a general strategy for doing this securely?
First I thought I could just generate accounts programmatically but then I realised that of course I need to store the generated passwords somewhere and it would be unsafe to store these on a server so now I'm not sure. Is there a way to do this? Maybe game sparks isn't a good solution in my case.
Cheers
Fredrik
↧
Idea: An open world stealth RPG
I haven't came up with the name yet, but I've had an idea in my head for an open world stealth RPG. It's set in Seattle, has an 18-year-old female protagonist, and mixes human enemies with infected. There's on-foot stealth action and vehicles for transportation. It takes place in the future, roughly in the 2030s, and has a feel that's like today except when noted. I'll break this down, starting with story and then gameplay
Story - Pre Events
The story starts roughly 9 months before events of the game proper. The main character is Alexandria "Alex" Wells. She's Seattle-born, though she's spent some time growing up in Canada with her mother. She's the daughter of Keith Wells, originally from Dover, Delaware, and is a military type who is the head of Lightwatch's Seattle division. Her mother is Kayla Holloway, a native of Halifax, Nova Scotia, Canada, and worked as a nurse, specifically a medic for Canada who assisted the US overseas in a war, where she met Keith. She also has a younger 9-year-old sister, who means the world to her, named Karissa "Kris" Wells. This becomes important immediately.
As you can tell, Alex is half-Canadian, and is more proud of her Canadian heritage than her American one, being disillusioned with how things have gone in the US. Her parents have been divorced for years, not long after Kris was born, and as her youth she spent time in both the US and Canada swapping between her parents. As mentioned, her father works for Lightwatch, which is the biggest private military organization in the world. After winning many victories against terrorists and revolutionaries, Lightwatch has a seat on the United Nations, and has set up in many major cities, which includes Seattle. Keith being a major hero before joining Lightwatch and leading the Seattle division, he is highly respected by just about everyone. Except Alex, that is.
Kayla died three years before the story began, forcing Alex and Kris to live with their father. What has soured her view of him is the fact she knows that he knows how Kayla died, and he refuses to tell her. There were shady circumstances behind Kayla's death, Alex is certain of that, and if her own father can't tell her what it is, then he's not much of a father at all. Naturally, they've had many arguments, and Alex can barely stand look at him in the face. She plans to take care of Kris herself when she is able to, as she has basically been doing when her father was away at work, so Kris won't be alone with someone Alex can't stand.
Before the story begins, she attends high school in Seattle. She's not one of the most popular girls in school by a long shot, but she has her friends. These include Evan Jonas, a nerd/geek who has a not-so-secret crush on Alex but still acts as her friend, Kasumi "Sumi" Asano, an intelligent and kind girl originally from Japan who Alex speaks to about her issues, Kenny McGlynn, a popular jock but also a nice guy open to anyone, Malcolm Hill, an African-American with an equal interest in both hip-hop and geeky things, and Stacy Rose, a rich girl who still has a good heart (though Alex secretly envies her perfect life). But for her friends, there are enemies. There are those who tease her for being the daughter Lightwatch's Seattle head, for not being with the "in crowd", for driving a crappy pickup truck because her father refuses to spoil her, and for not having a Drone (a small, highly expensive supercomputer that projects a hologram). The biggest enemy is the #1 queen bee of the school, Tilly Maxwell. She's rich, enough to tease Stacy for not being on her level, and has made Alex her personal enemy for no apparent reason than to feel better about herself. There is nothing off-limits for what Tilly will do to get under Alex's skin, and that fateful day she takes it too far when she insults her mother. She says Kayla died because Alex was such a bitch that she killed herself to get away from her. Depending on what the player does, that can prove to be a BIG MISTAKE
Story - Current Events
Now, this is where the story begins. Just after her confrontation with Tilly, she's either in her classroom or at the principal's office. It starts with the school being invaded by zombie-like creatures of an unknown origin. At first, it just seems like people limping around, but then they begin enter the school, and in more-and-more numbers. They start biting and infecting those who try to keep them away. This event forces the school to evacuate, and naturally there's a massive panic as students begin scrambling to find an exit as the zombies, or the Infected, as they are known in game. If Alex attacked Tilly, the player controls Alex as she guides her way through school, as she sneaks her way through the hallways, avoiding Infected, and makes her way to the classroom. Alternatively, if the player chose not to attack Tilly for what she said, it starts in the classroom, and the game continues in a cutscene. Basically, the whole class is under lockdown but that won't do them any good. They make their way around, trying their best to avoid Infected, and make a run to the buses. This is where the gameplay really starts. The driver is attacked, and killed, leaving Alex as the one to drive the bus. Alongside her classmates is the teacher and school nurse, who make their way inside.
Then it transitions to the player controlling Alex driving the bus as she goes through the streets of Seattle, ramming any infected along the way. When she gets to a certain point, she realizes that Kris is also in danger at her school, and shifts the bus over to her school (at the protest of some of the classmates, but she's not going to let those people dictate her from not saving her sister). Then she drives to the elementary school, and right on time Kris and classmates run outside. She gets them to get in the bus, and she immediately sets it into high gear. This is when it becomes clear the whole city is under attack by Infected, and the only safe haven is the countryside west of Seattle. One of their relatives has a farm out there, where they can take refuge. The bus drives all the way out to the farm, where all the 40+ residents of the bus take refuge in. It's here where she gets a call from her father. Keith tells her to stay out there, that it's too dangerous for her in Seattle and it would be best to wait until it's declared safe. Western Washington as a whole is put under quarantine by Lightwatch, until it's considered safe. Until then, there's a forcefield set up along with troops with their weapons ready to keep anyone from coming out.
Everything picks up 9 months later. The conditions are miserable, as they've ran out of food and must turn to hunting and gathering to survive. People are going crazy from being unable to leave the place, there are many fighting with each other, and all the while Alex is trying to keep Kris safe and comfortable in the conditions they're in. Then, it all changes one night. The farm is raided by Lightwatch agents, who shoot anyone standing in their way. It's not known why they're doing this, it's just a senseless slaughter. While they kill the adults they find, the children are kidnapped. Some manage to escape during the chaos, either by running away, faking the dead, or flat-out surviving from getting shot. Alex was knocked out during the attack, just before than she saw Kris getting taken away.
The next day, Alex awakens in a bed that was set up by school nurse Margot Page, who managed to survive the raid and is taking care of the wounded. Alex speaks to Margot, realizing in horror how many were killed, and that Kris was kidnapped by the same people who her father worked for. But there was one degree of relief, she learned that all of her friends had to have survived, as none of their bodies were found. Alex gets dressed, wearing a blue jacket with jeans and boots, as well as a scarf around her neck. Her only weapon she can find is a hunter's bow, which she would have to do. She also gets a hold a Drone, which was one of the rich kid's before they were killed. She takes it, realizing it could be useful. Alex takes the keys to the truck the family owned (who sadly did not survive the attack), and sets out to Seattle, torn from the Infected, the people turning on each other, and the corrupt Lightwatch organization, and plans to find both Kris and way out of the hellhole Seattle has become.
Gameplay
The game is an open world stealth game with RPG elements. As there is a mix of both human and Infected enemies, the player often cannot take them head-on. Obviously, an 18-year-old girl from high school with no background in combat isn't going to be much of a fight against a bunch of trained soldiers straight up. But with her trusty bow and arrow, and her patience in stealth, she can pick her enemies off from the shadows. As previously mentioned, her primary weapon is the bow and arrow, which you'll primarily be using. Though you can use guns, you're often advised not to. With a bow, you can silently dispatch enemies while making the perfect shot, and you can retrieve your arrows from the ground after they're used. You'll have to stick to cover, and in the shadows, to be able to survive. There are several kinds of arrows apart from the standard. There are explosive arrows to give enemies a big surprise, poison arrows to deploy a shroud of toxic gas that'll make short work of enemies groups together, and smoke arrows to provide visual denial, for instance. When you sneak up on an enemy, you'll be using your bow to choke them to death. You'll also be using it to make ziplines that'll allow you to get to different places.
The RPG elements comes in with you choosing what kind of skills you'll have, and you'll upgrade your weapons. There are various secrets located in the map for you to find, and sometimes they can provide a nice reward. It takes inspiration from the original Mass Effect trilogy, with options that are like Paragon/Renegade, here called Wish/Fate. A Wish is the good option, a Fate is a bad option, that will decide what you do, which also affects the story. However, it's not always cut-and-dry, as you'll find it easier sometimes to choose Fate than Wish, and going with the good option isn't necessarily going to give you good results.
An example of a Wish has you sparing or saving someone from dying, while a Fate has you either executing them or leaving them to die, just as an example. The first time the choice comes up is when Tilly insults Alex's mother. She grips her fist, and her friends try to tell her that she's better than stooping down to her level. Here, you either choose Wish to refrain from attacking her and listening to your friends, or Fate to beat her within an inch of her life. Another Wish or Fate option is when you arrive at the farm. You gather a bunch of hormone-filled teenagers in a farm after a crisis, and guess what they do? Of course they have an orgy. Choosing Wish will have her disgusted by it, and instead keeping Kris and her friends company. Choosing Fate will have her basically say "Eh, what the hell" and join in on the action.
You also have an open world Seattle as your playground. It's been run-down over the 9 months since the Infected, and a portion of the population has died off. There are various human factions trying to survive at any cost, often at your detriment. You'll be going through Seattle trying to meet up with your lost friends, and get to the bottom of what exactly is going on. The idea is that you'll want Alex to win as she goes through an intense journey, and you'll be guiding her along making difficult decisions and having to live with the consequences. There are vehicles at your disposal, to make traversing the large areas easier. You also have access to music, which you can collect at various spots to add to your library. There are groups of Infected, various hideouts full of crazies, and Lightwatch outposts full of soldiers. There are of course, non-threats out there you can talk to and get quests from to help out the lives of others, for a reward of course.
Well, this is basically what I have in mind and something I've wanted for a while. If there's any questions or suggestions, let me know!
↧
Is text search of forum topics not a thing, or am I just missing it somewhere?
I'd like to be able to search the forums for something like "experience points" or "balancing", but I don't see a text box anywhere in the forums to do that. It's been a while since I've been on the site (before the new version), so I don't remember if this was around before and it's not now, or if I'm just missing it. If this was removed from the site, is there a reason why, or a reason why it's not been added back yet? I didn't see anything mentioned about this in the Staff Blog either.
I only ask because I am looking for other topics about experience point systems in an RPG, but the ~14k topics in the Game Design and Theory forum is a little daunting to sift through manually, even with those filters/custom sort.
↧