Jump to content

aiaf

Members
  • Posts

    720
  • Joined

  • Last visited

Everything posted by aiaf

  1. Structura was released in 2021 https://store.steampowered.com/app/1422980/Structura/
  2. Just use blender Usually there is some metadata stored in the file format , and if its some closed format you have no idea what they store in there.
  3. Looking great !, time to add some game play
  4. the size of texture can be larger on certain axis depending on the geometry on screen ?
  5. I think opencv has wide use: https://opencv.org/
  6. Hmm when i look at the first video i think all that corridor should have been lighted up from the beginning. Or at least more chunks loaded from the beginning in the corridor , not 1 by 1. Maybe the stages should have different sizes depending on layout of level. PS I have no idea how you render the lights and how expensive it is
  7. Paint applications: Gimp https://www.gimp.org/ Inkscape https://inkscape.org/ https://www.aseprite.org/ https://imagemagick.org/ Modelling applications: Wings3d http://www.wings3d.com/ Sound: Audacity https://www.audacityteam.org/ Video editor: https://www.openshot.org/ https://ffmpeg.org/ 3D models: https://cubebrush.co/ 2D art: https://craftpix.net/ Free models, materials for blender: https://www.blenderkit.com/ Video recorder/stream: https://obsproject.com/
  8. Maybe make a vector of booleans that represent the states of all the checkboxes. Or add your checkboxes in an array of widgets and iterate over that for the state.
  9. aiaf

    fade question

    Thanks alphaInitial = alphaInitial - (0.003 * Time::GetSpeed()); I leave it here in case someone need in future. Here are some values of the Time::GetSpeed() on my machine: 1 20.36 11.74 9.59 6.295 4.6775 3.80875 3.43438 3.21719 3.07859 3.0693 3.00465 3.12232 3.21116 3.07558 3.06779
  10. aiaf

    fade question

    context->SetColor(0.0, 0.0, 0.0, alphaInitial); context->DrawRect(0, 0, context->GetWidth(), context->GetHeight()); if (alphaInitial > 0.1) { alphaInitial = alphaInitial - 0.005; } I need another way of doing this fade that is not dependent on machine speed, Want this fade to take 3 seconds no matter the machine is running on. Any idea how to do this ?
  11. aiaf

    Global Illumination WIP

    Theres a tool named cloc that counts lines of code.
  12. Look like certificate expired. You can still see the site if you accept the security exception.
  13. Whitelisted , looking great! @Yueits about 90 euro , more or less depending on your country VAT taxes
  14. Didn't post here in a long time , this will be about storing game data. There are a lot of options on how to store your game data structures: files (json,xml,yaml , custom etc) databases , nosql dbs memory (if no persistence needed) Also if you use an engine it could provide its own way of storing data. Choosing a good way to do persistence is important. This depends on lots of factors like game type, complexity of data structures etc Ill describe below a way to use the sqlite3 database: https://www.sqlite.org/index.html Some code i wrote that generates a class with support for sqlite3 database persistence: https://gist.github.com/aiafrasinei/65cb2cfeeb417459e0ab927302168abc Example how to use: SqlHt::GetInstance().Generate("Config title_s height_i width_i fullscreen_i vsync_i", true, true, false); This will generate the file Config,h with this code : class Config { private: sqlite3 *db; char* zErrMsg = 0; protected: public: string Title; int Height; int Width; int Fullscreen; int Vsync; Config(string Title, int Height, int Width, int Fullscreen, int Vsync) { filesystem::path p("Config.db"); if(filesystem::file_size(p) == 0) { string sql = "CREATE TABLE Config ( ID INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, TITLE TEXT, HEIGHT INTEGER, WIDTH INTEGER, FULLSCREEN INTEGER, VSYNC INTEGER )"; char * sql_const = const_cast<char*>(sql.c_str()); sqlite3_exec_ec(db, sql_const, zErrMsg); string insert_sql = "INSERT INTO Config ( ID, TITLE, HEIGHT, WIDTH, FULLSCREEN, VSYNC) VALUES (NULL,'" + Title + "', " + to_string(Height) + ", " + to_string(Width) + ", " + to_string(Fullscreen) + ", " + to_string(Vsync) + ")"; char * insert_sql_const = const_cast<char*>(insert_sql.c_str()); sqlite3_exec_ec(db, insert_sql_const, zErrMsg); } else { int rc = sqlite3_open("Config.db", &db); } sqlite3_stmt* stmt = NULL; string select_sql = "SELECT * FROM Config"; int ret = sqlite3_prepare_v2(db, select_sql.c_str(), -1, &stmt, NULL); if (ret != SQLITE_OK) { string err(zErrMsg); cout << "Nothing to select, db should contain at least one entry" << endl; sqlite3_free(zErrMsg); } ret = sqlite3_step(stmt); while (ret != SQLITE_DONE && ret != SQLITE_OK) { int colCount = sqlite3_column_count(stmt); for (int colIndex = 0; colIndex < colCount; colIndex++) { int type = sqlite3_column_type(stmt, colIndex); const char* columnName = sqlite3_column_name(stmt, colIndex); string cns = columnName; if (type == SQLITE_INTEGER) { int valInt = sqlite3_column_int(stmt, colIndex); if(cns == "HEIGHT") { this->Height = valInt; } if(cns == "WIDTH") { this->Width = valInt; } if(cns == "FULLSCREEN") { this->Fullscreen = valInt; } if(cns == "VSYNC") { this->Vsync = valInt; } } if (type == SQLITE_TEXT) { const unsigned char *text = sqlite3_column_text(stmt, colIndex); if(cns == "TITLE") { this->Title = string(reinterpret_cast<const char*>(text)); } } } ret = sqlite3_step(stmt); } ret = sqlite3_finalize(stmt); } Config() { } ~Config() { sqlite3_free(zErrMsg); sqlite3_close(db); } sqlite3 *GetDb() { return db; } bool Persist() { string update_sql= "UPDATE Config SET TITLE='" + this->Title + "', HEIGHT='" + to_string(this->Height) + "', WIDTH='" + to_string(this->Width) + "', FULLSCREEN='" + to_string(this->Fullscreen) + "', VSYNC='" + to_string(this->Vsync) + "'"; char * update_sql_const = const_cast<char*>(update_sql.c_str()); return sqlite3_exec_ec(db, update_sql_const, zErrMsg); } bool Persist(string Title, int Height, int Width, int Fullscreen, int Vsync) { string update_sql= "UPDATE Config SET TITLE='" + Title + "', HEIGHT='" + to_string(Height) + "', WIDTH='" + to_string(Width) + "', FULLSCREEN='" + to_string(Fullscreen) + "', VSYNC='" + to_string(Vsync) + "'"; char * update_sql_const = const_cast<char*>(update_sql.c_str()); int rc = sqlite3_exec_ec(db, update_sql_const, zErrMsg); this->Title=Title; this->Height=Height; this->Width=Width; this->Fullscreen=Fullscreen; this->Vsync=Vsync; if(rc != 0) { return false; } else { return true; } } }; This way you can generate the data structures for your game that can be saved to disk. Also sqlite3 support in memory databases. Purpose of this article is to present some idea on how to store game data.
  15. Most of the things are in the documentation here: https://www.ultraengine.com/learn/?product=appkit and search in top right for LoadColorScheme
  16. Think your best bet will be leadwerks at least until Ultra Engine will be out. Because is easy to use and flexible enough. Here are other options: Rendering engine called OGRE , but is very large and complex. Irrlicht Engine , old but looks simple enough. raylib , this one seem to match your requirements.
  17. Yeah wayland is here to stay most large distro have it debian 11, ubuntu 21.04, fedora 34 , opensuse. But no need to bother about it , has the X compatibility in it.
  18. Short version when you need to allocate/access memory. For the long story you need to read a couple of books and learn a bit how operating systems work.
  19. Not running in a VM. Im using Fedora. But exactly the same problem can be seen on Ubuntu 21.10. Its like this from the first release of uak and tried it with older versions of ubuntu at the time. Doesnt look realted to distro.
  20. Nothing happens when i click in the menus on Linux. Can be reproduced with latest example from: https://www.ultraengine.com/learn/CPP/AdvancedInterface Seems to be just a problem with the menus, when i click the icons the same functionality works (open file, or open browser). Another bug report should have added it here from the begining:
  21. Yeah latest tools , version 143. Guess you can keep 2017 to be sure will work on older windows also. I just created a new blank project from leadwerks (windows11) , open it with visual studio 2022 to upgrade the project. It works , only thing needed is to switch for x86 release of course.
  22. Just for further reference UAK works with no problems with visual studio 2022, just tested. Also working on windows 11.
  23. The tab is not properly colored on linux: This is from the documentation:
  24. This one is interesting , that encoding/decoding tool: https://github.com/google/draco#encoding-tool Seems depending on mesh type you can get better compression and also there are cmd line options. Did you load drc files in the engine ? maybe thats the point how fast the data is loaded.
  25. Here seems to be their test data (bunch of obj and ply files): https://github.com/google/draco/tree/master/testdata Hmm maybe try converting large ply/obj to draco format directly. Just wild guess i have no idea how the drc files relate to gltf.
×
×
  • Create New...