Game Engine 3 — A Shell for Visual Game Programming in Python

Hello, Habr! Today I want to tell you about my project — “Game Engine 3”, a software shell for creating 2D games and applications...
Game development
Hello, Habr! Today I want to tell you about my project — “Game Engine 3”, a software shell for creating 2D games and applications...
Manual resource management in low level C-style C++ code might be annoying. It's not practical to create good enough RAII wrappers for every single C API you use, but approaches with goto cleanup
or loads of nested if (success)
hurt readability.
A defer
macro to the rescue! The deferred lambda will be executed on scope exit, no matter how it happens: you can return
from any point, throw
an exception (if allowed), or even use a goto
to an outer scope. It is truly zero-cost and doesn't rely on C runtime or standard library, so it can be used even in kernel development.
When creating an app or any other software product for children, one of the hardest parts of the process is conducting user research correctly. Although working with kids might seem fun and entertaining, it takes certain skills to get them engaged in testing your product and voicing their opinion so you could gather all the necessary information. It’s important to understand that mentally kids function differently than adults, so working with a young target audience requires a different approach. Treating children like adults in the UX research process can lead to serious mistakes: they might not get a proper understanding of your product and you might end up getting wrong results, only wasting your time and budget. In order to avoid that, we’ve collected a few tips below that might help you communicate with kids more effectively for a productive and fruitful research session.
Let’s say you’ve created your own USTRUCT
in C++ and now you want to serialize it.
Usually, it’s enough to simply mark the desired fields with SaveGame
. But here’s the problem — in order for this to work, the fields themselves must support serialization.
Unfortunately, one of our variables doesn’t.
In my case, it’s a struct called FNonSerializableStruct
. Because of that, only the second struct gets serialized, even though we marked both with SaveGame
.
If you’ve been working with Unreal Engine for a while, you’ve probably come across nodes that let you call a function now and get the result later — while also continuing execution once the function completes.
I needed to create a category panel for placeable items in the UI — like the ones you see in city-building games. As a legacy, I inherited a ready-made UENUM
, which may be modified in the future.
Naturally, I didn’t want to manually create and tweak every single widget — especially knowing that the list of categories might change later. I wanted something simple and reusable: just run a For each loop
, generate everything on the fly, and ideally make it work for any enum, not just this one.
And there was a way! When you define a UENUM
, Unreal automatically generates all the metadata and creates a corresponding UEnum
object, which is a UObject
. All you have to do is use that data properly.
Over the past two years, artificial intelligence has become one of the main topics in the media and many famous people have expressed their thoughts on this topic. But if you start searching on the Internet for collections of quotes about AI, you will mostly find quotes from CEOs of multi-billion dollar companies, futurists and scientists conducting research in this field. Moreover, these collections are so similar to each other, which sometimes gives the impression that they were compiled by AI. In this article, I have collected quotes from world famous people who are usually not included in such collections of quotes:
We are the Arcane Gaming development team, developing games since 2021. As of now, we have two major projects: Fanbattle and Suetologia. The time has come for us to take part in the Ludum Dare gaming hackathon for the first time.
UX testing is one of the most important parts of the UX design creation process for any software product. It helps to understand whether users are satisfied with the design and highlights its problematic areas that need to be fixed or improved. UX testing is an important part of the whole testing process - it helps to get beta-testers feedback to determine whether the product is comfortable for users and gives opportunity to improve problems and issues before moving on to the next stage of the development process. It also contributes to reducing the cost of development, as it is much cheaper to fix issues during the development process rather than after the release. Listed down below are 5 simple tips that can help perform UX testing in a proper and effective way.
How to design an economy for your game? The answer to this question might require a series of lectures or articles. The fundamental difference in the approach is based, first of all, on monetization model: F2P or B2P. The second thing that defines the approach to developing an economy system is game genre. This article reviews the case of designing the game economy for a B2P (premium) game, which doesn’t involve earning on microtransactions.
In my just released game “Protolife: Other Side” I have the destructible landscape. Creatures that we control can make new ways through the walls. Also, some enemies are able to modify the landscape as well.
Let me describe how it may be done on the Godot engine.
Hello, dear users of the IT world!
In the era of active development of web technologies and interactive applications, 3D-graphics is becoming more and more relevant and in demand. But how to create a 3D application without losing the advantages of web development? In this article, we will look at how to combine the power of Three.js with the flexibility of React to create your own game right in the browser.
This article will introduce you to the React Three Fiber library and teach you how to create interactive 3D games.
One of the common tasks that both beginners and experienced game designers face is describing a large amount of content to pass its parameters to the engine. This is not an easy task, given that it is very difficult to find materials on the technical aspects of game design. Well, let’s figure out how to transfer data to the engine.
I just started to learn Game Development, and decided to run write my personal blog about it. So there you can find information(resources, blogs, courses, books) that i've gathered and my personal problems with learning)
Image Credit: amazonspreview.com
Cricket in India is more than just a game and for most of it is a matter of pride and unity. As we all have grown up playing cricket and everyone knows all about its rules and techniques that are quite interesting. Over the last few years, the Indian premier league is the latest and most renowned version of cricket that has 20 overs. Within a short span of time, it has become one of the best sports traditions in India.
Day by day the fanbase of IPL is increasing and there are many IPL live streaming cricket apps, where you can enjoy IPL matches.
In this article, we will count everything you should know about IPL 2023.
IPL 2023
The IPL is a professional T20 cricket league in India that was first begun in 2007 by the Board of control for cricket in India, and in 2023, it will be the 16th season of the premier league. Basically, it is contested by ten teams and annually it is held in summer across India between March to May.
So, here is the team of IPL 2023.
IPL 2023 Teams
Here is the list of the total teams of IPL 2023 and its players.
The title of the article is a question I was asked in an interview for a Middle position. In this article, we will look at Unity coroutines, what they are, and at the same time we will capture the topic of Enumerator \ Enumerable in C # and a little secret of foreach. The article should be very useful for beginners.
In this article, we will look at a way to give the user the ability to upload any files, such as textures. And let's touch on the topic of launching JS functions from C# within Unity. As a result, we will get a script that, by calling just one function, will open a window for selecting files.
After Epic released the UE5 technology demo at the beginning of 2021, the discussion about UE5 has never stopped. Related technical discussions mainly centered on two new features: global illumination technology Lumen and extremely high model detail technology Nanite. There have been some articles [1 ][2] analyzing Nanite technology in more detail. This article mainly starts from the RenderDoc analysis and source code of UE5, combined with some existing technical data, aims to provide an intuitive and overview understanding of Nanite, and clarify its algorithm principles and design ideas, without involving too many source code level Implementation details.
Lumen is UE5’s GI system, it is different from the traditional real-time GI which only includes the contribution of indirect diffuse reflection. It also includes indirect diffuse reflection and indirect highlight, providing a new set of complete indirect lighting. Lumen supports both hardware-based RTX and software-based Trace algorithms. The starting point of this article is that Lumen GI uses the process, algorithm, and data structure analysis of indirect diffuse reflection part based on software Trace to understand the basic principle and operation mechanism of Lumen from a macro perspective.
The core of Lumen includes the following parts: