12/30/2023 0 Comments Evoland 2 library answers![]() For graphics performance, we are using the GPU vendor tools such as NVIDIA Nsight.For Memory performance and leaks, you can either measure all allocations performed or dump the current whole process memory for later analysis using the Memory Profile API - still undocumented, I'll write about this later.The profiler is non-intrusive so you will be able to profile your game without slowing it down. For CPU performance, we have recently developed a HashLink CPU Profiler that can be used to get insights about where the CPU time is spent in your program.HashLink VM has a very efficient native Debugger for best day-to-day coding experience, directly integrated into Visual Studio Code.We have several of these for HashLink VM: So the main point is that you can easily extend the VM with your own native libraries if you require any, making sure that you are never blocked by waiting for support for a particular native feature.īecause of the VM nature, it's always necessary to have a good set of low level tools to be able to analyze performance. We also have additional platform API libraries for Steam, as well as console integration libraries that are only accessible if you have a registered developer. So far we have various native libraries that get distributed with HashLink such as SDL2, DirectX11, OpenAL(sound), LibUV(sockets), SSL(encryption), and FMT which deals with Zip, Ogg, Png, Jpg and a few other low level file format libraries.Īll of these are open source and part of the HashLink repository here. If done right it allows us to isolate bugs that might come from the low level layer from bugs in application logic. This requires a bit of knowledge of the VM and how to deal with the Garbage Collector, but it's quite a smooth process. While HashLink alone does come with only a small standard library, it can be extended with additional libraries (written in C) to expose new APIs. You can of course have compilation options to have a Development/Release version, but you will always run at full speed, exactly just like the game will be on players computers, and you also get precise call stack traces. For instance our 3D game Northgard requires less than 500 MB of memory to run.īecause of the nature of the VM, it means that unless you compile your code to C, your game doesn't have Debug/Release builds like in C++. It's good at floating point calculus as well, which is important for games, and has been designed so that memory overhead for the garbage collector is only minimal. HashLink VM performs very well for classic Object Oriented programming, but also for a functional programming style. It can also be compiled to C directly and compiled using any native compiler, which we are using for our console ports on PlayStation, Xbox and Nintendo Switch. hl file that can be run with HashLinkVM JIT. The game gets compiled to a cross-platform. Think about it like JavaVM or Mono (used by Unity), but more oriented towards real time games. The core component of this strategy is the HashLink Virtual Machine, which is a fast strictly typed VM for the Haxe programming language. Performance is critical to us because - while we don't do AAA kind of games - we still want to get great graphics and immersive 60 FPS gameplay, without having to spend our coders' precious time on micro optimizations because of low level engine limits. For daily game development we rarely have to deal with it, since we are instead working with a high level languages where hard crashes (mostly) can't happen without having a nice error message. ![]() The native layer is mostly written in C with bits of C++. With the Heaps Forum for Heaps specific questions.With the Haxe Forum for Haxe language questions.In case you have any question or want to discuss parts of what I'm presenting here, you can get in touch with the Haxe/Heaps Community: It works great for us, so maybe it could be useful for some other companies out there. Since I often get asked about how we are making games, I thought it would be nice to share details on all the elements of Shiro's technology stack. Our game engine Heaps.io and the underlying technology and toolset are born from twenty years spent creating games, before at Motion-Twin (the makers of Dead Cells) and since 2012 at Shiro Games ( Evoland, Northgard, Darksburg).Īll of these games - 2D and 3D - have been made using a complete stack of libraries and tools that have been open source from the start, and are still evolving and being maintained.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |