- Tasks in priority order in descending priority, the most urgent ones first. Check when ready and move to the section Ready, when ready.
- BUG Fix bug on console size after changing window size small enough. (to be fixed in the
Widget
implementation) - BUG Fix bug that current console line is not visible after a lot of output produced e.g. by
info
in a small window size. (to be fixed in theWidget
implementation) - BUG Fix unit tests on a debug build. "ofbx.cpp:3575: ofbx::Object* ofbx::Object::getParent() const: Assertion `parent == nullptr' failed."
- YLILISP Implement abstract syntax tree (AST) creation code for YliLisp.
- YLILISP Create a basic implementation of YliLisp interpreter (YliLisp is a statically typed Lisp-1 type multiparadigm scripting language).
- YLILISP/CONSOLE Convert
Console
into a proper YliLisp REPL that supports S-expressions like a proper Lisp REPL. - ONTOLOGY/GUI Implement
yli::ontology::Window
class. - ONTOLOGY/GUI Implement
yli::ontology::Widget
class. - ONTOLOGY/CAMERA/GUI Implement
yli::ontology::CameraWidget
class that inheritsyli::ontology::Widget
. - TEXT/UI Implement proper bitmap font rendering: https://learnopengl.com/In-Practice/Text-Rendering
- TEXT/UI Implement proper vector font rendering using FreeType and HarfBuzz: https://learnopengl.com/In-Practice/Text-Rendering
- TEXT/UI Change terminal font to APL385. https://apl385.com/fonts/index.htm
- TEXT/UI Change general purpose font to Canada1500. http://typodermicfonts.com/canada1500/
- GUI Add support for multiple windows.
- GUI Add support for multiple widgets in each window.
- ONTOLOGY/LISP/GUI Implement
create-window
built-in YliLisp function. - ONTOLOGY/LISP/GUI Implement
create-widget
built-in YliLisp function. - TOOLS Design initial software architecture for YliEdit and HirviEdit editors (HirviEdit is a specialization of YliEdit for Hirvi and Hirvi-Demo).
- TOOLS Implement YliEdit and HirviEdit editors' prototype.
- DATA/VULKAN/RENDERING Use displacement fields for height map rendering, like in Far Cry 5.
- VULKAN/RENDERING Add Vulkan support.
- OPENGL/RENDERING Remove OpenGL support.
- LIBRARIES/DATA/TERRAIN Use libgeotiff to load GeoTIFF elevation model 2 m heightmaps of the National Land Survey of Finland. https://github.com/OSGeo/libgeotiff
- TOOLS/DATA/TERRAIN Convert heightmaps into a custom format with precomputed vertices, UVs, and normals, ready to be loaded into GPU.
- MATH/RENDERING Implement shadows.
- RENDERING Implement skybox.
- RENDERING Add support for screenspace effects.
- RENDERING Implement Larusse fire clouds. See Complex - Dope for a reference: https://youtu.be/HtXxM0pezAs
- RENDERING Implement pattern vectors. See Renaissance - Amnesia for a reference: https://youtu.be/sxW6CW0RWlg
- MATH/RENDERING Implement L-system trees. https://en.wikipedia.org/wiki/L-system
- BUILD/LIBRARIES Make GLEW a Git Submodule: https://github.com/nigels-com/glew
- BUILD/LIBRARIES Make libpng a Git Submodule: https://git.code.sf.net/p/libpng/code
- ONTOLOGY/SHAPESHIFTERS Implement
yli::ontology::ShapeshifterTransformation
, whose children areShapeshifterForm
s andShapeshifterSequence
s. - ONTOLOGY/SHAPESHIFTERS Implement
yli::ontology::ShapeshifterForm
, inheritsEntity
. - ONTOLOGY/SHAPESHIFTERS Implement
yli::ontology::ShapeshifterSequence
, whose apprentices areShapeshifter
s. - ONTOLOGY/SHAPESHIFTERS Implement
yli::ontology::Shapeshifter
, child ofScene
, apprentice ofShapeshifterSequence
. - BUILD Implement building on GitHub Actions Windows runner.
- ONTOLOGY Enable support for referring to master in the factory functions by using master's global name instead of master's memory address.
- LIBRARIES Replace OpenFBX with fastgltf. https://github.com/spnda/fastgltf
- ONTOLOGY/AUDIO Create
yli::ontology::AudioTrack
class that inheritsEntity
. - ONTOLOGY/AUDIO Create
yli::ontology::PlayList
class that inheritsEntity
. - ONTOLOGY/DATA/EVALUATE Evaluate Far Cry 5 terrain rendering talk: https://www.gdcvault.com/play/1025261/Terrain-Rendering-in-Far-Cry
- ONTOLOGY Implement
yli::ontology::Mission
class that is a child ofUniverse
and has programmable logic for evaluating the success. - LIBRARIES Integrate libjpeg-turbo into Ylikuutio. https://github.com/libjpeg-turbo
- UI/TESTS Write unit tests for keyboard callback snippets.
- PHYSICS Implement
yli::ontology::RigidBodyModule
class (to be used as a component ofMovable
) to be used for Jolt Physics. - LIBRARIES/PHYSICS/EVALUATE Evaluate Jolt. https://github.com/jrouwe/JoltPhysics
- LIBRARIES/PHYSICS Implement rigid body physics using using Jolt. https://github.com/jrouwe/JoltPhysics
- CONSOLE/UI Add support for Tab complete for local names in
Console
. - CONSOLE/UI Add support in
Console
for indexing the children of anEntity
through theRegistry
andParentModule
, e.g.foo_entity.bar_children[0]
. - CONSOLE/UI Add support in
Console
for indexing the apprentices of anEntity
through theRegistry
andMasterModule
, e.g.foo_entity.bar_apprentices[0]
. - DISPLAY/UI Add support for high DPI displays.
- TOOLS Implement new
yli_convert
program that converts ASCII files of elevation model of National Land Survey of Finland into custom.yli
binary format. - ONTOLOGY/DATA Implement
yli::ontology::HeightmapStruct
that inheritsyli::ontology::EntityStruct
, to support heightmaps consisting of several sheets. - ONTOLOGY/DATA Implement
yli::ontology::Heightmap
class that inheritsyli::ontology::Entity
, to support heightmaps consisting of several sheets. - ONTOLOGY/DATA Implement
yli::ontology::HeightmapSheet
class that inheritsyli::ontology::Species
, to handle each sheet of a multisheet heightmap. - ONTOLOGY/DATA Implement support for loading multiple sheets of elevation model of National Land Survey of Finland at once.
- ONTOLOGY/DATA Implement support for multiple water levels within a
Scene
. - ONTOLOGY/DATA Plan data structures suitable for 3D model loading with zones with different LOD levels (at any given time).
- ONTOLOGY/DATA Add support for OpenStreetMap data: https://www.openstreetmap.org/ (needed for roads, rail network, tram network, road names)
- ONTOLOGY Add
scale_up_limit
Variable*
of typeuint32_t
toHolobiont
to control the automatic creation of additionalBiont
s. - ONTOLOGY Add
scale_down_limit
Variable*
of typeuint32_t
toHolobiont
to control the automatic deletion of excessiveBiont
s. - ONTOLOGY/DATA Add support for 3D model of Helsinki: http://www.hri.fi/en/dataset/helsingin-3d-kaupunkimalli http://www.hri.fi/fi/dataset/helsingin-3d-kaupunkimalli
- ONTOLOGY/MATH Add support for setting
Biont
-specific coordinate adjustments withcoordinates_adjustments
vector inHolobiontStruct
. - GUI Add support for multiple displays.
- MATH/RENDERING Implement support for multiple light sources in each
Scene
. - RENDERING Implement deferred rendering.
- RENDERING Implement post processing.
- MATH/RENDERING Implement HDR rendering.
- UI Add support for different keyboard layouts in
Console
. - REFACTOR Convert local variables of
Application::create_simulation
implementations into heap-allocated ones so thatUniverse::start_simulation
can be called frommain
. - REFACTOR Call
Universe::start_simulation
frommain
instead ofApplication::create_simulation
implementations. - LIBRARIES/GUI/EVALUATE Evaluate Dear ImGUI: https://github.com/ocornut/imgui
- YLILISP Modify
set
console command so that setting a value is done usingset 'value foo bar
orset 'value foo bar baz
('value
must be used). - YLILISP Modify
set
console command so that setting a global name is done usingset 'global-name foo bar
. - YLILISP Modify
set
console command so that setting a local name is done usingset 'local-name foo bar
. - YLILISP Implement continuations for YliLisp by logging the last relevant successful
Variable::set
function call for eachVariable
and setting that again when needed. - YLILISP Implement closures for YliLisp.
- AI Implement A* route finding. https://en.wikipedia.org/wiki/A*_search_algorithm
- OPTIMIZE Implement octree segmentation.
- OPTIMIZE Implement frustum culling using bounding spheres.
- ANIMATION Implement skeletal animation.
- CONSOLE/YLILISP/ONTOLOGY Implement creating new named
Variable
s usingConsole
. - MATH Plan coordinate systems and physics for interplanetary/interstellar/intergalactic travel.
- TERRAIN/VOXELS Implement voxel world (
yli::ontology::ChunkMaster
,yli::ontology::Chunk
). - TEXT/UI Add support for changing font size.
- RENDERING Implement transparent rendering of 3D objects.
- RENDERING Implement transparent rendering of 4D objects.
- WATER/RENDERING Implement dynamic not flowing water, using Vulkan shaders.
- TEXT/GUI Implement better font support.
- BUILD Use precompiled headers with
target_precompile_headers
in CMake: https://cmake.org/cmake/help/git-stage/command/target_precompile_headers.html - NETWORK Evaluate network libraries (code quality, platform & crosscompiling support, MinGW-w64). https://stackoverflow.com/questions/118945/best-c-c-network-library
- NETWORK/LIBRARIES/EVALUATE Evaluate ZeroMQ: https://zeromq.org/
- NETWORK/LIBRARIES/EVALUATE Evaluate SDL_net: https://www.libsdl.org/projects/SDL_net/
- NETWORK/LIBRARIES/EVALUATE Evaluate Asio (nework and low-level I/O library): https://think-async.com/
- NETWORK/LIBRARIES/EVALUATE Evaluate cpp-netlib (network library): http://cpp-netlib.org/
- NETWORK/LIBRARIES/EVALUATE Evaluate kNet (network library): https://github.com/juj/kNet/ (used by Urho3D: https://urho3d.github.io/ )
- NETWORK/LIBRARIES/EVALUATE Implement chat server using the chosen network library.
- NETWORK/LIBRARIES/EVALUATE Implement chat client using the chosen network library.
- RENDERING Implement software rendering.
- Remove
dynamic_cast
of YliLisp function dispatch by storing inRegistry
instead ofyli::ontology::Entity*
astd::variant
. - Split
ylikuutio
library intoyli_core
,yli_vulkan
,yli_network
,yli_server
, andyli_client
libraries. All libraries depend onyli_core
. - Implement turn file sending over the network into
yli_client
. - Implement turn file receiving over the network into
yli_server
. - Implement processing of turn files in
yli_server
. - Implement
yli::ontology::Multiverse
class. - Evaluate OpenCV: https://opencv.org/ https://github.com/opencv/opencv
- Evaluate LLaVA: https://llava-vl.github.io/ https://github.com/haotian-liu/LLaVA
- In
yli_server
, implement creation of the masterUniverse
, that is a child of theMultiverse
and knows everything.. - In
yli_server
, implement creation of apprenticeUniverse
s, one for each player. - In
yli_server
, implement computing turn outputs to each human and AI player, using software rendering for computing visual detection and rendering turn videos. - In
yli_server
, implement producing result files for players. - In
yli_server
, implement sending result files for players over the network.
- AVARUUS/YLIAVARUUS Port N-body Newtonian star simulation into C++
- MATH Plan n-body star simulation of Milky Way stars.
- MATH Plan the simulation of black holes.
- MATH Plan the simulation of merging of 2 black holes.
- MATH Implement simulation of the merging of supermassive black holes Sagittarius A* and the one in Andromeda.
- Add support for hexadecimal input in
set
console command. - Implement
yli::ontology::PipelineSymbiosis
. - Add support for .yli loading.
- Add support for exporting as .yli in
yli_convert
. - Implement saving commands into a file that can later be loaded using command line parameter
--input-file
in Hirvi and Ajokki. - Implement command line parameter
--input-file
to Hirvi and Ajokki (load keypresses and keyreleases from a file, e.g.--input-file foo
or--input-file=foo
). - Implement command line parameter
--debug
to Hirvi and Ajokki (log all kinds of debug information). - Add
Scene
loading commandload
into console. - Implement
play
console command for playingSound
s andPlaylist
s. - Implement
pause
console command for pausingSound
s andPlaylist
s. - Implement
next
console command for changing to the nextSound
in aPlaylist
. - Implement
prev
console command for changing to the previousSound
in aPlaylist
. - Add support for automatic detection of optimal window size.
- Implement modifying of vertices.
- Implement generation of terrain meshes in different levels of detail (LOD) using different
x_step
s andz_step
s (e.g. 1, 2, 4, 8, 16, 32, 64, 128). - Implement terrain mesh LOD selection based on the distance between the camera and the terrain.
- Implement marching cubes algorithm for voxel terrain as described in https://transvoxel.org/Lengyel-VoxelTerrain.pdf .
- Write code to convert ASCII grid files (height maps) to binary GLTF files, storing also interpolated vertices, UVs, and normals.
- Implement scene loading which works in the background.
- Evaluate AppVeyor: https://github.com/marketplace/appveyor
- Add support for
help
command in console (a container class with the command callback together with thehelp
text for the command). - Optimize
Symbiosis
entities' rendering by going throughSymbiontMaterial
->SymbiontSpecies
->Biont
hierarchy. - Add support for packed files.
- Add support for CityGML file format.
- Add support for 3D model of Vantaa: https://hri.fi/data/en_GB/dataset/vantaan-3d-rakennukset https://hri.fi/data/fi/dataset/vantaan-3d-rakennukset
- Add support for 3D model of Oulu: http://ubicomp.oulu.fi/infrastructure-virtualoulu/ https://github.com/Oulu-UCC/3D_City_fbx
- Add support for 3D model of Turku campus and science park area: http://www.lounaistieto.fi/blog/2017/09/06/turun-kampus-ja-tiedepuistoalueen-3d-kaupunkimalli/
- Use TinySpline.
- Add bicubic interpolation.
- Add spline interpolation.
- Add Lanczos interpolation.
- Implement Theta* route finding. http://aigamedev.com/open/tutorials/theta-star-any-angle-paths/
- Implement flowing water (computed on a server, based on players' actions) using GridFluidSim3D. https://github.com/rlguy/GridFluidSim3D
- Add support for 3D text.
- Add support for partially transparent text.
- Store each robot's current view into an array from which the robot may access it programmatically using YliLisp.
- Add test VBO, e.g. some kind of particle object.
- Define an object class.
- Add support for several vertex buffer objects (VBO).
-
string.h
->cstring
. -
strcmp
->std::strcmp
. -
strlen
->std::strlen
. - Implement callbacks.
- Test functioning of callbacks.
- Add console (it opens with key `).
- Enable naming of entities of any level in entity hierarchy.
- Add scrolling into console when the 'window' gets full.
- Add command
info
into console (tells about entities, e.g. number of vertices of an objects etc. information). - Add variable
horizontal_angle
. - Add variable
vertical_angle
. - Add variable
right
. - Add variable
up
. - Add variable
window_width
. - Add variable
window_height
. - Add
set wireframe true
,set wireframe false
. - Add support for command line parameters in Ajokki.
- Add variable
wireframe
:set wireframe true
/set wireframe false
. - Add object listing command
info
into console. - Add entity-specific pre-render and post-render callbacks
prerender_callback
andpostrender_callback
. - Add audio with SFML.
- Add support for an initial rotation for
Object
s. - Implement
Symbiosis
entities. - Bind each
Biont
also to its correspondingSymbiontSpecies
(and also unbind from its correspondingSymbiontSpecies
). - Implement
Entity
-specific variables. - Fix Travis configuration file
.travis.yml
. - Fix Coverity Scan Travis integration configuration (in
.travis.yml
). - Rewrite
obj_loader.cpp
withoutfscanf
, using insteadstringstream
for parsing. - Evaluate CHICKEN Scheme. https://www.call-cc.org/
- Evaluate s7 Scheme. https://ccrma.stanford.edu/software/snd/snd/s7.html
- Write code to save screenshots into a raw data file which can be opened e.g. with GIMP.
- Add variable
text_size
(affects size of console text and other texts printed on screen). - Implement
AnyStruct
. - Implement audio using SDL (SFML does not support Android and iOS yet).
- Implement s7 support in console.
- Add support for GPGPU using OpenGL 3.0/GLSL 1.30.10 shaders.
- Implement
Camera
entities. - Implement rendering into a texture (
ComputeTask
). - Implement
AnyValueEntity : public AnyValue, public Entity
. - Implement
AnyStructEntity : public AnyStruct, public Entity
. - Implement command line parameter
--window_width
to Hirvi and Ajokki (e.g.--window_width 1600
). - Implement command line parameter
--window_height
to Hirvi and Ajokki (e.g. --window_height 900`). - Fix bug that only 2D text gets rendered when window width is less than window height.
- Add support for changing window size.
- Implement
yli::ontology::Brain
AI class. - Implement command line parameter
--headless
to Hirvi and Ajokki (do not open any windows, do not render anything). - Implement fullscreen mode.
- Fix bug that some
Object
s (e.g.cat.fbx
) do not appear on screen on some environments. - Implement printing
Setting
s usingConsole
. - Evaluate LuaJIT: https://luajit.org/
- Write
yli::ontology
class generator in Python. - Implement printing parent of Entities using
Console
. - Implement creating new named AnyStructEntities using
Console
. - Implement
yli::ontology::EntityStruct
that all otherstruct
s used for creating different kinds of Entities should inherit. - Inherit
yli::ontology::EntityStruct
in allstruct
s that are used for creating different kinds of Entities. - Restrict what characters are allowed in global names (regex:
[a-zA-Z][a-zA-Z0-9_-]*
). - Restrict what characters are allowed in local names (regex:
[a-zA-Z][a-zA-Z0-9_-]*
). - Implement setting the global name by defining the
global_name
member variable ofyli::ontology::EntityStruct
. - Implement setting the local name by defining the
local_name
member variable ofyli::ontology::EntityStruct
. - Implement setting global name in
yli::ontology::EntityFactory
factory functions by callingset_global_name
. - Implement setting local name in
yli::ontology::EntityFactory
factory functions by callingset_local_name
. - Implement
set-global-name
console command so that setting a global name is done usingset-global-name foo bar
. - Implement
set-local-name
console command so that setting a local name is done usingset-local-name foo bar
. - Implement support for local variables in YliLisp function argument binding.
- Implement support for local variables in all console commands.
- Convert
Setting
into a anyli::ontology
class that inheritsyli::ontology::Entity
. - Fix bug in
print
so that it acceptsprint cat1.x
(instead ofprint cat1 x
). - Fix bug in
set
so that it acceptsset cat1.x 1234
(instead ofset cat1 x 1234
). - Implement
yli::ontology::MasterModule
. - Implement creating new named
yli::ontology::Variable
s of given type in Entities usingConsole
commandcreate-variable
. - Implement creating new named
yli::ontology::Object
s usingConsole
commandcreate-object
. - Implement creating new named
yli::ontology::Holobiont
s usingConsole
commandcreate-holobiont
. - Implement printing children of Entities using
Console
commandchildren
. - Implement main game loop inside
yli::ontology::Universe
class. - Implement
int main(const int argc, const char* const argv[])
function withtry
&catch
in new function filecode/ylikuutio/core/entrypoint.hpp
. - Implement
yli::ontology::Application
class that inheritsyli::ontology::Entity
and binds to theyli::ontology::Universe
. - Implement processing command line arguments in the
yli::ontology::Application
class based on the data received from the application itself (as before). - Create initial design of custom
.yli
binary format. - Implement
Variable
azimuth
(for geographical angles/azimuths), 0 pointing north, pi/2 pointing east, pi pointing south, -pi/2 pointing west. - Create
yli::ontology::Registry
class in which different modules (ChildModule
,ParentModule
,MasterModule
,ApprenticeModule
etc.) may bind with a name. - Add support for
yli::ontology::Registry
in different modules (ParentModule
,MasterModule
). - Add support for Tab complete for global names in
Console
. - Replace stb with libpng (http://www.libpng.org/pub/png/libpng.html).
- Fix compiling on MacOS.
- Fix compiling in a Podman container on CentOS 8.
- Fix segfault when running in headless mode (with
--headless
, bug entered in commit e9ea16157b51403685a3df2d0884cb87fbf500dc). - Fix compiling on GCC on Travis CI Bionic Beaver environment.
- Fix compiling on Clang.
- Make
Material
a child of theScene
. - Modify
yli::ontology::SymbiontMaterial
so that it inheritsyli::ontology::Entity
, and does not inherityli::ontology::Material
any more. - Modify
yli::ontology::SymbiontSpecies
so that it inheritsyli::ontology::Model
, and does not inherityli::ontology::Species
any more. - Implement
yli::ontology::ModelModule
class (to be used with composition), that will replaceyli::ontology::Model
class. - Make
Species
a child of theScene
. - Add support for references in YliLisp.
- Add roll rotation.
- Make
Object
a child of theScene
. - Make
Symbiosis
a child of theScene
. - Implement
yli::ontology::Ecosystem
class for storingShader
s independently ofScene
s so that they can be used in multipleScene
s. - Change OpenGL requirement to 3.3.
- Print alternative completions in
Console
. - Use uniform buffer objects to enable sharing uniforms between shaders.
- Fix compiling on Clang.
- Fix downloading of Google Test in
CMakeLists.txt
. - Fix binding
Object
apprentice toSpecies
master. - When binding any
Entity
class instance to a differentScene
parent, unbind from all masters except from ones that are children of anEcosystem
. - Do not bind to any master that belongs to a different
Scene
. - Replace obsolete Travis CI workflow with GitHub Actions CI workflow.
- Fix compiling on MacOS.
- Rename
RenderMaster
toRenderSystem
andRenderMasterStruct
toRenderSystemStruct
. - Rename
AudioMaster
toAudioSystem
. - Rename
InputMaster
toInputSystem
. - Add support for storing
yli::ontology::Material
Entities inyli::ontology::Ecosystem
class. - When running in windowed mode, by default open window in the main display and make its size match the display resolution.
- Add support for storing
yli::ontology::Species
Entities inyli::ontology::Ecosystem
class. - Make
Holobiont
s children of theScene
and apprentices of theSymbiosis
. - Add support for scaling
Movable
s inConsole
. - Fix
yli::snippets::switch_to_new_material
. - Fix
yli::snippets::delete_entity
. - Fix
yli::snippets::transform_into_new_species
. - Fix compiling on MacOS.
- Add support for storing
yli::ontology::Symbiosis
Entities inyli::ontology::Ecosystem
class. - Implement
LocationModule
. - Implement
OrientationModule
. - Implement
GaitModule
, to be used for different bi- and quadrupedal gaits like walking, running, trot, canter, gallop, pace, tölt. - Implement
SwimModule
, to be used for swimming. - Implement
DiveModule
, to be used for diving. - Implement
ClimbModule
, to be used for climbing on different surfaces. - Implement
FlyModule
, to be used for flying animals and aircraft. - Implement
RoadVehicleModule
, to be used for road vehicles. - Implement
RailVehicleModule
, to be used for rail vehicles. - Implement
ShipModule
, to be used for ships. - Implement
RoadVehicle
class that inheritsHolobiont
and usesRoadVehicleModule
. - Implement
RailVehicle
class that inheritsHolobiont
and usesRailVehicleModule
. - Hirvi: Implement
Elk
class that inheritsHolobiont
and usesGaitModule
andSwimModule
. - Hirvi: Implement
Cat
class that inheritsHolobiont
and usesGaitModule
,SwimModule
, andClimbModule
. - Hirvi: Implement
PoliceModule
for sharing data such as knowledge about Hirvi's location, orientation, and speed between polices. - Hirvi: Implement
EmancipationModule
for emancipation-related behavior. - Hirvi: Implement
PoliceCar
class that inheritsHolobiont
and usesRoadVehicleModule
andPoliceModule
. - Hirvi: Implement
PoliceDog
class that inheritsHolobiont
and usesGaitModule
,PoliceModule
, andEmancipationModule
. - Hirvi: Implement
PoliceHorse
class that inheritsHolobiont
and usesGaitModule
,PoliceModule
, andEmancipationModule
. - Hirvi: Implement
PoliceShip
class that inheritsHolobiont
and usesAircraftModule
andPoliceModule
. - Hirvi: Implement
PoliceHelicopter
class that inheritsHolobiont
and usesAircraftModule
andPoliceModule
. - Hirvi: Implement
PoliceTrain
class that inheritsHolobiont
and usesRailVehicleModule
andPoliceModule
. - Hirvi: Implement
PoliceTram
class that inheritsHolobiont
and usesRailVehicleModule
andPoliceModule
. - Rename
Shader
toPipeline
. - Improve
create_yli_ontology_class.py
to createdefault
destructors. - Improve
create_yli_ontology_class.py
to create the constructor in the.cpp
file, with the declaration in header. - Refactor
CallbackEngine
,CallbackObject
, andCallbackParameter
intoyli::ontology
namespace and make them inheritEntity
. - Fix
Universe::get_number_of_children
to countCallbackEngine
s as well. - Fix
Universe::get_number_of_descendants
to countCallbackEngine
s as well. - Move
InputMode
intoyli::ontology
and make it a child of theUniverse
, and makeInputMode
inherityli::ontology::Entity
. - Refactor
InputMaster
intoyli::ontology::ParentOfInputModesModule
and take it into use. - Add
yli::core::Application&
as the first parameter ofyli::ontology::Entity
and all its derivative classes. - Create
MockApplication
class to be used in tests. - Do not access derived class
Universe
instance inEntity
destructor when destructingUniverse
. - Implement custom memory allocation system.
- Fix compiling on g++ (Debian 12.2.0-14) 12.2.0 .
- Fix segfault in GPGPU test in
yli::opengl::prepare_opengl_texture
(see commit cb041b92726df81afe3d349ac5a90d3bbbd14e91). - Fix bug "ERROR:
GenericParentModule::unbind_child
: the value ofchildID
is invalid!", in the deallocation of datatypes 121, 130, 131 (CallbackEngine
etc.). - Fix main loop to make it run on a reasonable speed on ThinkPad Z16 with AMD Ryzen 9 PRO 6950H and Radeon 680M (1 Hz is not reasonable).
- Fix crash of Hirvi upon start.
- Split Hirvi game code into
hirvi_lib
library andhirvi
application that links againsthirvi_lib
. - BUG Fix double free in Hirvi upon deallocation.
- BUG Fix
Camera
activation, e.g. in Ajokkiactivate cat_camera
makes all valuesnan
. - BUG Fix audio in Hirvi.
- BUG Fix audio in Ajokki.
- LIBRARIES/AUDIO/EVALUATE Evaluate SoLoud audio library: https://solhsa.com/soloud/
- ONTOLOGY/TESTS Write unit tests for
Brain
snippets. - ONTOLOGY/AI Add
yli::ontology::Waypoint
class to be used forBrain
snippets. - AVARUUS/MATH/PHYSICS Implement n-body Newtonian star simulation of Milky Way stars in Fortran.
- MATH Change to right-handed Z-up coordinate system so that X points east, Y points north, and Z points up.
- MATH Add support for Tait-Bryan angles. https://en.wikipedia.org/wiki/Euler_angles#Tait%E2%80%93Bryan_angles
- BUG/MATH Fix Brain snippets.
- ONTOLOGY Enable support for referring to parent in the factory functions by using parent's global name instead of parent's memory address.
- BUG Fix graphics rendering in full screen mode on high DPI displays (graphics are rendered currently only in bottom left of the screen).
- BUG/HIRVI Esc key should exit to OS in Hirvi and Ajokki.
- BUILD Upgrade CMake to at least 3.16 to enable support of precompiled headers directly in CMake.
- BUG/LISP Fix the behavior of
std::nullopt
in YliLisp by wrapping thestd::optional<yli::data::AnyValue>
return value into a wrapper with success information.