So, after a long absence I have begun a big project: Acclimatize! Together with my sister, I want to create a game similar to those of Minecraft and Satisfactory which allow the player to use an open world to gather resources and explore. The difference, however, to this game is that nature and the climate […]
News
New Project!
It has been a long time since I added any news to my website due to the amount of time school has been taking up in my life. That being said, I’ve finally started on a new project (But I must delay Infinity because the low-level programming requires constant exposure to master). Seeing how schools […]
Start of GUI System
I’m starting to work on a GUI system now. My plan is to have a GUI system fully equipped with a constraint system (positioning), animation and client callback functions. While it might not seem like much, I implemented the root of this system: the Infinity::Aleph::GuiCore class. All of the GUI elements will be contained inside […]
Api Rework and State Machine
I spent a lot of time reworking the API and implementing a state machine. State machines allow the client to segment the flow of their game more naturally and manage resources easier. All code must be put into an Infinity::State subclass in the future.
Multiple Windows
I finally managed to change my engine to support multiple user-created windows. The main window is created by the engine (But an event can be handled by the client before the creation to change the initialization parameters of the main window), but the client can create more sub-windows if he chooses. If the user presses […]
.OBJ File Parsing
Today I implemented an OBJ-parser. This parser loads an .obj file and spits out an Infinity::Model* object. I had to iron out some memory leaks and performance issues (that being said it still takes about seven seconds to load the Stanford dragon model), but now it works 🙂 After further testing, I realized that it […]
Blending and Culling
Last week, I implemented a rasterizer class to control some low-level functionality like blending and culling. While the rendered image below used alpha-clipping and alpha-blending combined, images with non-zero and non-one alpha components could have been rendered too.
Zero Warnings!
I finally took it upon myself to eliminate all warnings in my Infinity code base. Sadly, my dependencies still contain some annoying warnings (uninitialized member warnings, ect.). However, my compile output is completely clean now 🙂 No dll-interface warnings, no implicit cast warnings and no other warnings!
Virtual Cursor Space
In the last commit, I added virtual cursor space and cursor enabling/disabling. This basically means that you can hide (disable) the cursor and move it around indefinitely without bounds (very useful for first-person cameras). In the following image, you can see that I added cursor-based pitch and yaw rotation to my camera.
Perspective Camera
To finally support some basic 3D rendering, I added the PerspectiveCamera class. This camera represents a movable observer in 3D space with an FOV, pitch, yaw and roll rotation, near and far clipping planes and position. I added some helper functions so moving in the XZ-plane relative to the yaw angle is aided. (See GitHub […]