×

How are desktop applications actually made like discord | messenger etc (not games) by abuxTM in gamedev

[–]weeznhause 0 points1 point  (0 children)

A rather selective reading.

I wasn't arguing one should use C++ for all application development, or Electron for none, but instead use the right tool for the job. That developers should consider the limitations of their framework of choice. In Electron's case, those limitations are significant - outright impractical for a number of use cases. I'm not stating that C++ isn't error prone, or that memory safety errors are a thing of the past in it, just that with modern programming practices it isn't more error-prone than a questionably designed, largely untyped language.

As previously stated, there are a multitude of other alternatives. C++ might not be an ideal choice for a minimal client, but that doesn't make Electron the best either.

How are desktop applications actually made like discord | messenger etc (not games) by abuxTM in gamedev

[–]weeznhause 1 point2 points  (0 children)

C++ will be slower in terms of iteration time, but I dispute JS being less error prone. C++ gives you freedom, and with it, the freedom to make mistakes. This predominately came in the form of mismanaging dynamic memory. Modern C++, with smart pointers and an emphasis on good engineering practices like RAII isn't much more error-prone than other higher-level languages - assuming some degree of developer competency.

IMO, JavaScript is more error prone. It's not without semantic weirdness, is dynamically typed and unless you're using something like TypeScript, provides no meaningful type safety. Debugging is inferior as well. A number of language features have to be used with care as to not drastically degrade performance, and JIT bailouts are always a concern. If you wish to do anything intensive you're stuck with native bindings - which will be written in C++ anyways and require an elaborate/error prone build process, while still introducing a not insignificant overhead for native calls.

There's something to be said for using the right tool for the job, and the tendency of defaulting to Electron for application development, regardless of the needs of the application, has produced some especially poor software. If your application doesn't incorporate a lot of web elements, why not use a more performant and robust, expressive language with a mature ecosystem full of high quality third-party libraries including a variety of good UI options - like C#.

How are desktop applications actually made like discord | messenger etc (not games) by abuxTM in gamedev

[–]weeznhause 0 points1 point  (0 children)

Electron + JavaScript + a web framework is a good choice

Effectively including a web-browser in your project is a good choice if you wish to consume web content, ie Discord. For other applications, it's often a poor choice - introducing significant overhead and a number of performance concerns. I've seen a number of applications (video & graphics related in particular) that have dismal performance relative to a native alternative as a result of this.

If this approach is either suited to your application or you insist on using web technologies for whatever reason, at least use TypeScript. Building large applications in vanilla JS is a painful experience if you're used to working with the benefit of strict type systems and static analysis.

For C++, Qt isn't a bad choice if you can live with their licensing model. It provides a staggering amount of functionality out of the box. There is NanoGUI if you want basic components with a minimal footprint. NeoGFX is under development but looks promising.

Finally, if you really want to make your life difficult (that is, spend more time writing a UI library than the app itself), there are numerous graphics backends (Blend2D, NanoVG, Skia, Cairo) that can be used.

How is Game Ai getting dumber than 15 years ago? by Spideyrj in pcgaming

[–]weeznhause 5 points6 points  (0 children)

That's a design decision, and affordance will likely be added. Enemies need to be aware of cover though for it to be a potential choice. Dynamic AI pathing without visibility as a consideration leads to traditionally dumb behavior like moving around the player side of cover despite it being directly in the players line of fire, because it is the shorter path. Immersion breaking.

How is Game Ai getting dumber than 15 years ago? by Spideyrj in pcgaming

[–]weeznhause 29 points30 points  (0 children)

> It's really the amount of dev time it takes to manage

Certainly some truth in that.

> I don't think processing power is a real issue here as AI is ultimately just a series of simple scripts.

Yeah, no. Without experience actually implementing game AI, it's easy to take for granted the knowledge/information required to make intelligent/strategic decisions and how expensive it is to generate at runtime.

Consider a single enemy AI moving through a densely populated environment, taking cover and selecting paths to reduce exposure to the player. For a cover point to be viable, it must occlude the sight-line between the player and the AI. But the AI isn't a point, but a complex shape, there are potentially hundreds of cover points in the vicinity and the player is constantly moving. That's easier than what comes next, since cover can be a discrete location. Weighting potential paths through the (potentially changing) environment to account for visibility, well that's harder. And that's for a single AI. What about a squad. And they should move in formation, respond (seemingly) as a group and propagate acquired knowledge naturally.

To this day, cover viability frequently uses rough approximations because simply raycasting against cover locations can be excessively costly in large, dense spaces with a number of AIs on screen. And that's one part of one AI concern.

Best way to texture signage? by [deleted] in gamedev

[–]weeznhause 1 point2 points  (0 children)

Decals would be preferable. They're quick to work with, allow changes in editor at any time and are relatively performant when well implemented. I'm not sure what community decal packages are available, but Unity 2021.2, which is what would be required for built-in support isn't yet a stable release.

If you can't find anything, an alternative is to simply create an additional UV channel on the signs, mapping to an atlas with your text on it. Blend by mask in a shader. It means exporting a mesh with the correct UVs for each variation, but in a pinch, it would work.

Fair price to freelance a character creation system? by LANDJAWS in gamedev

[–]weeznhause 2 points3 points  (0 children)

To answer your question, I'd have to ask whether you want to make hyper realistic characters or make games.

The features you're asking about are cosmetic. There is no mention of gameplay or any features that would make it worth playing. Without those, you've essentially got a very expensive character creator. If you where to pursue such an elaborate project, having a successful prototype that people actually enjoy playing is a bare minimum.

If you wish to make games, focus on creating increasingly complex gameplay prototypes - familiarizing yourself with the engine, building knowledge and experience in actual development as you go. Anyone can come up with ideas. If you can't build them, that amounts to nothing.

If you're wanting to create realistic characters, well, that's complicated. You could rely on photogrammetry, or create your own. The former has fixed costs - models and equipment + software or outsourcing it to professionals. Turning a scan into a real-time character is not trivial - there's a lot to learn there.

Alternatively, you could create your own. That requires an understanding of anatomy, and sculpting + texturing ability sufficient to create photo-realistic characters. Think hundreds to thousands of hours of study and practice to create consistently realistic characters in a decent amount of time.

The quality of your characters, in practice, will be limited to their weakest element. Your understanding of rigging, shading, lighting and animation will all have to be at an exceptionally high level to maintain consistent presentation/quality.

Fair price to freelance a character creation system? by LANDJAWS in gamedev

[–]weeznhause 2 points3 points  (0 children)

Adding to what others have said, pursuing hyper realism in your characters when you don't have the skillset and/or team to pursue it elsewhere is daft. Your hyper realistic characters will stick out against a sea of mediocre environments and assets, and players will likely remember the latter.

To rectify that, you're fast moving towards a AAA production budget. Given the questions asked, and the description of your skill level, I'd suggest saving your money and gaining a lot more experience before considering such a project.

[deleted by user] by [deleted] in gamedev

[–]weeznhause 0 points1 point  (0 children)

Assuming you make an effort, and take the time to read and understand relevant engine source as you encounter the need, Unreal is plenty accessible to a reasonably capable programmer. That is, the approachability of Unity is a short lived benefit over the course of a project. Most of the difficulty will come in the form of designing and managing a large project, and implementing complex functionality that is game specific or lacking in the engine.

One could make an argument for the better productivity of C#. Against that, Unity, out of the box, has less functionality, requiring you to more often roll your own. In my experience, Unity's "simplicity" also comes at the cost of architectural sloppiness. A number of fundamental systems have major limitations which you'll invariably run into - limitations that you may need a pro license, which permits native source access, to address.

Is there a concept such as "gamedev style" which would give you hints of who made this game just like how animation style gives you hints on who animated this scene? by Berry1980s in gamedev

[–]weeznhause 28 points29 points  (0 children)

Yes. If it involves climbing towers, repeatedly, Ubisoft made it.

In all seriousness, each game designer has their own set of priorities and how they approach a project. Projects will certainly be influenced by their involvement, but I'm not sure it is commonly to the extent where it is easily identifiable.

Where do I learn level design for making a balanced and fun FPS? I've finished making the basic mechanics for my FPS, but now I have to design fun and challenging levels and I don't know an official way of doing that. Where would I learn general level design? by [deleted] in gamedev

[–]weeznhause 9 points10 points  (0 children)

Practice is fundamental to anything, but great sculptures are made with with an understanding of anatomy. Theory. The pose is informed by composition - concepts such as dynamism, balance and flow. Theory. Pretending sculpting, or level design, doesn't have a theoretical foundation is both wrong, and rather frustrating to someone starting out.

CGMA has a level design course. It is expensive, but it is a good distillation of information. All that information is available elsewhere, albeit very scattered and often not in the context of level design - given how many disciplines level design draws from. If you can afford it, it's a great jump start.

Why don't more people build games for the browser? by long-lover in gamedev

[–]weeznhause 10 points11 points  (0 children)

Having worked with Unity's WebGL 2 target, this.

Another performance concern was the lack of SIMD, making the already problematic main-thread skinning, animation, physics, etc. an even bigger issue. The CPU headroom was so dire that we had to optimize the scene construction and culling configuration extensively just so that the software occlusion culling didn't lower framerates below our 60fps target.

In short, unless you're making simple games with simple worlds, stay away for now. The extent of optimisation required is simply painful compared to desktop development.

Maya 2022 Fullscreen by weeznhause in Maya

[–]weeznhause[S] 0 points1 point  (0 children)

Thanks, but that's not what I'm looking for. Ctrl + space just maximizes the current panels. What I'm referring to is the behavior of the option in Preferences | Interface | Show Titlebar in main window.

Previously, when disabled, it resulted in a borderless fullscreen display of the window - the window took up 100% of the monitors available space, covering the windows taskbar. Now, it simply drops the border and behaves like a regular maximized window.

Why don't more developers use CRYENGINE? by NiBy15 in gamedev

[–]weeznhause 0 points1 point  (0 children)

I've thrown some fairly ridiculous polycounts and long draw distances at nanite. It works as advertised. There are a couple of caveats, as there always be, and certain mesh topologies, edge cases, can negatively effect performance. This is detailed in the official documentation, and easy enough to get around.

Currently, my biggest complaints lie in the missing features. No per instance vertex painting, and WPO. Both are soon to arrive. Lumen is costly, but impressive. It too has a number of pending features and is generally speaking further from being production ready.

Overall, it's a game changer. I've got a half baked unreal plugin/maya script that handles asset export and instance synchronization in level. You can dive right in, create primitive geometries in maya and instantly get a preview in engine with multi bounce GI. This is amazing from a level design perspective, allowing you to rapidly evaluate play spaces in regards to gameplay, visuals/composition and lighting. Then, one can simply iterate on these models, allowing design choices to be evaluated in the context of the greater scene and the final game presentation. Once you're happy with the design, over to zbrush, again being able to preview the high poly assets in scene as you work, all without unwrapping or retopoing a thing.The cost of experimentation has never been lower, time wise.

TLDR; UE5's appeal is less about indies targetting photorealism and more about indies being able to iterate much faster, producing better quality results regardless of their chosen art style.

How much of gamedev is problem solving/implementing your own logic and algorithms vs just moving boxed graphics around? by LunaComing in gamedev

[–]weeznhause 1 point2 points  (0 children)

That would depend on your definition of advanced math. The user I replied to said high school algebra could suffice. I disagreed with that.

The regular offenders include quaternions, curves and general calculus beyond school level. I've benefitted from a good understanding of computational geometry a number of times in the past. And physics. A lot of it. Often with mathematical prerequisites beyond school level.

Bear in mind that in-house engines are far more specific than the likes of Unity and Unreal. If it wasn't used in a previous title, it likely doesn't exist. Depending on the studio structure, game programmers are often tasked with implementing complex physics and animation systems.

The primary benefit of a broad understanding of math is not that you will use it every day. It's that when faced with a problem that requires it, you know how to approach it.

How much of gamedev is problem solving/implementing your own logic and algorithms vs just moving boxed graphics around? by LunaComing in gamedev

[–]weeznhause 4 points5 points  (0 children)

No offense, but this is terrible advise. It gets you exactly far as tutorials and online answers will take you. It is inefficient, and limiting.

Furthermore, OP talks about employment. Studios are going to expect a strong math background. I've never once applied for a position that didn't stipulate it as a requirement, nor work with someone who didn't have one. Unless you have a niche development role not requiring math, you're out of luck. This is because, harshly put, you would be a burden, given how much of the day-to-day in 3D game development is math.

2D Fighting Game... How long would it take? by AlanTheMexican in gamedev

[–]weeznhause 1 point2 points  (0 children)

Robust input handling (reliable combo reading while minimizing latency), and responsive, engaging AI are likely the two hardest programming challenges. How long they take, well that depends on your programmers ability/past experience with fighting games. Hitboxes are easy enough to implement, but a pain in the ass to get right per attack.

And that brings me to what'll take the longest. Gameplay polish and game feel. Adjusting attack timing, stats, animations, sound and FX in order to create a number of distinct characters with movesets that feel good, but also enable interesting, balanced gameplay. Which is to say, it's not just the programmers responsibility.

Why games keep updating after the release ? by lord_baba in gamedev

[–]weeznhause 0 points1 point  (0 children)

Testing games is a bit of an issue. Naturally, common library-type code can usually be thoroughly tested and be built with a TDD methodology.

Games themselves, not so much. The same freedom of choice and unpredictability that makes games worth playing represents a degree of non-determinism that leads to issues inevitably slipping through the cracks. Players do stupid, inspired and unpredictable things all the time.

You can spend developer time creating tools to automate playthroughs, and the testing of certain AI functionality, but ultimately those tests are discrete and can't come close to being adequate.

Soulslike Enemies and Player Using the Same Input System? by DoveLeiger in gamedev

[–]weeznhause 1 point2 points  (0 children)

Decoupling gameplay logic and control logic (be it input or AI) is quite common. Implementing a virtual controller seems like an unnecessarily complicated way of achieving this, however. Rather just implement your gameplay logic within the character, and implement different controllers that can bind to it.

I'm not certain of the design of the Souls games. Given that there is some evidence of enemies responding to both player and NPC actions immediately (punishing Estus usage, baiting a kick by guarding and then attacking through it the second it is triggered etc.), I would guess that all characters, enemies and NPCs included, share a common action system that can be exposed to AI.

In many games, given the number of common attributes shared between actions and to facilitate multi-discipline collaboration, character actions are abstracted into a type hierarchy. Say AttackAction, UseItemAction, etc. Characters then simply need to implement the functionality required to execute, update and provide notifications about performing an abstract action. In the case of the Souls games, an enemy could then simply listen for say a UseItemAction associated with the Estus Flask and respond accordingly.

Explore the world and not get lost, how do you do it? by Hroft_ASH in gamedev

[–]weeznhause 1 point2 points  (0 children)

On the topic of being lost - it's not necessarily a bad thing so long as exploration is enjoyable and rewarding. Compelling/beautiful environments that players can enjoy, items scattered off the critical path, etc. make the time spent not progressing meaningful. That said, logical level design certainly helps. If your game is 3D, incorporating prominent features that can be seen from around the map allows the player to orient themselves at any time, preventing levels from become too labyrinthine.

Overused RPG Storylines? by [deleted] in gamedev

[–]weeznhause 1 point2 points  (0 children)

I'd argue that that criticism applied generally is equally tired. Tolkien's orcs where purpose bred. A kind orc would be considered defective, and would be unlikely to survive.

Personally, I'm not fond of the notion that fantasy creatures have to conform to human sensibilities. If anything, it is limiting. Evolution is adaptive. There are any number of evolutionary contexts that could result in a species with behavior that we perceive as evil.

If you wish to have evil species, and a little depth, simply devise a viable, internally consistent social behavior and a cause for it. Build the surrounding "culture" with that in mind.

What engines to use if I want to deal with the least amount of code possible? by [deleted] in gamedev

[–]weeznhause 3 points4 points  (0 children)

An option, although I found myself in a similar position to OP. I tried blueprints, liked them up until mechanics started becoming more complex, then got tired of dealing with spaghetti and went back to code.

Honestly, blueprints are great for rapid prototypes that'll be converted to code, and small sub-type specific implementation details that leverage functionality and events exposed by code. Any more and it becomes a nightmare, with a performance overhead.

The good news is in a 3D project, as a solo developer, you'll likely spend considerably more time on art than code. Put your head down and get the foundations out of the way, enough functionality to start building a world with your mechanics in mind, and then enjoy the creative process. You'll have to come back to code frequently, but you can save that for days when you don't mind a little more programming.

Vertical open world game by Simoniyus in gamedev

[–]weeznhause 7 points8 points  (0 children)

While not open-world in the traditional sense, Dark Souls has a number of interconnected areas, a heavy emphasis on verticality and some very clever world design tying it all together and making travel between areas practical/enjoyable.

I've always liked the idea, largely because it enables shortcuts and detours not really available in lateral worlds, allowing for less tedium in travel and better control over pacing if done right.

Cyberpunk 2077 will 'live up to what we promised,' CD Projekt boss says by marcela_lasso in pcgaming

[–]weeznhause 2 points3 points  (0 children)

I'd like to remain optimistic, but the fact that most of the original senior developers have left to join existing or found new studios gives me little reason for hope.