Jump to content

aiaf

Members
  • Posts

    720
  • Joined

  • Last visited

Posts posted by aiaf

  1. Yes it detects the entity if no key check, i put a print.

     

    Here is how i add the keys:

      for(int i=0; i < masrmax; i++) {
        mas.push_back(new MissileAsteroid(unitexpmat,
          GetPointOnSphere(currentUnit->GetModel()->GetPosition(), 10, Math::Random(0, 360), Math::Random(0, 360)),
          currentUnit->GetModel()->GetPosition(), false));
        mas->GetModel()->SetKeyValue("mas" , String(i));
      }

    Inside MissileAsteroid constructor:

    //model = Model::Box(0.1, 0.1, 0.1);
        model = Model::Load("Models/Asteroids/AsteroidMobileE_LOD3.mdl");
        model->SetScale(0.05);
        mass = 0.09;
        model->SetMass(mass);
        model->SetGravityMode(false);

        Shape* shape = Shape::Sphere(0, 0, 0, 0, 0, 0, 0.1, 0.1, 0.1);
        model->SetShape(shape);
        shape->Release();

     

    Did some debugging below the phases i was interested in

    Creation of model:
    model -> entity -> shape
    In both cases the shape object is initialized ok.
    Nothing strange here.


    Pick of entities:
    pickinfo -> entity

    keys
    shape -> aabb
    I think the aabb is used for physics and maybe to detect picks.

    shape is null in case of the asteroid model load.
    keys does not contain the value i added (just a key name with value name of model).

     

    Not sure if related to the shape , some exclusion may happen inside for a reason, for sure the keys are not there.

     

  2. Hello

     

    Have a problem with pick info an entity, i have setup a keyvalue on the model.

    if (pickinfo.entity->GetKeyValue("mas") != "") {                
                    System::Print("hit");
                    int val = stoi(pickinfo.entity->GetKeyValue("mas"));
                    if (window->MouseHit(1)) {
                        System::Print("hit");
                        console->mas[val]->DecrementHps();
                    }
                }

     

    Code above works if i use a boxes (Model::Box)

    model = Model::Box(0.1, 0.1, 0.1);

    If i use a model like below:

      model = Model::Load("Models/Asteroids/AsteroidMobileE_LOD3.mdl");
      model->SetScale(0.05);

      Shape* shape = Shape::Sphere(0, 0, 0, 0, 0, 0, 0.1, 0.1, 0.1);
      model->SetShape(shape);
      shape->Release();

     

    The code doesn't detect anymore the mouse over the model.

    Any idea what is going on here ? im missing something.

     

     

     

     

  3. A bit long to explain by text i try.

    Basic idea you are in space have a base (the middle cube thing) and are under attack by some enemies (i have a nice background story).

    The base can be expanded with components or other bases (little cube and sphere you can see in screenshot).

    There are 2 phases to each game:

    Detection phase:

    Certain types of enemies are spawned randomly near you , and they have some detection spheres.

    If you are inside the spheres you start to be detected.

    In mean time you need to scan and destroy this enemies and also take care of economy , mine asteroids produce energy etc.

    Main attack phase:

    You are fully detected and the main attack begins.Lots of enemies with different effects.

    The enemies are cloaked so you need to use a scan mechanic to see what type they are.

    Like missiles spawners, decoys, mines, energy neutralizers , hackers etc

    In mean time besides destroying as much as possible , the economy is very important.

    You really need to construct a jump drive and jump out, that will reset the attack till you get detected again and cycle restarts.

    Many more things but i try to paint a basic idea of what it does.

    This is somewhat inspired by Battlestar Galactica beeing attacked by the cylons, if anyone seen the BSG series.

     

    Ill put a video to show the first minutes of gameplay soon.

    • Like 3
  4. First time i added some textures but im keeping the blue look i grow to like it. 

    Also asteroids are no longer cubes, and those transparent spheres are detection markers for the enemy (can only be seen after a scanner is built).

     

    image.thumb.png.bb18bad2b985ef24236ce49b201c3504.png

     

     

    • Like 1
  5. it took 4 years because i do this in my free time , which is not much lately ... i tried to create a nice look and feel without much textures.

     

    You do have some good points, Thanks

    Seems like somehow embedding the tutorial in the story is good idea , here is from starcraft 2:

    So much time has gone intro this that's its not even funny to compare to what i have :)

    Anyway i think mistake was to not think about the tutorial from the beginning , i will definitely take this into consideration for next game.

     

    • Like 1
  6. Tutorial are really hard to do right ... been reading about this

    Next in line i will research how the tutorials are done for the classical rts.

    I remember homeworld and how the tutorial was the linked with the launch of the mothership and several system/weapons tests, that was nice.

     

    Really have a big problem to explain my game , is a rts but have lot of mechanics that are not obvious.

    If i try to explain everything it will take hours.

    4 years into development i dont have the patience anymore, if i continue to try do things perfect it will not get released.

    So i took shortcuts and hope will be enough.

     

    At the moment im working on this plan:

    • PDF manual
    • hints in the user interface at beginning of game (for example blinking text that says Build a scanner, Build a jumpdrive)
    • howtos articles in the game menu with lots of text (ex Howto mine, Howto navigation etc)
    • extensive help section accessible all time

     

    If i could talk to my past me , i  would have tell to bloody pick a game type that doesnt need a tutorial..

    Wanted to start a discussion about this subject ,

    anyone else with problems like this ?

     

     

     

     

     

     

     

     

     

     

  7. Hi,

    Just Ubuntu is officially supported, but i think it works on arch also.

    Its just a matter to have all the libraries installed.

     

    Look here and find all the equivalent libs in arch and install them:

     

    Regards

  8. How do i get the desktop native resolution size in leadwerks ?

    I want to create a window full screen with the size of the user desktop screen.

     

    I seen in API:

    CountGraphicsModes

    GetGraphicsMode

    Probably been asked before but i searched and didnt find a solution.

     

  9. Hello,

     

    New lts version of ubuntu 20.04 is out, so i upgraded my 18.04 laptop.

    The editor seem to work ok.

     

    gcc version 9.3 is included.

    My game compiles ok, below you can see the link errors .

    I mention the math lib is linked (-lm):

    -lm Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a -ldl -lopenal -lGL -lGLU Source/Libs/Leadwerks/Library/Linux/libsteam_api.so -lX11 -lXrender -lXext -lXft -lpthread -lcurl

     

    Looks like an incompatibility between the new c++ library and the leadwerks static lib.

    libstdc++.so.6 -> libstdc++.so.6.0.28

     

    Anyone has a workaround for this ?

     

    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(OpenGLTexture.o): in function `std::pow(float, float)':
    /usr/include/c++/7/cmath:389: undefined reference to `__powf_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Entity.o): in function `Leadwerks::Entity::CalcAverageOmega(Leadwerks::Quat, Leadwerks::Quat, double const&)':
    /home/josh/Leadwerks/Engine/Source/Classes/Entity.cpp:5821: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Entity.o): in function `std::asin(float)':
    /usr/include/c++/7/cmath:107: undefined reference to `__asinf_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Entity.o): in function `std::atan2(float, float)':
    /usr/include/c++/7/cmath:145: undefined reference to `__atan2f_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Font.o): in function `__gnu_cxx::__promote_2<double, int, __gnu_cxx::__promote<double, std::__is_integer<double>::__value>::__type, __gnu_cxx::__promote<int, std::__is_integer<int>::__value>::__type>::__type std::pow<double, int>(double, int)':
    /usr/include/c++/7/cmath:418: undefined reference to `__pow_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(dVec3.o): in function `Leadwerks::dVec3::Normalize()':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/dVec3.cpp:324: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(dVec3.o): in function `Leadwerks::dVec3::Length()':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/dVec3.cpp:336: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(dVec3.o): in function `Leadwerks::dVec3::DistanceToPoint(Leadwerks::dVec3 const&)':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/dVec3.cpp:354: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(dVec3.o): in function `Leadwerks::dVec3::DistanceToPoint(Leadwerks::Vec3 const&)':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/dVec3.cpp:362: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Mat4.o): in function `Leadwerks::Mat4::GetQuaternion(Leadwerks::Quat&)':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/Mat4.cpp:505: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Mat4.o):/home/josh/Leadwerks/Engine/Source/Classes/Math/Mat4.cpp:593: more undefined references to `__sqrt_finite' follow
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Math_.o): in function `std::log(float)':
    /usr/include/c++/7/cmath:339: undefined reference to `__logf_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(Quat.o): in function `Leadwerks::Quat::GetAverageOmega(Leadwerks::Quat const&, double)':
    /home/josh/Leadwerks/Engine/Source/Classes/Math/Quat.cpp:92: undefined reference to `__sqrt_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(meshcollider.o): in function `b3d::Vector::length() const':
    /home/josh/Leadwerks/Engine/Source/Libraries/b3d/geom.h:102: undefined reference to `__sqrtf_finite'
    /usr/bin/ld: Source/Libs/Leadwerks/Library/Linux/Debug/Leadwerks.a(pickcollision.o): in function `b3d::Vector::distance(b3d::Vector const&) const':
    /home/josh/Leadwerks/Engine/Source/Libraries/b3d/geom.h:105: undefined reference to `__sqrtf_finite'

     

  10. I dont think the scope is the problem.

    Its how people approach the project.


    Say you decide to join, then show your work, even small things done constantly will advance the project.

    Its a hobby you only have 2, 3 hours a week to spend on the project, make it count , approach this professionally.

    Read the other guys code and always think how your thing fits into what it exists already.

    Communicate and leave ego out and be interested to move the project forward.

    Meritocracy , your work is good, a way will be found to be included even if a bit different then the game plan.

    For artist should be similar, first get the general feeling of the game then contribute, ask people what models are needed or adopt/start a map yourself.


    I know its more complicated then this but most of the time the right attitude helps.

    • Like 2
  11. Ok , i created a test.dll that does the curl connection.

    extern "C" __declspec(dllexport) int test();

    Then another exe that load/executes that, works for me.

     

    Make such simple test on your machine.

    Have a look here maybe is something related to how the plugin,curl are built:

    https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=vs-2019

    Update to the latest libcurl, and build the dll on your machine in case you didnt do that allready.

    Dont have other ideas sry.

     

    http://www.dependencywalker.com/

    on your plugin dll , you can see the exported function, but i suppose all is ok.

    https://drmemory.org/

    on exe , worth a try but i doubt it will say something.

    • Thanks 1
  12. I did a simple test with exe, works for me also.

    typedef CURL* (__stdcall *f_curl_easy_init)(void);
    typedef CURLcode (__stdcall *f_curl_easy_setopt)(CURL *curl, CURLoption option, ...);
    typedef CURLcode (__stdcall *f_curl_easy_perform)(CURL *curl);
    typedef void (__stdcall *f_curl_easy_cleanup)(CURL *curl);
    typedef const char* (__stdcall *f_curl_easy_strerror)(CURLcode);
    
    int main()
    {
      HINSTANCE hGetProcIDDLL = LoadLibrary("libcurl-d.dll");
      
      if (!hGetProcIDDLL) {
        std::cout << "could not load the dynamic library" << std::endl;
        return EXIT_FAILURE;
      }
      
      f_curl_easy_init cinit = (f_curl_easy_init)GetProcAddress(hGetProcIDDLL, "curl_easy_init");
      if (!cinit) {
        std::cout << "could not locate the function" << std::endl;
        return EXIT_FAILURE;
      }

    You built yourself the curl dll or got it from some other place ?

    Maybe your curl dont support some protocols ?

    curl.exe -V
    curl 7.69.1 (Windows) libcurl/7.69.1
    Release-Date: 2020-03-11
    Protocols: dict file ftp gopher http imap ldap pop3 rtsp smb smtp telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM

     

    I think you should check your plugin , my feeling is the problem is there.

    Use curl_easy_strerror to get the textual representation of your error.This should give some clues.

    CURL_EXTERN const char *curl_easy_strerror(CURLcode);

     

  13. Hello,

     

    Forth demo 1 (community project):

    forth_demo_1.zip

     

    Below you can read the story.

    About the end of 2018 i started a community project (forth).

    We got 10 people join, we used this forums to organize , discord, git etc.

    Some people contributed only at beginning , so there are actually 3 main contributors: mdgunn, slastraf and me.

     

    Organizing was hard and trying to keep a focus.After much discussion a theme + game idea was chosen.

    3rd person game with a combination of sf and fantasy theme.

    Anyway tried my best with this and things moved along.

    In retrospect using voice comms would have been a better solution.

     

    Project can be seen here:

     

     

    Slastraf was doing character controler and modelling.

    mdgunn made a really good design document, and working on the first levels (cryo room etc).

    Game drifted into a more sf setting and first person.

     

    I learned lot of stuff and different workflows then i was used to , especially on modelling side and editor.

    Even with the ruff edges and problems for me it was good times working on this project.

    You learn so much more then working alone, so many thanks to mdgunn and slastraf.

     

    Some work was done, then slow times also , lack of time and maybe a lack of communication at the moment is semi abandoned.

    But the project has really good stuff in the git, so much work went into it.

     

    So im releasing a demo with some of the levels for the community.

    Its only parts of what we planned in the design document

    .I linked the levels in a way it makes some sense, not finished.It contains 4 playable levels.

    But it shows some original gameplay and will give you some idea what forth is about.

     

    Below some screens

    Menu:

    fd1_menu.thumb.png.9e5420e3906a721e07ceb049d61accb2.png

    ship control room:

    fd1_roboroom.thumb.png.6dc018261012fc9293eccd997cb06f18.png

    VR level

    fd1_vr.thumb.jpg.65c39403084d7277c20548ad7374193a.jpg

    Dream level 1

    fd1_dream1.thumb.png.3aee7d0a0e783b0a8b81a1c039a12c93.png

    Dream level 2

    fd1_dream2.thumb.png.01f6414c3e0c865ed08956c63e3f8d77.png

    Cryo room

    fd1_cryo.thumb.png.f9103ff628f567e6ad1009198a7a3ddc.png

     

    The cryo room was supposed to be the initial level of the game , but somehow arrived in a state that if you make any change and save it crashes the editor.

    I included because is one of the best looking levels, wanted to link it to the others levels, even in unfinished state, but coudnt.

     

    For the vr level read the text carefully.Or you will not understand the mechanic that let you pass in the other levels.

    If you want to see individual level without following the game sequence use (loadlevel 1 to 5):

    forth.debug.exe +loadlevel 1
     

    I dont know if we ever finish this game , but i had to do this post.

     

    Thanks everyone , this was long.

    Hope you like it and any feedback apreciated.

     

    • Like 3
×
×
  • Create New...