Jump to content
    1. Past hour
    2. mrMatrix

      FBX SDK skinned animation

      I've perhaps narrowed the problem down to not transposing the output per frame animation matricies, but I've tried combinations of each one without success. How do I know I need to transpose a particular matrix? Do I need to transpose the joint matrix * the parent matrix This is a combination of T * R interpolated matricies multiplied by the parent matrix and then multiplied by the inverse bind pose. So I have animatedxform = some combination of ParentXform * T * R * invbindpose
    3. Update -- search index is no longer processing. The page just doesn't list anything. "There are no results to show in this activity stream yet"
    4. _WeirdCat_

      Share a pointer

      I think i found it hahhah huehue Just make it a global var and don't care !:0 about any pointers to pointers Genius ; )
    5. Tom Sloper

      How to distribute pre-release game?

      Sorry, it's moved there now.
    6. I have been atempting to finish a game for years now. I never do. I always bite way too much and it ends up bittng me back and I end up quitting. To avoid this for my newest project I decided to keep it to the bare minimum I wanted. It would be a mostly 2D game made in Unity, would be using 3d for a few minor things. The game has 3 sections, battle, encounter and travel. The player has a deck, a level which theyraises by winning encounters and money to buy things, they also have reputation with various factions that may apear in events, which he gains or loses acording to their actions. Travel The player has to travel across the world for their great goal. The map would use a node system where unlocking a location reveals the path to new locations. When players reach a location they trigger an ecounter from a random pool of events. Players can return to locations. Players can move any amount of locations they want provided the location is unlocked or joined to an unlocked location. Traveling may trigger an encounter along the location path. Special locations exist that advance the story forward ( 12 diferent locations, the player must visit 3 of 10 then one of the other two will open and all others will lock.) Defeating the special location boss will grant you a pick of 2 of their cards. Enconter When the player travels things happen A Store may give you new cards for your deck that you can purchase, thieves may want to steal your thigns, etc. When an encounter happens you are faced with multiple choices to resolve it, some may depend on your stats. Encounters have results you save someone, you kill someone, you start a fight, burn a vilage down, etc. This will cause your reputation to change and rewards to be atributed acordingly. Battle When the player encounters an enemy and a fight begins the battle would work as a mix of BattleCon and Slay the Spire. You know what your enemy will use and its initiative value. You have to pick 2 cards, a Style and an Action. This would give you a certain amount of Initiative, Attack and Block as well as possible effects. Card power has dependencies on your personal stats. The chosen cards get sent to a discard pile for 2 turns, unless they posess the exaust tag, which would destroy them for the rest of the fight. Battle ends when one of the HPs reaches 0. In broad strokes this is what I was planning. What is your opinion? Am I biting too much with this one?
    7. Pilpel

      Assimp bones' relation to nodes

      What do you mean? These bones don't exist, as in no aiMesh ever refers to them. Just to be sure, I don't need the mTransformation matrix of the aiNodes anymore when doing skinning, right? Edit: I think I was wrong in the statement above actually. :p
    8. Today
    9. Gnollrunner

      Share a pointer

      It this case you don't need to. You have a pointer in each of the instances of A to the int *p in Main. I thought that was the whole point. Also you can in fact call members of Main in class A. You just need to break things up into .h and .cpp files.
    10. mgstauff

      How to distribute pre-release game?

      Thanks. I don't see it in the "Games Business and Law" forum - should I move it there myself. Thanks, that clears things up!
    11. AtomicWinter

      Assimp bones' relation to nodes

      I noticed this, "i think assimp discards any bone nodes that are not being used by the mesh in question (i.e. have zero weight). Hence the discrepancy between the full skeleton, and the aiBone list for the mesh." Could that be the case here? Are you positive those bones are being used by the mesh? Here is where I got that from: https://github.com/assimp/assimp/issues/1787
    12. _WeirdCat_

      Share a pointer

      as for that conversion thing i dont know yet, but for the post above, i cant call main class from a subclass due to circular reference thing, i could obviously bypass that, but thats not the point, still searching for legit solution, i want to change the pointer in main class from the subclass itself which has a pointer to that mainclass pointer which is 0 at start and (*face_model) = aface_model; cracks the app where face_model is model3f ** and aface_model is model3f * that is set to 0 And yesterday i thought that was an easy to solve problem lol
    13. Karzan

      tilting screen in unity

      Hello Kamal, I dont know much about developing for Android with unity but I have some experience with native Android development. What you want is to utilize the Accelerometer of the device, a quick search lead me to this video which should help you. It is quite simple. https://unity3d.com/pt/learn/tutorials/topics/mobile-touch/accelerometer-input
    14. Gnollrunner

      Share a pointer

      Well just add a level of de-referencing and you would get: #include <iostream> struct A { int **p; A(int **ap) { p = ap; } }; struct Main { int* p; A member1, member2; Main() : p(0), member1(&p), member2(&p) { } void SetVal(int *pVal) { p = pVal; } }; int main() { Main clMain; int *pVal1 = new int(666); clMain.SetVal(pVal1); std::cout << "member1 value = " << **clMain.member1.p << std::endl; std::cout << "member2 value = " << **clMain.member2.p << std::endl << std::endl; int *pVal2 = new int(444); clMain.SetVal(pVal2); std::cout << "member1 value = " << **clMain.member1.p << std::endl; std::cout << "member2 value = " << **clMain.member2.p << std::endl; delete pVal1; delete pVal2; return 0; } You can and probably should use smart pointers for this. However I loath the C++ standard library shared_ptr because it creates extra objects you woudn't need if you simply implement a reference counted object base class. This can cause a major performance hit.
    15. mr_tawan

      Share a pointer

      What about using conversion ? https://en.cppreference.com/w/cpp/language/cast_operator
    16. Pilpel

      Assimp bones' relation to nodes

      So what's the deal with the nodes that don't have corresponding bones?
    17. Kamal Wafi

      tilting screen in unity

      Hi there, i recently start learning unity and im working in my first game , I was wondering if unity had functions to support the motion control effect (tilting screen to move character) you see in doodle jump (which is 2d game) ? If it exists, what are they called? and how it works ? Thanks
    18. GWDev

      Hello, new here.

      Hi Wild dog, depending on your knowledge of Python you could start by making some small games without any graphics or pick a game engine / framework with python support. Pygame and Panda3D come to mind, but there are probably a lot more available. Blender had a python game engine, but removed it with version 2.8. Just pick one that's still maintained and has a good documentation / tutorials. Start with a small game and if you have questions, you can ask them here and people will be able to help you.
    19. I've never heard it called that, but yes, that seems roughly equivalent to an Entity/Component system.
    20. _WeirdCat_

      Share a pointer

      Well, welll.... hmmm............. Not to mention i cant properly edit my post above so ill leave it like it is now... But subclass wont be derived from mainclass, thats not going to happen, i only made an example which is not the exact tthing i have if you really need to know main class is TMainFramework class which is of class TGLForm which is of class TVCLComponent which is of class TPhysicalElement<float, float, float, float, float> And it stores a list of forms 6 side projection forms and one perspective projection forms which are the type of TGLForm which is of type of... and so on so its irrevelant. Anyway in main class i used an int * p; description which is actually model3f * face_model; anyway this doesnt matter Since i would like to create a pointer in main class from the subclass i call it So if subclass has int ** p; And during initialization (in subclass space) i call (*subclass.p) = mainclass.p; Where before anything happens like initialization mainclass int * p is set to be 0. I would rather want to stay like it is unless i will have no chocie and have to change it. So (*subclass.p) = mainclass.p; for me it seems like i dereference an unknown address and try to make it 0; However in some other subclass code i would like to do something like (*p) = new int();//new model3f(); So int * p in main class points to that newly created var, And int **p in that other subclass point to int * p from main class which is now not a 0 butnsomething created.. i hope i described that
    21. @cosmopath Clicking on GDNet chat redirects me to the same page as Community->Chat. From here you need to click discord link and it opens a new tab (requesting login/password). I've never been on Discord here yet, as I personally don't like that software. It may actually behave a bit differently if you have Discord desktop software installed - it may just add you GameDev channel (or ask in browser whether you want to run Discord desktop software). Off Topic: Is that CC in your profile pic?
    22. One more thing: in your test, did all of your pawns calculate a path at the same time? And then all of them updated their paths at the same time after 2 seconds? This is usually not the way it will work in-game. Different pawns will move at different times, so you will have less path calculations at the same time than you have pawns.
    23. 1024

      Assimp bones' relation to nodes

      I don't have code around so I can't tell you for sure, but I believe that for each aiBone there is an aiNode with the same name. An aiNode has a parent and children, so you would need to match bones with nodes and then you can traverse the skeleton through the nodes (and get the corresponding bones from the nodes).
    24. I might be interested. I will be somewhat off until 2nd October (as I noted the internet here may be the problem) - as I'm on holiday (and average hotel connection is not really something you can use to setup a call). As long as the above isn't a problem I'd prefer to stay on VFX side - as I enjoy that kind of work (I'd have just one condition - that some effects could make it here on GameDev in form of an article).
    25. I noticed that when importing animated meshes, the total number of bones (aiBone) in the scene might be less than the total number of nodes (aiNode), so my initial thought was "okay their hierarchies are probably not related.. whatever", but then I noticed that an aiBone object doesn't contain a pointer to a parent bone. So my question is how do I calculate the final matrix palette for the bones, not knowing the hierarchy between them? Edit: I forgot to mention that according to some book I read every joint (bone) must store an index to its parent joint.
    26. stealth1997

      Video game soundtrack

      Hi there! We are an independent heavy metal band and we are working on 2 new songs that we would propose as soundtrack for a video game. A demo version of one of the songs is attached If interested please do get in touch here or at info@stealthattack.it and let us know. mixdown demo 4 del 22_8.mp3
    27. Gnollrunner

      Share a pointer

      First it's always very helpful when you indent your code. You can use the code box button <> to help you out. Second subclass usually means a derived class. So for instance: class A { ...... }; class B : public A { ..... }; So here B is a subclass of A. What you have are two instances of class A which are members of class Main. Of course you can name them subclass1 and subclass2 if you want but there is probably a better choice of names. Finally, I'm not sure where you intend to put the actual integer. All I can see is pointers to integers. You could put the integer in Main itself, like this: struct A { int* p; void init(int * ap) { p = ap; } }; struct Main { int iInt; A subclass1, subclass2; void init() { subclass1.init(&iInt); subclass2.init(&iInt); } }; Now you can actually have a place for your number. Also you might want to use constructors instead of init functions. Sometimes init functions come in handy in odd cases but here you really don't need them. So that gives us: #include <iostream> struct A { int* p; A(int * ap) { p = ap; } }; struct Main { int iInt; A member1, member2; Main(int iVal) : iInt(iVal), member1(&iInt), member2(&iInt) { } }; int main() { Main clMain(666); std::cout << "member1 value = " << *clMain.member1.p << std::endl; std::cout << "member2 value = " << *clMain.member2.p << std::endl << std::endl; clMain.iInt = 444; std::cout << "member1 value = " << *clMain.member1.p << std::endl; std::cout << "member2 value = " << *clMain.member2.p << std::endl; return 0; } Which outputs: member1 value = 666 member2 value = 666 member1 value = 444 member2 value = 444 I'm not really commenting your design here. There might be some better way of doing what you are trying to do.
    28. I'm sure some AI specialists will chime in but some typical things you might want to look at are: spreading the path calculation over multiple frames hierarchical path finding sharing routes between units reusing path information if several are trying to get to the same goal To go further on the FPS not being a good measure, what you also want to avoid is 'frame spikes' where one frame takes a lot longer to complete than others, causing a dropped frame. This can often cause problems with things like AI, where you have a decent frame rate but you get stutters when particular frames do lots of calculations.
    29. 1024

      Hello, new here.

      Hello, you have to ask specific questions to get answers. Just saying "can you help me" is not enough.
    30. Wild dog

      Hello, new here.

      Im excited to learn Game development,but Im learning Python at the moment. Anyway you can help me out
    31. Ok, thanks all of you guys for your advices! I just accidentally googled on "service-oriented architecture", that suggests not to add any behaviour to the Items, but markers what they can do, and, if somebody will use the item it will be passed to the Service class that will handle all behaviour and Item data changes. Is that may be a good choice to handle this kind of problem? Something like this: class InventoryItem { public: bool isEquipable; bool isUsable; string itemName; string dispName; string someData; //Some methods shared across all items //GetUsages(); }; class ItemProcessor { public: //Will pass parameters struct to usage if any such as caller, target or something else. //Probably should be replaced with a map<actionname, actionReference>. static void UseItem(InventoryItem* item,int useIndex,void* usageData) { switch (useIndex) { case 1: UsageOne(item,usageData); return; default: return; } } private: static void UsageOne(InventoryItem* item, void* usageData) { if(!item->isUsable) //and if item contains this usage marker return; //do something item->someData = "NewData"; } }; class PlayerClass { InventoryItem* Inventory = new InventoryItem[5]; void UseItem(int userInput1, int userInput2) { ItemProcessor::UseItem(&Inventory[userInput1],userInput2, nullptr); } };
    32. You said that pawns don't block each other. So, once you calculate and cache a path, it can only become invalid if you build something over it, right? In that case, you don't need to update your path every 2 seconds. Only update the paths when the map changes. Another thing to note is that FPS is not a good measure of performance. Frame time (the inverse of FPS) is a much better metric. For example, if the calculation for one pawn takes 1 millisecond, with one pawn you will have 1000FPS and with two pawns you will have 500FPS. That can make you think that "omg, adding another pawn loses me 500FPS, it's so unoptimized", but that is not the case.
    33. Hello. Sorry that I did not reply for a while. I've been doing this game a very long time. Demo version of point & click adventure "One helluva day" is available on Steam. http://store.steampowered.com/app/603680/One_helluva_day/
    34. so I have 3 classes main class which stores a pointer struct Main { int * p; A subclass1, subclass2; void init() { subclass1.init(p); subclass2.init(p); } }; and two subclasses struct A { int * p; void init(int * ap) { p = ap; } }; Now I would like to create a pointer from subclass1 or subclass2 that will actually create a pointer in Main class, so subclasses can use the same int from main class heres what im trying to achieve in first scenario you see same windows so you see that on phone1 and phone2 theres a blue wireframed object that im trying to share between multiple windows, but when I change projection window I cant see it, so I need a shared pointer https://youtu.be/9HLDsrm7R2w I already messed with int ** p; for subclasses but im missing something (maybe because int * p in main class is 0) and I cant assign it by int ** subp = (*mainclass.p); if someone tells me that I could use shared ptr then I ask him to provide some example code for me cause I never used it and have no xp with it. However pointer to pointer c style would be the best approach for me thus theres something wrong in the code I dont fully understand so far, int * p in main class has to be 0 until its not created by subclass... maybe I somewhere use it where I shouldnt, well I just changed the code from * to ** and just switched from if (p ==0) return; to if ( (*p) == 0) return; etc. but theres few thousands lines I need to check so a short brief of handling such types would be appreciated..
    35. Alberth

      shooting bullets

      It helps if post questions instead of statements, as I cannot given an answer to the latter. Anyway, assuming your plane has an direction of flight and a position, you can use those to compute the path where the bullet should fly.
    36. Hi Vilem, Chrome is slightly slower again but the main issue is we have not optimised the game yet so it will take a long time to load if you are on a slow connection (webGL does not support mobile devices either). We are still in development and i would have preferred not to show the project yet but there is a bit of a catch-22 with getting people involved so we can finish and showing them what we have so they want to get involved. It can very time consuming to optimise early content that may well be changed based on player-feedback. If you are interested in helping us clean the site up or creating VFX for the game, we could have a call where i show you the game in the editor. Otherwise, stay tuned and we will soon be releasing a public Alpha. Thanks
    37. Steven Ford

      C++/WinRT

      Ah ok, never used it myself. Just raw Win32 calls - maybe that's why I've been able to overcome my initial dislike of UWP as it is somewhat nicer than what I've been used to 😉
    38. Scouting Ninja

      Quaternion, why divide angle by 2?

      Yes, sorry I should have mentioned that I was only expanding on the answers above. They where correct, we divide by 2 to mirror the rotation around a hyperplane. You could achieve the same static result using -1*theta. The problem is that your rotation animation will look like it is imploding, literally rotating within itself and disappearing. So the theta/2 rotates in on two other axis, 90 degrees on one and 90 degrees on the other; like a Rubik's cube. This is what a hyperplane is, we make a 3D rotation by manipulating 4D. In 3D space we see a smooth left/right hand 180 degree rotation. While in 4D it is 90degree on one axis and 90 degree on the other. Quaternion is one of the common Euclidean Hyperplane types. Divided into two hemispheres. +1 and -1 hemispheres. I hope this helps a little. I recommend working your way up from 1D.
    39. After only Rutin did the baseball challenge, and the difficulty of coming up with ideas that will appeal to all, could it be an idea for us to use a crowd based system for deciding between challenge topics? How would it sound if either the organiser (or the group members) brainstormed a bunch of suggestions, and we used a poll to decide on the most popular choice? That way we could get as many as possible of us to have a go. Thoughts?
    40. I really wanted to try it out - although it was not possible for me. The loading gets probably stuck (or it may just be too huge to download over the network while I'm travelling). I've been trying on Chrome, so that may be another problem. While the project looks interesting, it lacks any information on the site - without being able to run the demo one can't have any idea how it looks/what it plays like (even though as it is in Unity, I might be interested in making at least a bit of VFX, which is kind of a hobby for me).
    41. An early version of the game can be found here: http://sophiesgames.com/QuestIon/ but there is a good chance it wont work as intended due to it being pre-alpha. Get in touch for a demo. The game has you play as a young child in an oasis within a large desert. As you explore you will come across a brutal event and be forced to make a decision. It is a short 20 minutes worth of game play where we are aiming for high calibre work to show of something we can be proud of. All of the other jobs required are done or in the process. But there are positions left: * VFX – Someone to who can work with Unity to create such things as a spell cast visual, lighting and fancy screen fades, etc. * Web – You can see our current site is a bit clunky. I am a programmer but I have no web background and im moving forward slowly. If someone wants to help implement the custom theme, make it mobile friendly, etc. then get in touch! Get in touch if you can help with any of it. I am a developer of 8 years who teaches Unity at college and has experience in the games and commercial sector as a programmer. Most of the programming for the game is done, now we are just pulling it all together with some beautiful art!
    42. Hodgman

      How to distribute pre-release game?

      I think that's a typo. They refer to it as "test flight" on the next line. Test Flight used to be an iOS/Android service for this kind of thing, but then it was bought out by Apple and is now the official way to do this on iOS.
    43. My general rule of naming is, no matter what you name your variables and functions, there are people who will look at your code and think your names are stupid. So IMO you might as well not spend a lot of time mulling over it.
    44. Your family of overloaded functions or your function template (why do you have a struct template instead in your code example?) should not try to list types in its name; it should be named for what it does. Forbidding unsuitable types is a job for the function implementation, presumably by testing compile-time predicates.
    45. mathematical

      Quaternion, why divide angle by 2?

      This is a bit more confusing than i expected it to be. @Scouting Ninja If i'm getting your example correct, you have two angles on the circle ~135 and ~225. When projected onto a 1D line, both angles look the same, even tough they are not. In this example, if we where to divide the angle by 2 it would effectively eliminate the bottom hemisphere of the circle, mapping 135 to 67.5 and 225 to 112.5. This would make it so all 360 degrees are mapped to the upper hemisphere of the circle, meaning if we where to project it onto a straight line, every value would be visible. Did i get that right? Expanding that to quaternions would make a lot of sense. @JoeJ I'm still working trough visualizing the numbers you provided, will probably have some question later. @Maciej Mizerski That's a bit above my head. I was not aware that i,j,k represented rotations of 180. I'm not sure how eliminating the divide by 2 would cause them to be 90 instead of 180... What i think i get from your explanation is that when dividing theta / 2, then sin(180/2) = 1, so at 180 degrees i = 1, I'm not really grasping the significance of this.... I've read a few sources that explain the need to divide by 2 as a result of conjugation, so multiplying a vector would be \(qpq^{-1}\), that is q needs to rotate p half way, then q-1 needs to go the other half. One of the most intuitive explanations i heard about this is that we're not just rotating on one plane, rather both the real and vector parts of the quaternion rotate the vector. So you want to rotate half way, then invert the quat and rotate the other half. Inverting will undo one of the planes that we're rotating on, putting the vector back on a 3D plane.... I'm going to write some code tomorow to try and visualize both qp and (qp)q', see if i can maybe make sense of that.
    46. I think Godot will be an excellent choice for starting. I'm just evaluating it to do my next mini-game, and have been working through tutorials / testing 3d skinned model import. I also used Unity for the previous mini-game and while Unity has many commendable properties (and a wealth of tutorials), the words I would use in comparison to Godot would be things like 'incoherent', 'bloated', 'slow', 'mess'. Perhaps this is partly because at the moment Unity has more features / custom addons which don't necessarily work well together, whereas Godot is younger, more focused and hasn't had the opportunity to make so many design mistakes as Unity. But it is hard to deny, putting on my 'software engineering' hat, Godot (to my eyes) simply seems a far more proficiently written piece of software. Godot also nicely wraps up everything into one simple package, the gd script editor is built in and has autocompletion, debugging etc, no need to install other editors / .net frameworks etc etc. I don't know about on windows, but on linux the entire thing (engine / editor / help files etc) is installed as an elegant single 49 meg .appimage, which is fantastic. That said, I haven't gone through a project life cycle with it yet, and am expecting to encounter bugs / the need for workarounds, particularly because I am using 3d which may be more in a state of flux (and hasn't been proven with a large number of games). The 2d part of the engine seems to get glowing reviews though.
    47. So, i finally made a decision. I will use Godot and learn GDscript, the programing language of Godot, similiar to python. From what i've seen so far, creating 2d games in Godot has better tools (less time needed for the same outcome) than Unity, the user interface is well arranged, and i like it how the projects can be organized. A big THANK YOU to all who gave me advice, even though i didn't chose anything that was suggested, it helped me a lot to check out the right game engines and make a decision.
    48. Hi all, I'm very picky about names and recently I had to add a meta programming class to have one function which accept char, int, float, double, T& and T*. if it's only reference or pointer you would call it TConstPtrOrRef like that: /*! \brief Constant pointer or reference of T. */ template< class T > struct TConstPtrOrRef { typedef const T& Type; //!< Type. }; /*! \brief Constant pointer or reference of T. */ template< class T > struct TConstPtrOrRef< T* > { typedef const T* Type; //!< Type. }; But if you add char, int, float and double then it's not only ref or ptr. Any opinion of a good name ? Thank you
    49. Tom Sloper

      How to distribute pre-release game?

      This is a marketing question. Moving to Business forum.
    50. When you need to share a pre-release version of a game with a showcase, reviewer, alpha-testers, etc, what do you do? I know Steam and VivePort offer some closed alpha-release options. I've seen a service mentioned called "Pre-flight" on the MIVS FAQ (http://super-archive.magfest.org/mivsfaq) but I can't seem to find it. What other options are there and how well have they worked in your experience? -M
    51. In this case we need whatever magic d3dx9 does when it converts RGBA data to U8V8 data (which is clearly more than just lopping off 2 channels based on some testing I have done). If DirectXTex can do that same magic conversion, that would be good. Otherwise I will keep looking for some code that can do it :)
    52. Hello everyone. I have recently been applying for various entry level game programming jobs, but have not so much as heard back from most of the companies. I was wondering if I could get some feedback on my resume and programming portfolio, in case they are the reason I'm not hearing back from companies. My resume can be found on my linkedin profile at https://www.linkedin.com/in/jonah-brooks-16b49159/ (I've also attached it to this post) And my portfolio can be found at https://amperian.itch.io with source code at https://github.com/JonahBrooks I've searched the forums for other people asking for portfolio feedback and incorporated most of the suggestions they were given. Would it be significantly better if I made a website with code snippets and videos, or is my current approach more of what employers are looking for? Also, judging by my resume and portfolio, do I even have enough experience for an entry level position, or should I wait until I've made a few more games on my own? Finally, should I aim for self-publishing something on Google Play and/or Steam, or just stick with itch.io demos for my portfolio? Thank you for your time in reading this and for any feedback you may give. Jonah_Brooks_Resume.pdf
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!