• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

313 Neutral

About Eleventy

  • Rank
    Advanced Member

Personal Information

  • Interests


  • Twitter
  • Github
  • Twitch
  • Steam
  1. Thanks! Good to know that any projected plane will work with this method, and that it is fast - once I create the rest of the 3D counterparts to the 2D system I already have in place, I will implement this method.
  2. I am seeking advice regarding whether the following algorithm works (and if so, is the fastest) for a 3D line segment intersecting with a 3D cubic bezier curve: To test for intersections of a 3D line segment with a 3D bezier cubic path segment, project the 3D cubic path segment and the 3D line segment along a plane coincident with the 3D line segment. The chosen plane orientation should not cause the resultant 2D bezier cubic path segment to be linear unless its 3D counterpart is also linear. By default, the orientation will be along the Y axis (a vertical plane perpendicular to the X-Z axis). Then, perform a normal 2D bezier cubic curve/2D line intersection. For each found T value in the 2D intersection, only keep the T values in the 3D counterpart curve having all three coordinate values that are intersected by the actual 3D line segment.
  3. Rotation matrix multiplication causes Gimbal lock

    Depending on if you want to have true 360-degree freedom, you could implement a system where each object has an up vector, a right vector and a forward vector. When rotation occurs, those three vectors rotate along with the object. Whenever an object rotates, you then use one of those three axis to rotate the object around, using the arbitrary rotation axis matrix: https://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle Example code (axis is the axis of rotation and radians is the degrees to rotate): axis = vector_normalize(axis); float ct = cosf(radians); float st = sinf(radians); float ci = 1 - ct; float x = axis.x, y = axis.y, z = axis.z; return matrix_make(ct + x * x * ci, y * x * ci + z * st, z * x * ci - y * st, 0, x * y * ci - z * st, ct + y * y * ci, z * y * ci + x * st, 0, x * z * ci + y * st, y * z * ci - x * st, ct + z * z * ci, 0, 0, 0, 0, 1); As an example, when an object pitches up, rotate the object along the right axis and also rotate the "orientation" vectors along that same axis. When you perform another rotation (for example, turning right), rotate the object around the new up vector for the specified number of degrees (and, also rotate the orientation vectors). Another option is to use quaternions.
  4. Torque and Angular Momentum

    Thanks! Your response is very helpful. I will look through my code and see where there might be one of those pitfalls you mentioned happening, as I do not feel that having to flip both the X and Y axis on the 'forward' vector and the Z-axis on the 'up' vector for the look-at matrix, in conjunction with having to flip all Z components of the position vectors for everything in my world is indication that I am doing everything right.
  5. Torque and Angular Momentum

    Ah, I realize now why I have seen some other tutorials have the cross products reversed - given that the cross product is not commutative, that never made much sense to me until now. Good to know that matrices (and perhaps other components) also have this same issue. Now that I think about it, I did have to do some weird logic calculating the "look at" matrix and reverse all of the Z coordinates in order for my scene to even render and for movement to work correctly to begin with, as OpenGL and Metal is apparently configured to use a right-handed projection matrix by default (with no known way to change it).
  6. Torque and Angular Momentum

    So, it appears that I am using a left-handed coordinate system, and the cross product in such a system always goes the opposite direction (you can see such an explanation here: https://betterexplained.com/articles/cross-product/). In my example above, in the right-handed coordinate system (positive X is to the left, positive Y is straight ahead, and positive Z is straight up), I would be calculating [1, 0, 0] cross [0, 1, 0], yielding [0, 0, 1], which looks correct. If I use the left-handed version of the cross product, I will get the correct result of [0, 1, 0] for the angular momentum vector. Weird that different coordinate systems even exist at all. I have always worked with the left-handed system in game development. Now I will have to replace all of my cross product calls with a special 'cross_lh' version, as my entire game engine has been unknowingly developed in this left-handed system.
  7. Hello, I am currently in the process of developing angular momentum for my game, and I am implementing torque for the purposes of changing objects' angular momentum. If I understand torque correctly, it is calculated by the position vector (R) (position the force is applied relative to the object) with the cross product of the force vector (F). The torque is then added to the angular momentum, resulting in the object starting to rotate. The angular momentum vector determines the direction the object rotates. An angular momentum vector of [0, 1, 0] should then cause an object to rotate to the left (it would spin counter-clockwise). So, to get an object to spin to the left, one would apply a force of [0, 0, 1] to the position of [1, 0, 0] (e.g. a force going forward applied to the right of the object). Positive X is to the right, and positive Z is going forwards. However, when I calculate R x F (e.g. [1, 0, 0] x [0, 0, 1]), I am getting torque result [0, -1, 0], which would cause the object to rotate clockwise instead of counter-clockwise. I figured my cross product calculation was wrong, but even Wolfram Mathematica gives me the same result. Am I missing something? Even the animations on Wikipedia's explanation of what torque is demonstrates that a force applied to the right of an object causes it to spin to the left (the animation clearly shows the vectors, and the torque vector is going upwards). Not to mention, this is what happens in real life. Is there something different about the coordinate system being used?
  8. Worth a buck

    [quote name='Servant of the Lord' timestamp='1322450563' post='4888302'] [size="1"]*bunny hops into the conversation*[/size] [quote name='Eleventy' timestamp='1322443060' post='4888276'] Don't use PayPal as the only way to accept payment. They'll randomly put your transactions and account on hold when they feel like it, especially if you are a startup microISV. Go with a real merchant account. Or have a merchant account / PayPal account combination. [/quote] Any recommendations/preffered-vendors that you have personally used? [/quote] I obtained a merchant account from [url="http://www.gotmerchant.com/"]http://www.gotmerchant.com/[/url]. Their application process is pretty straight-forward. They also have low fees and very good customer service. The only thing you'll need is standard ID documentation and at least one valid business-related trade reference (such as a vendor, supplier, marketing partner, etc). If you don't want a full-blown merchant account, you can also go with other services such as FastSpring and 2CheckOut. Though, I have never used the last two. P.S. You should do a Google search for "paypal microisv" and read the first article.
  9. Worth a buck

    Don't use PayPal as the only way to accept payment. They'll randomly put your transactions and account on hold when they feel like it, especially if you are a startup microISV. Go with a real merchant account. Or have a merchant account / PayPal account combination.
  10. How do you market/advertise you indie game?

    I was faced with similar challenges earlier. There is actually some good advice in a thread of mine here: [url="http://www.gamedev.net/topic/604831-has-anyone-here-ever-launched-their-own-product/"]http://www.gamedev.net/topic/604831-has-anyone-here-ever-launched-their-own-product/[/url] One good avenue for gaining traffic is blogs. Find a blog site with high traffic and ask the owner to advertise your product for free (or for a cost). Another good method for "building a community" would be to run a free beta test.
  11. Post your website, get candy

    Might as well post mine here too (everyone else is). This is currently a product of mine (in the beta stage): [url="http://chronowall.co/"]ChronoWall[/url] It's an advanced, seasonal and time-based wallpaper manager.
  12. Has anyone here ever launched their own product?

    Thank you for your comments. The next beta version (0.91) will definitely have a short (7-day) period where the user can use it without a beta key. That will probably draw significant interest and beta testers. At least they can see a product that is fully functional. Mayple - thank you for recommending the 10minutemail.com and twitter/twiends methods (I was unaware of those before). You reasoning of using that email service makes sense - given that I am not well-known, people probably haven't developed a level of trust for me yet. That twitter marketing idea sounds very interesting and I will definitely be taking that avenue. I also discovered StumbleUpon, and they have what is called 'Paid Discovery'. I will try that as well. Again, thanks!
  13. Has anyone here ever launched their own product?

    I posted too soon. I guess I am just too impatient these days. If anybody is curious on how I managed to get this to work, Facebook turned out to be a very good avenue. I managed to get several signups in about an hour for a mere $1.50. Thank you all for your support anyway. I'll gladly help anyone else who is struggling with getting recognition.
  14. Has anyone here ever launched their own product?

    Okay, I have placed the software in a few locations. I am getting downloads and installations, but no beta signups. Are people against giving out their email address to an individual they have never met? Do you think it would be better to make the beta version not require a key or a signup process (just an expiration date)? Please respond with any comments and/or suggestions.
  15. ChronoWall

    Hello GameDev.net, I am currently looking for beta testers for a product I have been developing for the past year. Note that this isn't a game, but a desktop enhancement application. I figured this would be an appropriate place to post this since many of you here like customizing your computers. This software's main function is setting your desktop wallpaper based on the time of day and time of year. In addition, you can apply time-based effects to your background - i.e. having an image appear more red as the sun sets (with one of many available image adjustment "templates"). There is also a collage feature. Images can come from several different sources such as your computer, Flickr/Google/Bing/Yahoo, Facebook and media RSS feeds. Here are a few screenshots (many of the background images used are made by [url="http://www.digitalblasphemy.com"]digitalblasphemy.com[/url] - used with permission): [img]http://chronowall.co/gamedev/ChronoWall_Sample_Wallpaper_-_Leaf_Temple_(Later).png[/img] [img]http://chronowall.co/gamedev/ChronoWall_Collage_over_Sand_10.png[/img] [img]http://chronowall.co/gamedev/ChronoWall_Image_Effects_-_Green_and_Gold_-_Afternoon_to_Sunset_3.png[/img] [img]http://chronowall.co/gamedev/ChronoWall_Collage_over_Pre-Dodenfell.png[/img] You can personalize your desktop in ways that can quite literally change your mood / work environment. I use it all the time at work, and it personally makes a big difference in productivity for me. If this sounds like something you would be interested in beta testing, please let me know! Keep in mind that this software is still in beta, so you should expect bugs (the full disclaimer is on the product website). Link to website: [url="http://chronowall.co"]ChronoWall[/url] If you decide to sign up to be a beta tester, please use the 'sign up' link on the website. The reason for having a sign up form is so that I can maintain communication with everyone involved in this beta test. If for some reason that form does not work, you can PM me here and I will sign you up manually. If you want to test the software's features without signing up, you can download the installer on the 'sign up' page. Note that this software will not set your background until a beta key is entered (for the time being). Here is the full description of the product (taken from the product website, as of 06-30-2011): [quote]ChronoWall is an all-in-one desktop wallpaper manager for Microsoft Windows 7/Vista. One of the key features is the ability to specify which wallpapers to use based on the time of day and time of year. Beyond that, ChronoWall offers many unique ways to view your photos on your desktop. The underlying linear effect layering system allows you to change the way an image looks based on the time elapsed. Imagine being able to look at a green meadow and have it red-shift as the sun nears closer to sunset. Or if you want something more out-of-this-world, you can colorize an image throughout the entire spectrum as time elapses. There are several effects that can be applied to an image. Another feature of ChronoWall is the ability to have photo collages overlayed on top of your background. Collages can be displayed in several different styles, and the images used in them can come from several different sources. You can have your friends from Facebook on your desktop cheering you up as you work on a project, or have a Flickr search of a beach vacation giving you motivation. For each image source, you can specify exactly how and when you want to look at them. For instance, you can look at a search of beaches from Flickr during a Summer day and images from NASA at night. You can also mix several image sources together. When image sources are mixed together, you can specify how often you want to see each of them. Each image source can be displayed as the background or as a collage, giving you endless possibilities.[/quote] Thank you for your time. Comments and suggestions are welcome.
  • Advertisement