Jump to content
  • Advertisement
    1. Today
    2. Zerolegends

      Project FS My New technical Platformer

      Our Kickstarter is now live
    3. Find a Pulse

      Music Composer Looking for any Project

      OK. I can give many examples. I just ask that the broad intent be respected; when I made this music I was NOT trying to make computer game music. Sometimes I do "compression sessions": I give myself a week to make an enormous amount of music. This ends up being somewhat repetitive music. Anyway, here's a Youtube Playlist that I made in about a week. I made all this a few months ago. The broad intent was to do a trial run for if I ever make a 24 hour music stream. So if I am allowed to put in a link on this site. There are no adverts. At least from me; it's not a monetized youtube channel. As for what the morons do who run youtube I have no idea. My playlist is called mindscapes, under my youtube handle musical neptunian at: https://www.youtube.com/playlist?list=PLxFQ4Lk-2iOnzND9dQWQekOaprTuzDUsg If I had to nominate which track could have been used for a computer game maybe "Tronz" the second track where I made game gun noises. I am 100% self taught at making music. I have read theory from books. I also wanted to experiment with video content here. So I am aware that my videos are not fantastic; I am not normally a video producer. Thank you.
    4. You don't need to code to be hired. It's not expected. You could easily get by without a line of code.
    5. First off, I'm not a professional, but I love reading Gamasutra so here are a few links for you to consider... https://www.gamasutra.com/view/news/127694/Opinion_How_Can_Entry_Level_Game_Designers_Stand_Out.php https://www.gamasutra.com/blogs/TomPugh/20181022/329044/Level_Design_Tips_and_Tricks.php https://www.gamasutra.com/blogs/AhmedKhalifa/20190610/344344/Level_Design_Patterns_in_2D_Games.php I realize the first article is a bit old, but it's still relevant. Then you have 3D level design vs. 2D level design. I think you should have at least one 2D level design for your portfolio.
    6. Taylorobey

      Music Composer Looking for any Project

      Do you have any examples of your work?
    7. I could help as Character Designer. I've been part of few projects, all of them stopped due to various reason, even tho I'd like to be part of your project. My work: www.artstation.com/velo.emp Discord: Velo S. #8378
    8. I did send you a message through Discord my id is #8378 I could be part as Character Designer, Visual Designer and concept artist. ArtStation https://www.artstation.com/velo.emp
    9. velo.dir


      I'm a concept artist and character designer. I'm interested website: https://www.artstation.com/velo_emp email: velo.emp19@gmail.com
    10. Yesterday
    11. Thank you for the response! The process sounds quite straightforward and beneficial which is encouraging. Do companies in this industry typically expect for game level designers to be proficient with code? Is coding heavily emphasized in that position? I appreciate your assistance in this matter.
    12. Literally, all you need is 4ish good quality levels. Polish them until it's perfect. It will wow possible employers and can get you a good position.
    13. I was reading up on Maya rigging and found info that looked pertinent to this thread. From https://www.riggingdojo.com/2014/10/03/everything-thought-knew-maya-joint-orient-wrong/
    14. You should listen to what people are telling you. Some of them (not me) have written books and therefore have the experience, which I believe, you was a bit looking for, when starting your topic. If you see computer graphics best sellers books, which will definitely be sold more than a specific math book, all of their authors have a decent job. None of them made it their only mean to earn money. You should also be interested not only in the yes (I highly doubt you'll find a lot of interested people here), but to the no too. This will give you an overview of the proportion of game devs who might be interested in your book. Also, when wanting to read a book, most people first want to know the background of the author. Do you have a PhD ? A master degree ? Did you work in some research centers ? Did you applied your work in successful situations ? All of this is important, I believe.
    15. GreenGodDiary

      What can I expect as a Junior Programmer?

      Thank you all for sharing, I already feel a lot less nervous (and more excited) than before! ❤️
    16. WoW! Thank you so much. I will try to do that! I will post the code when i have it! Thanks!!
    17. I think it's more that I just didn't remember all the details from the videos you posted. In any case, I have one more suggestion, which is to bypass UE's Euler angles entirely and use quaternions to build the UE orientation instead. This eliminates the issue of UE's Euler-angle order, which could simplify things. Previously I mentioned that it seems the relationship between Euler angles in Softimage and UE (setting aside the issue of angle order) is as follows: UE X = -(Softimage X) UE Z = -(Softimage Y) UE Y = -(Softimage Z) Based on this, the process would be something like this: - Make sure the Softimage Euler angles are in XYZ order. (You can use any order, but for other orders the following steps would be different.) - In your conversion code: - Build a quaternion from the world X axis, and the negative of the Softimage X angle (call this qx). - Build a quaternion from the world Z axis, and the negative of the Softimage Y angle (call this qz). - Build a quaternion from the world Y axis, and the negative of the Softimage Z angle (call this qy). - Multiply these quaternions together in the order qy*qz*qx to yield a new quaternion q. - Use the FRotator constructor that accepts a quaternion to construct an FRotator instance from q. - Use this FRotator instance when creating the transform for the object. - If that doesn't work, you could try reversing the quaternion multiplication order, that is, using qx*qz*qy instead. There are enough variables and uncertainties here that I'd be (pleasantly) surprised if what I described here works out of the box, but it might be worth trying. If you try it and it doesn't work, maybe you could post your new code, as there might be errors someone could spot. Regardless of whether I got all the details right in this post, the idea is to bypass UE's Euler angles entirely and construct the orientation directly yourself using quaternions and Softimage's Euler-angle values.
    18. Hey hello! This is your favourite Weekly Updates blog coming in early! Last week was quite light in workload. It's essentially another list of new activated items. Let's get this list started, shall we? The Portable tape player Focus: None A nice portable tape player. It even comes with a set of headphone Stats None Description A portable tape player modelled after the mythical original Walkman. This item simply lets the player skip the currently played song. It's straight forward. The SADBOI Focus: Hardvapor What sad times we're living in... Stats AGL -10% Description A somehow abstract representation of depression. By using this item the player can, upon killing an enemy within a time limit, spread the wonderful gift of depression onto any other enemies nearby. A depressed enemy will avoid combat and get away from any perceivable threats. The Hourglass Focus: Future Funk A rather archaic hourglass. You don't know why but you inherently hate it. Stats AGL -13% Description A quite simple hourglass directly taken form Windows 9x. With it, the player can temporarily slow down time. The Secret Tape Focus: Vaporwave Whoa! An unreleased tape from your favourite artist! This must be worth millions! Stats LCK -30% Description An audiotape. With it, the player can force the level to spawn a secret room somewhere. Quite handy if you're low on stuff... Neons Focus: Vaporwave Oh wow! Look at these bright neons! Be careful not to blind yourself with it! Stats AGL -16% Description A neon light. It spells "Wow" in a quite 80s way. With it, the player can blind any enemies looking straight at them. A blinded enemy won't be able to see very well. But be careful, they can still hear you! Spooky! Focus: Hardvapor What a morbid item! Really, who likes to hold onto these type of stuff? Stats HP -14% Description A miniature coffin. With it, the player gains the ability to drain health from dead enemies. Just kill them within the time limit and boom! More heath. Austerity Focus: Hardvapor Times are, like eggs, really hard. Sometimes you got to cut some unnecessary things out! Stats None Description A plain-looking pair of scissors. With it the player can cut an enemy in half, thus creating two smaller and weaker enemies. Megaphone Focus: Hardvapor HEY! CAN YOU HEAR ME CLEARLY? Stats HP -10% Description A standard megaphone. Using it makes a loud noise that can alert any nearby enemies of your position. It can even frenzy enemies sometimes. Antifreeze Focus: Vaporwave A container of antifreeze liquid. Whatever you do don't drink it... by yourself! Stats DEF -18% Description A container of antifreeze. Usually made for motorized vehicles, this can be quite handy IRL. With it, the player can make a temporary ally of a targeted enemy. Next Week Well, next week is my vacation, so don't expect a whole lot. I'm planning to make a bit of brainstorming here and there but nothing hard or anything... I don't plan ahead of time, so I'm not sure about the week after that. Right now my brain is in recess mode so yeah! So I'll see you in two weeks! ciao!
    19. davidkilmer

      Wild Realms

      Wild Realms is a 2d top down survival game set in Old Testament time period. You are uncertain of why you are here, but you do know it will get dark soon, you are thirsty, and you will eventually need food. Survive in this rogue-like game with procedurally generated worlds. Protect yourself from natural disasters, defend from predators , hunt game, gather resources, build camp, and live for as long as you can. check out the dev blog at http://wildrealms.dev
    20. Found this C++ Class References in the XSI docs about Rotation and Quaternions. cpp/classXSI_MATH_CRotation
    21. kseh

      Decent bare bone 2d spritesheet style

      The short answer that I have is that it takes practice, planning, and experience to elevate programmer art to better looking programmer art. You absolutely can find an artist and make much prettier pictures to use but you still have to figure out how to best use the assets you'd be provided with. Since you sort of asked for a story about experiences, I'll share. Though, I don't imagine any of this should be considered "best practice". (Sorry, looks like it got kinda long and probably does not apply to your situation but rather than a specific solution maybe think of it more like the degree of planning that can be involved.) With my programmer art and being a hobbyist game programmer, I've tried to just keep it as simple as possible. Right now my base human graphic is side view only and is just a rectangle with feet and 1 black pixel for an eye. Then I made a couple simple, one color shirts (with a bit of a noise texture) to go on the upper body, pants for the lower body, hats and helmets for the head, and a sword to go in the hand. When I started with this base (it was while working on the dungeon crawler challenge), I was fine with a game where everyone just looked like basic primitive shapes. Then I started putting the clothes on them and they just started looking human. Where things get particularly complicated is with animating limbs. Some time back, I figured on dealing with this issue for arms by making the hands completely disembodied. I don't need to deal with creating clothing frames for every which way that my character might wave his arms for whatever dozens of actions I may want to include. Instead, the hands are kinda like the clothes in that they're painted separate from the main body. Hands can hold one object, follow along with the character, and, when commanded to do so, can be engaged in an animation such that the hands are moved relative to where the player is. In theory I could have done the feet disembodied the same way but I ended up just with short simple black lines for legs that I try to either completely obscure or expose with whatever clothing is chosen. Robes, dresses, skirts, and shorts all generally look about what you'd expect as the base sprite runs a single basic walk animation under the clothing. Where it doesn't work quite as well is with like a pair of jeans where the clothing would have to follow the legs. If I make the legs of the jeans wide enough, it can look mostly ok but it doesn't look like the legs are moving while the character is walking (I don't animate the jeans). I think I've had some "jeans" work such that the bottom pixels implied a bit more length than the shorts and with the legs being black you can kinda look past the lack of further detail. I only implement a left and right side view. I find that straight on front and back views are tougher to work with. At first I felt like a cheating and told myself that if I ever wanted to really release something I'd create front and back views later with an artist. Then I saw some games released in Google play where the sprites only had left and right side views and at that point it occurred to me, the view as I have it is just fine and I'm not going to worry about other directions unless I really find a need to. The more details you add the more it seems to highlight the other details and flaws that you haven't attended to. For example with my hand animations, it's great that I can make the hands sway as the character walks and I can use it as part of a sword thrust or item use animation. But as it turns out, at the moment, my system isn't setup such that I can play an animation then have the character go do something else when the animation completes. For my current project, I want to have a lot of little detailed actions that the characters do as they progress through a story. It works ok for some and not others. And the ones that it doesn't work for seem like they really stand out to me. Much of putting a game together is smoke and mirrors. If in your game play you fudged a randomization result such that you knew that the player was going to get an entertaining experience you wouldn't feel guilty about that at all. Whatever tricks you can think of to elevate the look and feel of your game, give it a shot. I have lots of offset values, collision rectangles, layer positions that I manually tweak to make a level look and function better. Relying on whatever system I've coded to do it right every time isn't always practical.
    22. Alessio1989

      DirectX 9 compilation problems

      DirectInput8 is the last version of direct input, so if he is using those APIs he still need to link it. DirectInput also is still the only "standard" API on windows exposing force feedback (outside simple rumble) on gaming devices like wheels and joysticks, of course for mouse and keyboard is not needed at all and there are better alternatives (windows messages, raw input, winrt events ecc..).
    23. RE: Alberth's link: Testing every possible combination of bits along every code path is a straw man and I don't know why the author of that PDF even mentions it at all. Programmers aren't that mindless. Test one specific configuration of each obvious case. If you realize there's another case you need to test, test it whenever you realize you should. Don't try to programmatically brute force every bitwise combination of possible variable values, because that's stupid. Unit tests can prove that a bug exists, but they cannot prove that bugs do not exist. Bugs will happen. When you discover a bug, add a test for it then fix it and leave the test there to prevent someone else from breaking it in the future.
    24. @Zakwayda Yupp. Thats the Software iam using. XSI. In my second video on page one of this thread i show exactly how i set the rotation order in the local kinematics property editor. You must have missed it. This is why i was sure that the order is XZY because it changes the XYZ values to those in UE4. Regarding the quaternions: I know that i read some option in the animation editor that mentioned quaternions. I will look into that! And thank you for digging with me! Here are the actual docs: Autodesk Softimage XSI Docs
    25. Fair enough 🙂. Just thought I'd point some of those things out though since they could still potentially work on a CPU as well, since they're not relying on hardware rasterization (or at least not nearly as much). I would also take a look at some of the recent work in raycasting into voxel grids, and/or the cool things that people have been doing with directly rendering signed distance fields. I may not be understanding the issues here, but I don't think there's anything stopping you from from doing the same "1 shader thread per SIMD lane" style vectorization that's used on GPU's. ISPC supports this model natively, with the added bonus that it's explicit about scalar vs. vector operatations.
    26. I'm not sure how helpful any of this will be (if at all), but I'll offer a couple more things. I found this: http://softimage.wiki.softimage.com/xsidocs/transforms_RotatingObjects.htm I assume this is the documentation for the software you're using, although I could be wrong about that. On this page is a section titled Setting the Rotation Order. It says that in the 'kinematics property editor' you can set the rotation order for (presumably) Euler angles, e.g. XYZ, XZY, etc. If this is in fact the documentation for the software you're using, perhaps you could look in the kinematics property editor (if you haven't already) and report what Euler-angle order you're using, as that could be relevant information. Also, in the section titled Animation and Rotation, it mentions that you can use quaternion keys. I don't know what this means exactly in the context of this particular software, but you might double check and make sure you're right that you can't export orientations in quaternion form. (The reason I mention this is that quaternions might be easier than Euler angles to convert from Softimage to UE.)
    27. Janooba

      Close Quarters Development: Realistic Combat AI Part I

      What method do you use to determine the likely position of an enemy? Does it just try to calculate the nearest cover from the remembered position?
    28. chatch1111

      Best place to start in gaming

      One other thing, become very comfortable with Linear Algebra, I mean comfortable enough where you can explain the topics to a child. Gotta get that fundamental understanding where the language used is irrelevant.
    29. Kevind313

      Best place to start in gaming

      Thanks for that. I'm kind of pleased with the summation of what is needed. I am spending a bit of time coding to better my skills and avoiding blueprints with Unreal and feeling it's not going to be worth the time I'm putting into it if the place I work doesn't use it. I'm working on some old school ideas and enjoying the heck out of doing that. Internships (not much pay) and relocating isn't a problem at the moment, but I see networking as the ultimate test for me. I like to work, but meeting people, getting my name out, making connections, getting the foot in the door is something that will be tough for me.
    30. Here is some code that i wrote already. It moves the given 3 Euler angles into a matrix. #include "pch.h" #include <iostream> #include <string> #include "linalg.h" using namespace linalg::aliases; using namespace std; float x,y,z; //Pre void MatrixXZY(float3 angles, float3x3& matrix); void MatrixXYZ(float3 angles, float3x3& matrix); void MatrixYXZ(float3 angles, float3x3& matrix); void MatrixYZX(float3 angles, float3x3& matrix); void MatrixZYX(float3 angles, float3x3& matrix); void MatrixZXY(float3 angles, float3x3& matrix); void PrintMatrix(string name, float3 angles, float3x3& matrix); void MatrixDecomposeYXZ(float3x3& matrix, float3& angles); int main() { float3 AnglesIn = { 0, 0, 0 }; float3 AnglesOut; float3x3 Matrix; // Matrix [Spalte][Zeile] cout << "-----------------------------" << endl; cout << "Input" << endl; cout << AnglesIn[0] << " " << AnglesIn[1] << " " << AnglesIn[2] << " " << endl; cout << "-----------------------------" << endl << endl; MatrixXZY(AnglesIn, Matrix); PrintMatrix("XZY", AnglesIn, Matrix); MatrixXYZ(AnglesIn, Matrix); PrintMatrix("XYZ", AnglesIn, Matrix); MatrixYXZ(AnglesIn, Matrix); PrintMatrix("YXZ", AnglesIn, Matrix); MatrixDecomposeYXZ(Matrix, AnglesOut); cout << "-----------------------------" << endl; cout << AnglesOut.x << " " << AnglesOut.y << " " << AnglesOut.z << " " << endl; cout << "-----------------------------" << endl << endl; MatrixYZX(AnglesIn, Matrix); PrintMatrix("YZX", AnglesIn, Matrix); MatrixZYX(AnglesIn, Matrix); PrintMatrix("ZYX", AnglesIn, Matrix); MatrixZXY(AnglesIn, Matrix); PrintMatrix("ZXY", AnglesIn, Matrix); } void MatrixXZY(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosZ * cosY; // Spalte 1 matrix[0][1] = sinX * sinY + cosX * cosY * sinZ; matrix[0][2] = cosY * sinX * sinZ - cosX * sinY; matrix[1][0] = -sinZ; // Spalte 2 matrix[1][1] = cosX * cosZ; matrix[1][2] = cosZ * sinX; matrix[2][0] = cosZ * sinY; // Spalte 3 matrix[2][1] = cosX * sinZ * sinY - cosY * sinX; matrix[2][2] = cosX * cosY + sinX * sinZ * sinY; } void MatrixXYZ(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosY * cosZ; // Spalte 1 matrix[0][1] = cosX * sinZ + cosZ * sinX * sinY; matrix[0][2] = sinX * sinZ - cosX * cosZ * sinY; matrix[1][0] = -cosY * sinZ; // Spalte 2 matrix[1][1] = cosX * cosZ - sinX * sinY * sinZ; matrix[1][2] = cosZ * sinX + cosX * sinY * sinZ; matrix[2][0] = sinY; // Spalte 3 matrix[2][1] = -cosY * sinX; matrix[2][2] = cosX * cosY; } void MatrixYXZ(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosY * cosZ + sinY * sinX * sinZ; // Spalte 1 matrix[0][1] = cosX * sinZ; matrix[0][2] = cosY * sinX * sinZ - cosZ * sinY; matrix[1][0] = cosZ * sinY * sinX - cosY * sinZ; // Spalte 2 matrix[1][1] = cosX * cosZ; matrix[1][2] = cosY * cosZ * sinX + sinY * sinZ; matrix[2][0] = cosX * sinY; // Spalte 3 matrix[2][1] = -sinX; matrix[2][2] = cosY * cosX; } void MatrixYZX(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosY * cosZ; // Spalte 1 matrix[0][1] = sinZ; matrix[0][2] = -cosZ * sinY; matrix[1][0] = sinY * sinX - cosY * cosX * sinZ; // Spalte 2 matrix[1][1] = cosZ * cosX; matrix[1][2] = cosY * sinX + cosX * sinY * sinZ; matrix[2][0] = cosX * sinY + cosY * sinZ * sinX; // Spalte 3 matrix[2][1] = -cosZ * sinX; matrix[2][2] = cosY * cosX - sinY * sinZ * sinX; } void MatrixZYX(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosZ * cosY; // Spalte 1 matrix[0][1] = cosY * sinZ; matrix[0][2] = -sinY; matrix[1][0] = cosZ * sinY * sinX - cosX * sinZ; // Spalte 2 matrix[1][1] = cosZ * cosX + sinZ * sinY * sinX; matrix[1][2] = cosY * sinX; matrix[2][0] = sinZ * sinX + cosZ * cosX * sinY; // Spalte 3 matrix[2][1] = cosX * sinZ * sinY - cosZ * sinX; matrix[2][2] = cosY * cosX; } void MatrixZXY(float3 angles, float3x3& matrix) { float cosX = cosf(angles.x); // X float sinX = sinf(angles.x); float cosY = cosf(angles.y); // Y float sinY = sinf(angles.y); float cosZ = cosf(angles.z); // Z float sinZ = sinf(angles.z); matrix[0][0] = cosZ * cosY - sinZ * sinX * sinY; // Spalte 1 matrix[0][1] = cosY * sinZ + cosZ * sinX * sinY; matrix[0][2] = -cosX * sinY; matrix[1][0] = -cosX * sinZ; // Spalte 2 matrix[1][1] = cosZ * cosX; matrix[1][2] = sinX; matrix[2][0] = cosZ * sinY + cosY * sinZ * sinX; // Spalte 3 matrix[2][1] = sinZ * sinY - cosZ * cosY * sinX; matrix[2][2] = cosX * cosY; } void PrintMatrix(string name, float3 angles, float3x3& matrix) { cout << "-----------------------------" << endl; cout << name << "-Matrix" << endl; cout << "-----------------------------" << endl; cout << matrix[0][0] << " " << matrix[1][0] << " " << matrix[2][0] << " " << endl; cout << matrix[0][1] << " " << matrix[1][1] << " " << matrix[2][1] << " " << endl; cout << matrix[0][2] << " " << matrix[1][2] << " " << matrix[2][2] << " " << endl; cout << "-----------------------------" << endl << endl << endl; } void MatrixDecomposeYXZ(float3x3& matrix, float3& angles) { angles.x = asinf(-matrix[2][1]); // X if (cosf(angles.x) > 0.0001) // Not at poles X { angles.y = atan2f(matrix[2][0], matrix[2][2]); // Y angles.z = atan2f(matrix[0][1], matrix[1][1]); // Z } else { angles.y = 0.0f; // Y angles.z = atan2f(-matrix[1][0], matrix[0][0]); // Z } } Okay. Thank you. Unfortunatly i will have to go with Euler angles. @JohnnyCode mentioned affine transformations and alignment transformations. I will look into that. I guess i have to really learn this stuff to succeed here.
    31. I understand that modeling programs and other types of editors generally use Euler angles. I just mentioned export options because it seems possible that some modeling programs might offer alternatives (such as quaternions) for export purposes.
    32. ACE Team

      Postmortem: SolSeraph

      Many times after the development of a game, at ACE we produce short videos to show early implementations of the titles we launch. For those interested in game development, here is a brief video showing some early concepts for SolSeraph. --- Follow ACE Team: ACE Team website Steam group Discord Reddit Twitter Facebook "ACE Team fans" Facebook page YouTube Twitch Player me Tumblr Instagram Minds Gab ВКонтакте
    33. ricvalerio

      Online RPG

      Follow me on the journey of creating an MMORPG. Along the way, I will share my experiences, implementation choices, techniques, decisions, tips and tricks, until the release.
    34. ricvalerio

      How I am making an MMORPG

      Hi fellow devs. I am doing a video devlog of my journey doing an MMORPG, and along the way, I am sharing my progress, tips, tricks and techniques. I will also be posting tutorials on some aspects of the development, like from example client-server networking, leveraging scripting, creating tools, and a lot more. If you like these topics, make sure to take a look at my channel and subscribe, and I will see you in the next video. https://www.youtube.com/channel/UCyOt8sPTqNxRseUzpzUEQQg
    35. Thanks for your answer. How would such calculations/transformations look like? Iam 100% new to this topic and i dont have a clue what to do. If someone could just point me into the right direction i could find out myself maybe. Euler Angles -> Matrix -> Matrix Operations? -> Back to Euler
    36. You will need alignment transformation, not sure that fitting UE4 will be an affine transformation though- if handedness will not sit in tact after you rotate Y to Z. You may need inverse scale by handedness axis then, applied as last in the transformation.
    37. This isn't too hard in the remake, and can be done with the editor. But lod comes into play and things stop rendering that far zoomed out... Just play supreme Commander instead, i guess.
    38. Up until recently, I was convinced that using pixel art was the most suitable for this project. Aside from it giving you a unique feel, it also has qualities that a more modern render just cannot compete with: It has that special magic to it, which is really hard to beat. Furthermore, I would avert from using super cartoonish, stylized characters, as they would simply not fit the theme. Or use super grungy art for that matter. [We've seen way too many of them so far.] But I wouldn't want to fall into the trap of becoming just another generic, isometric game on the market. That is why I made this small mock-up, to see the difference and help me decide on which to choose from--sort of. For some reason, I get this notion that I should change my mind, and go with a super modern (high detail) look, and not worry about it too much. Instead, the characters, the scenes, animation and all the other assets should be carefully curated, and only worry about that it stays visually attractive, unique and stays within the limits of the said vision. [Using deeper color palettes, and darker scenes.]
    39. theaaronstory


      A classic ARPG concept, built upon the legacy of the good-old Diablo 2. Hopefully, one day it will see the daylight!
    40. Many people are grabbed by TDD due to its apparent simplicity, and quick feedback. However, it's mostly a false impression in my opinion, it's already impossible to fully test a single 64 bit addition, let alone if you actually do something in the code. You may want to read https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf As for your question, how are you going to code anything with "unknown condition and states"? I think that's impossible. As such, you may be looking at the wrong point for testing, shouldn't you test where you at least know what it is supposed to do?
    41. grelf

      Weird circular orbit problem

      The trouble with integration methods for predicting the path of an object is that eventually errors increase to the point where no faith can be had in the results. In 1987 Bretagnon and Francou, of the Bureau des Longitudes in Paris took a different approach and produced a method called VSOP87 which enables the heliocentric coordinates of all the major planets to be calculated from long series of terms. As I understand it they did harmonic analysis of historically long series of observations, effectively producing something akin to Fourier series for the calculations. Jean Meeus' book "Astronomical Algorithms" explains much more about this, giving the algorithm and discussing accuracy. He includes all the necessary data as an appendix to the book. See https://www.willbell.com/math/mc1.htm I obtained the book in 2010 and implemented the algorithm for all major planets for a certain web site. I originally wrote it in Java for client-side applets but when Oracle ceased to keep Java secure enough in browsers, I converted it all to server-side PHP (yuk!). The original paper is referenced in Jean's book: P.Bretagnon, G.Francou, "Planetary theories in rectangular and spherical variables. VSOP87 solutions", Astronomy and Astrophysics, Vol. 202, pp 309-315 (1988). Searching today I discovered that Jean's book is available online as a PDF (488 pages) from http://www.agopax.it/Libri_astronomia/pdf/Astronomical Algorithms.pdf Thanks for pointing me to MathPages.com - that looks excellent.
    42. Just the terrain rendering? Do you need a virtual camera and movement? Do you have a data format in mind? How much are you willing to pay?
    43. Shaarigan

      An Artist Trying to Program

      I'm a little bit more selfish and do what I do because I like it to do and I always can't wait to see/play the result as my best customer and strictest reviewer
    44. Self-publishing is great as a side hustle, but if you quit your job to try to make a living from it you are going to starve. Especially with such a niche product. Do some basic math involving your yearly expenses vs the overhead of producing your product and balanced by expected income. Expect sales to number in the hundreds because the actual market for such a thing is vanishingly low. Do the same for future releases, because you absolutely can not expect to coast off the proceeds of a single product forever. I once read a blog post by an independent author who estimated that if he can build a core group of 5000 fans, who dedicatedly buy everything he produces on a two-year basis, he could almost match what he gave up by quitting his job. You should try to do the same kind of calculation. Be very pessimistic in your estimation of market size.
    45. Cody.Rauh

      An Artist Trying to Program

      Honestly, I couldn't even give you the definition of the first three things you listed without having to go google it, and I was always terrible at math. That said, I am a big believer in doing what you can with what you have at the moment, and building your capability each day by learning all the above you mentioned, and more importantly learning to love the process by seeing the value in each component required to do the activity as a whole. Its a process, or is it a method, maybe a function? ( joking ) I agree with you on so many points! I spent the last 13+ years getting better at art, and depending on who you ask on what day someone would say 13 years? This guy sucks. Which while not the most actionable feedback has a truth to it that we all have room to improve every day. I imagine even programming every day as I have been if done for 13 years would likely yield a similar result. Art like coding has its own snobbery, I think this is true of anything, and it is made worse by 95% of people in the world looking at someone and saying I can do that! While they have the potential they often don't realize all the work that goes into it. The only problem I ever have is being grouped in that category, something honestly I have had to get over, cause 99.99% of people don't know you, and it isn't personal it is just what people are used to dealing with. I do wish people would ask vs. assume, but you can want in one hand and ______ in the other and see which fills up faster. Another thing is most are in it to get rich, and many of us with experience know it would be easier to buy a lottery ticket and win than make a "successful game", plus you wouldn't have to invest 5, 10, or even 20 years of your life. I myself am aiming for social impact and culture change instead of money, and that may be an even harder fought goal. Never claimed to be sane, lol.
    46. Evgeny  Ryabovol

      What feelings does this soundtrack make you?

      Hi guys, it's just amazing! I did not expect such a strong and varied reactions. It even seemed to me that some of you are just experienced screenwriters! This is just great! It seems to me that with just a short soundtrack, it is enough to create a plot for a small film or a game episode. All of you guys are awesome! A little reflection on each of the answers, we can say that you all described something similar. It's like the core of an emotional lump described from different angles and it's incredible. Thank you so much to all of you guys! I'm very pleased that you enjoyed my work. Looking forward to a new visions All the best wishes, Evgeny
    47. QwePek

      Algorithm Perlin Worms

      Hello, I want to make a game where i can procedurally generate caves. I found out that the best way to create this caves for me is by algorithm Perlin Worms, but I'm having problems with understanding it. Could someone explain how it works or write some code examples (best in SFML). Thanks
    48. Maybe that paper will help you to more easily write CPU shaders that compile to SIMD: https://software.intel.com/en-us/articles/easy-simd-through-wrappers
    49. The main draw-back is that all shaders must be hand-coded using SIMD vectorization, preferrably as separate full-screen passes. However, the engine comes with a hardware abstraction layer for SIMD and tries to stay within the SSE-NEON intersection. This is why LLVM OpenGL implementations cannot be optimal on the CPU, because vectorizing is difficult for compilers when only some shaders can be efficiently vectorized.
    50. That looks really nice, and the performance seems to be good, but it's also a very specialized implementation, it would be hard to compare, unless I implement all the shading etc. as well.
    51. I did that in my GUI rendering script by creating a fixed-precision 16.16 type. This ensures 100% bit-exact determinism for the 2D overlays.
    52. My perspective 3D rasterizer is not optimized yet, because what the CPU is really good at is isometric graphics where you don't need a floating-point division per pixel. The CPU used for testing is a very old quad-core Intel Core i5-4690K to be the minimum requirement. Performance scales up well if you use more cores, so it ran a lot faster on an octa-core I7 which might become the recommended specification. Planned optimizations can potentially make multiple lights faster by processing highly overlapping light sources in the same pass to reduce cache load from reading positions and normals. Results on my old quad-core I5 running the isometric deferred engine: 940x512 runs at around 13 ms per frame with two dynamic global point lights and unlimited detail level. 1920x1080 can currently handle one dynamic point light at around 17 ms per frame, so this resolution is currently too much for quad-core but should be no problem for octa-core. Isometric 2.5D to take advantage of the CPU's cache prediction Each model is pre-rendered into diffuse, height and normal maps. The baking application generates two triangles per pixel in the source texture and can have more polygons than RenderMan. Maximum-height-drawing uses diffuse, depth and normal buffers for rendering 3D models as 2D sprites, which the CPU is really good at by reading memory in order. Background The static background has dynamic light, by storing blocks of 512² diffuse, normal and height images. These are generated from backgrounds sprites while the camera moves to allow having one sprite per brick in a castle if you want. Drawing the background is then mostly a sequence of memcpy calls, which is fast even when not aligned. Light pass The screen buffers for diffuse, normal, height and light are all using 32 bits per pixel to align well when illuminating with deferred light sources in multi-threaded SIMD filters. Once we have the light image, just multiply by diffuse times two to get a little HDR feeling to the bright spots. I tried doing the multiplication using 16-bit integers, but Intel CPUs are computing so fast compared to memory that it did no difference to performance. Broad-phase Culling for sprite drawing and light rendering uses 8 dynamically expanding octrees in their own directions from the origin, so the caller is free to place the models in any location. Tiles were used for this example just to fill the background until I have a rendering system for ground and vegetation. Future plans I plan to add the ability of combining polygon animation of characters with the pre-rendered sprites so that animations can adapt well with bone animation.
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!