Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. GoliathForge

    white dragon finger paint

    Hello, I took a look at this briefly. I'm not going to say your code is bad, (whoops) but could use some improvement. The area I would attack first is cleanliness. You are sloppy with your bracing. Case in point inside the function named writer... Here, the variable assignment to x may or may not happen depending the whatever n is supposed to be but y and z always get theirs.
  3. It also seems like using some kind of temporal averaging is the key to trying to get more effective sampling out of limited hardware resources. In addition to the SVGF that was already mentioned, Nvidia did something similar in their 2-layer Deep G-Buffers.
  4. Codemaster Jamal

    What are the requirements for creating a original game

    Sounds like a legal question but, if you're talking about going Indie start off with this. - Pick a Name, any Name. Even if it's the same name of another game, as long that name isn't Trademarked, you can still use that name, as long as your game's actual logo is different. (Though, I will advise on picking an original name, - Make a Game Logo. Copyright your logo. You won't need to Trademark because, trust me, it's a waste of time. Unless your game gets so big that it becomes a popular catch phrase, trademarking is really a waste of time and money when you're starting out as an Indie. - Create your game. Figure out the game's logic. Test the game's logic and more importantly let other people play it before launch. (This includes friends and family and would generally be considered a Beta Test) - Launch your game up on Steam, Itch.IO, Kongregate or build your own launch site. The choice is yours! There's multiple platforms for publishing a game. Figure out your needs and your game's needs and set it up to launch. That should roughly be it. If you need any more questions, feel free to message me. I'm also an Indie Developer myself so if you get the chance, check me out on YouTube. Just search up Codemaster Jamal and you'll find me. Anyhow, thanks for reading my message and enjoy being a game dev!
  5. Tom Sloper

    game idea

    You mentioned programming languages and said you were unsure of how to proceed. If you want feedback on a game concept, post it in Game Design and don't mention programming languages or production methodologies or other things unrelated to game design, and don't ask for advice about programming languages or how to code or anything unrelated to game design.
  6. lawnjelly

    Quaternion to Euler very imprecise

    That's a brilliant webpage .. shows exactly what is going on. His conversion to quaternion is using YXZ convention, and the conversion back to euler is using YZX convention I believe. If you convert back to euler using the same YXZ convention you get 45 degrees.
  7. phil67rpg

    game idea

    should I post in another forum, I want to get some feedback on my game idea.
  8. CaptainVG

    Story feedback

    Ok. I have a rough draft here that just explains the summary. I'm not a writer and I do not claim that I know everything better. But I thought of this idea and for once in my life, I have some faith in the concept and I would like to write and finish my creativity of the idea and maybe someday make it into a reality. If there is lack of depth, I plan to let someone in mind develop the characters further while still keeping the concept intact for as much as possible. I would just like opinions from you all of what do you think of the concept and the plotholes and questions that it leads to. I have just written the summary of the chapter and what the main objective is for the chapter. If you have a better format in mind, let me know so I can improve. 1. Prologue Summary: This is the beginning of the story which introduces the origins of the three gods, Jemmeous, Bruce Young and Kares. The Sky Realm is a world where only gods live. People have worshipped them for generations as they are responsible for answering people’s prayers and giving them blessings for their happiness and wellbeing. However, there are some of them who are either selfish or are not interested in people and are since then being forgotten. The council of the gods has yet to respond on what fate holds for these forgotten gods… In the present day at the Sky Realm, Jemmeous and Bruce were fighting in the arena. While fighting, Jemmeous constantly teases Bruce who got furious and ran towards him only to end up getting kicked back by Jemmeous winning the match as well as earning the Olympus trophy. On their way out of the arena, Jemmeous cheers Bruce up insisting to even let Bruce take the trophy as he considers it just an empty cup to which, Bruce denies. The two decide to find out what Kares is upto as they head to his lab. While Jemmeous is amazed by the inventions done by Kares, Bruce mocks at them for being rather useless in the realm. They encounter Kares who was busy inventing a device that has the ability to teleport to places without the need of electricity. As it was tested, it works as expected. Bruce mocks at the concept stating that it is practically useless in the realm, to which Kares sadly admits the fact. Jemmeous however cheers him up saying that it may help gods who are injured and cannot either fly or move which makes Kares smile. The three go outside and develop conversations about how life on Earth must be. Jemmeous deeply wishes that he can one day live on Earth much to Kares and Bruce’s shock. Bruce becomes furious with the statement as he wants to settle with Jemmeous on who is best in the arena once and for all to which he replies that he can’t wait for that to happen. Kares states that he is curious on how life on Earth must be considering that the world around Earth is vastly different than that of the Sky Realm but has no intention of settling life on Earth unlike Jemmeous. Meanwhile in the council, a silhouette person looks at the three from the outside. Jemiah asks if he is to send the three in the council to which the shadowed man replies yes. The next day, the three are given a message to attend to the council. They are ordered by Xander to enter the black portal outside of the coliseum as there appears to be someone stuck at the portal. When the three enter the portal, they get sucked right into a dimension. As they look around, they observe water which Karel says that it only exists on Earth. Bruce looked for the portal but it suddenly disappeared. Both Bruce and Karel panicked but Jemmeous on the other hand screamed with joy. Suddenly humans began to watch them and the three realized that they look terrifying due to their looks being deceiving and so they left to find a church. Kares manages to find the church and so the three enter it only to find an old man in there alongside a young woman. Both of them were terrified with Brian holding the crucifix in fear that the gods could harm them but Jemmeous calmed them down by simply ordering Brian to chant the mantra that Kares has written down while Bruce draws the Wicca. After Brian and his assistant chanted the words as ordered, Jemiah is summoned. Bruce demands to know of why they were over here as they didn’t find anyone stuck in the portal. Jemiah replies by saying that they are banished from the Sky realm and are to remain in Earth for the next 15 years after which they are forgotten. When asked of what he meant by this, he answered that they will be wiped out of existence which to the three of them sounded more like facing death. Jemiah further states that to prevent them from being forgotten, they have to perform any one of the two choices. 1. Helping the people in exchange for them to value the god’s existence so they can by a miracle return to the realm. 2. Becoming a mortal by marrying a mortal who can provide everlasting love to the god and the god in turn must do the same. Before Jemiah leaves, Jemmeous cleverly manages to say that these options are impossible to meet unless they get certain conditions granted otherwise they can file a complaint to the council since this is an experiment and that they can make it go public to the realm. Jemiah reluctantly agrees. The conditions that Kares has asked for are as follows 1. They must look exactly like humans and have the ability to understand the human world while keeping their powers intact which has been granted except for Bruce who is still big in size. 2. They need all of Bruce’s treasure that he has obtained in all the 10 million years of his life which has been granted. 3. They cannot be killed by legendary weapons that were built to kill gods. While this cannot be granted, they are granted the ability to sense such weapons even in far off places which can be granted. Before Jemiah leaves, he warns them that humans or other creatures that have life and move cannot be killed otherwise, they will be completely erased and forgotten and disappears. The first thing that Jemmeous suggests is to change their names inorder for the humans to accept them. Jemmeous refers himself as Jimmy, Bruce Young is remained as Bruce and Kares is named as Karel. Jimmy then says that they first should head to high school as means of not just an activity but also as means of their first spot to find their true love. Kares asks Jimmy as to what they plan to do for residence. Brian interrupts and says that they can stay here in the church for as long as they want. The gang(except Bruce) thanks Brian for his kindness. The next day, the gang enter the Orchard High School and because of how well they did in the entrance exams, they are in the 12th grade of high school meaning that they remain to stay there for the next one year. This ends the prologue. The objectives that the player must complete in the Prologue: 1. Defeat Bruce at the arena. This introduces the battle combat system. 2. Meet Kares from his lab. This teaches the basic movement of the game. 3. Enter the council. 4. Enter the portal. Optional things that can be done: 1. Talk to various NPCs from the realm if interested.
  9. Today
  10. GoliathForge

    Quaternion to Euler very imprecise

    https://www.andre-gaschler.com/rotationconverter/ What I'm observing from using this online converter, It appears that quaternion is indeed 45° on each axis but in the YXZ arrangement. The Euler's you get are partially confirmed but flipped Y and Z. Matching YXZ gives 45° Euler angles across the board. Perhaps that's a clue. edit: if I use your ZXY arrangement, then the input quaternion is (appears) incorrect.
  11. MrFloat

    Register a templated function?

    I think AngelScript supports template types but not functions. Something similar could maybe be made by using output variable parameters (https://www.angelcode.com/angelscript/sdk/docs/manual/doc_adv_var_type.html)
  12. That SSVDAG algorithm looks impressive, but doesn't look applicable to real-time techniques, as it doesn't look like you could construct an SSVDAG in real time. @spike1 - It won't make it faster, but hardware virtual-texture support could reduce the voxel memory requirements. The idea would be similar to sparse-virtual-shadow-maps, though it's probably not supported on the GTX 750 Ti in hardware. Maybe with a github source repo.. someone might collaborate and improve it, or someone else might find a practical use for the technique even with it's limitations.
  13. Hey, hello there! This is yet another new entry in this truly wonderful weekly update blog! This week was quite big. There is a couple of new stuff so let's get right to it! Pooling First, I want to talk about a subtle upgrade. In the game, I'm using static factories to generate different game objects such as projectiles, props and entities among other things. While this is quite handy (especially since you don't need to drag'n' drop any components at all), it wasn't really optimized. Some object (especially projectiles) could frequently be instantiated and destroyed. For some objects this is fine but for others, it can really affect the FPS. To fix this we need to use pools. These are essentially scalable stacks of the pre-instantiated game objects that are ready to use. Instead of destroying them we simply disable them and store them back into the pool, thus recycle the game object and avoiding a lot of overhead. While on the surface this might seems odd it's actually really useful with short-lived and numerous objects. Pretty simple to integrate into my factories too! It works like a charm! I've partially based my Pool system off this one if you're interested. Spark Effect Next, there's a new particle effect in the game. This one is quite AESTHETIC, so be warned. Basically, it's a Memphis design effect that is supposed to represent some kind of collision. The particles are also coloured accordingly to the colour palette too! Right now these are used on any physical hit. However, I'm still trying to think about a better use case for them... Here's a video showing them off: New Enemy Finally, I'm proud to say that there's now another new enemy in the game: the archer. This enemy uses a bow to attack. It will try to keep its distance and instead try to attack at range. It will also try to trick the enemy to avoid being targeted by them too. They also got a different behaviour that other, in which they will try to circle around their target and keep moving no matter what. When they're near their target and has a clear sight of them, they will draw an arrow, pull their bow and launch it. It's a good idea to strike when they're pulling their bow as it's when they're the most vulnerable. Like their sabre-wielding piers, they will also patrol around their room and be on the lookout for any enemies. They will also flee when weak and can be one-shot too! Here's an encounter with an archer: Minor Updates Big refactor of the GUI. Replace duplicated code with inheritance. Optimized some GUI events. Fixed some oversight in some GUIs. Added a cached state controller that can cache useful data that rarely changes. Added individual limbs target to player characters Right now there isn't any damage multiplier on the player's limbs nor are the enemies try to target some. This might be an idea for later though. Made the active arrow much more flexible Replace the unintuitive layer mask int to a LayerMask instance. It makes it so much better to edit these Made the arrow play the appropriate collision sound when colliding with objects. Big code conventions refactor. Added proper animation masks to my animated models Made most behaviour tree controllers much more flexible Basically the same thing as the active arrow, which is replacing layer mask int to LayerMask instances. Fixed bugs with the hamburgers Fixed some oversights in physic collisions between layers. Next Week I'm still not done with the archer enemy. It still needs a bit of balancing and bug fixing. I also need to perhaps complexify my behaviour tree a tad bit. I'm slowly getting there at each iteration. It's quite interesting and all but working with behaviour tree requires a lot of conception and debugging too! After I'm done with the archer, I'll probably add a gunner too. Afterwards, I'm gonna focus on the bosses. Of all entities these are probably the dumbest and also the buggiest, so that's up next. And then there's the usual suspect (relics, capacities, items, rooms, etc.). I sure hope that with the right type of enemies the game can get better exposure... Only time will tell...
  14. Pursche

    Register a templated function?

    Hi! I am having a hard time figuring out how to register a templated function. I read this page: http://www.angelcode.com/angelscript/sdk/docs/manual/doc_adv_template.html But it only seems to cover how to create a templated type with member functions (object behaviors). I saw this thread that has almost the same problem and usecase as me, in it one of the comments says that the following usage should be possible in AngelScript. Velocity@ vel = entity.getComponent<Velocity>(); But it doesn't go into any details on how to do this. It also suggests this syntax which I would prefer to avoid if possible, and yes I read the part about this having better performance. entity.getVelocity(); My most preferable usecase would be getComponent<Velocity>(entity); with entity.getComponent<Velocity>() as a close second. Is this even possible without a templated type? Could anyone show me a concrete example of registering a templated global function, preferable with specializations as well?
  15. Tom Sloper

    white dragon finger paint

    This did not belong in Game Design (game design is not about programming). It's moved to a more appropriate forum.
  16. im trying to save file as file.x old microsoft style .x files this code writes but it comes out as an error i compiled it with visual c using glut i need to be able to both read and write .x files such as wdf.x <--- here is the code sorry about spaghetti code =========================================== #ifdef WIN32 #include <windows.h> #endif #if defined(__APPLE__) || defined(MACOSX) #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> #else #include <GL/gl.h> #include <GL/glu.h> #include <gl/glut.h> #endif #include <stdio.h> #include <stdlib.h> int xt,yt,zt =0.0f; int xtc =1.0; #define MAX_VERTS 900000 float angle = 0; float anglf = 0; float anglg = 0; float n =0.0; GLfloat z= -0.2f; GLfloat hl= 0.0f; GLfloat zm= -0.2f; GLfloat zp= 0.2f; GLuint mousex, mousey, mousez = 0; static GLfloat Scale = 0.0f; static int i= 2; int j= 2.0; static int numVerts = 2; static struct {GLfloat x, y, z;} verts[MAX_VERTS][2]; static GLboolean dragMouse = GL_FALSE; enum {X, Y, Z}; enum {NOLIST, PLANE}; /* display lists */ enum {VERTS}; /* load data structure from file */ enum {WRITE, END}; void reshape(int w, int h) { glViewport(0,0, w,h); glLoadIdentity(); glOrtho(0,w, h,0, -1,1); /* flip y-axis around */ glMatrixMode(GL_MODELVIEW); } // not used jmcd void glRotateAxis(void){ glTranslatef(0.0f,0.0f,0.0f); //glScalef(Scale, Scale, Scale); glRotatef(angle,0.0f,+1.0f,+1.0f); //on center rotation by jmcd glTranslatef(0.0f,0.0f,0.0f); } void glRotateAxisB(void){ glTranslatef(0.0f,0.0f,0.0f); //glScalef(Scale, Scale, Scale); glRotatef(angle,0.0f,-1.0f,-1.0f); //on center rotation by jmcd glTranslatef(0.0f,0.0f,0.0f); } void glScaleIt(void) { glScalef(Scale, Scale, Scale); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); /* clear frame buffer */ //glPointSize(3.0f); glColor3f(2.0, 7.0, 3.0); /* set current color to Pastashio Green */ glMatrixMode(GL_PROJECTION); //glTranslatef(0.0f,0.0f,0.0f); //glRotatef(angle,1.0f,1.0f,0.0f); //on center rotation by jmcd //glTranslatef(0.0f,0.0f,0.0f); //glRotatef(anglf,0.0f,1.0f,0.0f); //glRotatef(anglg,0.0f,0.0f,1.0f); //glRotatef(10-.01,0.0f, 1.0f, 0.0f); glBegin(GL_POINTS); //glBegin(GL_LINES); GL_POINTS if (numVerts > 1) { int i; for (i = 0; i < numVerts; i++) glVertex3d(verts[0].x, verts[0].y, verts[0].z); if(dragMouse) // numVerts++; i++; glVertex3f((GLfloat) verts[1].x=mousex, (GLfloat) verts[1].y=mousey, (GLfloat) verts[1].z=mousez); //glVertex3d(verts[1].x, verts[1].y, verts[1].z); //if(dragMouse == GL_TRUE) glEnd(); } glutPostRedisplay(); glFlush(); /* make sure all GL commands are executed */ } void writer(char *fname) { FILE *fp; GLfloat x, y, z ; int state = WRITE; int jtrig = 0.0; int i= 2.0; fp = fopen(fname, "wb"); if (!fp) { printf("can't open file %s\n", fname); } // glNewList(PLANE, GL_COMPILE); state = WRITE; while(!feof(fp)) { switch(state) { case WRITE: if (n == 0.0) x = verts[0].x; y = verts[0].y; z = verts[0].z; fprintf(fp, " %f %f %f", verts[0].x, verts[0].y, verts[0].z); printf ("xyz : %f.\n",x,y,z); printf ("numverts : %f.\n",numVerts); //printf(fp, " %f %f %f", verts[j][0].x, verts[j][0].y, verts[j][0].z); fprintf (fp, "%f \r\n",0); // j++; if(i == numVerts) state = END; i++; n= 1.0; break; if (n == 1.0) x = verts[1].x; y = verts[1].y; z = verts[1].z; fprintf(fp, " %f %f %f", verts[1].x, verts[1].y, verts[1].z); printf ("xyz : %f.\n",x,y,z); printf ("numverts : %f.\n",numVerts); //printf(fp, " %f %f %f", verts[j][0].x, verts[j][0].y, verts[j][0].z); fprintf (fp, "%f \r\n",0); // j++; if(i == numVerts) state = END; i++; n= 0.0; break; //fclose(fp); if(i < numVerts) state = WRITE; if (x == 0.0) fclose(fp); break; case END: fclose(fp); state = NULL; state = END; break; } } } void loader(char *fname) { FILE *fp; GLfloat x, y, z; int state = END; int read; n = 0; numVerts = 2.0; i = 2.0; fp = fopen(fname, "r"); if (!fp) { printf("can't open file %s\n", fname); exit(1); } // glNewList(PLANE, GL_COMPILE); state = VERTS; while(!feof(fp)) { switch(state) { case END: // read = fscanf(fp, ""); // if(read < 0) /* hit eof */ // break; state = VERTS; // glBegin(GL_LINE_STRIP); break; case VERTS: if( n = 0.0) fscanf(fp, " %f %f %f ", verts[0].x, verts[0].y, verts[0].z); // fscanf(fp, " %f %f %f", &x, &y, &z); printf("xyz : %f./n",verts[0].x,verts[0].y,verts[0].z); ////////////////////////////////////// printf("xyz : %f./n",x,y,z); ///// verts[0].x = x; verts[0].y = y; verts[0].z = z; // watch 148 n = 1.0; i++; // numVerts = i; if( n = 1.0) fscanf(fp, " %f %f %f ", verts[1].x, verts[1].y, verts[1].z); printf("xyz : %f./n",verts[0].x,verts[0].y,verts[0].z); ////////////////////////////////////// printf("xyz : %f./n",x,y,z); ///// verts[1].x = x; verts[1].y = y; verts[1].z = z; // watch 148 n = 0.0; i++; // numVerts = i; @@@@@@@@@@@@@@@@@@@@@JMCD NOW!!@@@@@@@@@@@@@@ if(x = 0.0); state = END; if (x !=0.0) state = VERTS; { // fscanf(fp, ""); //glEnd(); // state = END; } break; } } // glEndList(); fclose(fp); } void keyboard(unsigned char key, int x, int y) { switch (key){ case 'd': hl=zm; z= hl; glutPostRedisplay(); break; case 'f': hl=zp; z= hl; glutPostRedisplay(); break; case 'l': loader("./data/wdf.x"); glutPostRedisplay(); // glFlush(); break; case 'w': writer("./data/wdf.x"); glutPostRedisplay(); // glFlush(); break; case 'u': numVerts--; i--; printf("xyz : %d./n", x,y,z); glutPostRedisplay(); break; case 'c': hl=0.0f; z= hl; glutPostRedisplay(); break; break; case 's': numVerts=2; i=2; glutPostRedisplay(); break; case 'r': numVerts++; i++; printf("xyz: %d./n", x,y,z); glutPostRedisplay(); break; case 'p': Scale = 0.4f; glScaleIt(); break; case 'o': Scale += 0.4f; glScaleIt(); break; case 'a': angle += .001f; printf ("angle : %f.\n", angle); glRotateAxisB(); break; case 'z': angle += .001f; printf ("angle : %f.\n", angle); glRotateAxis(); //this whole thing is right, x below also all correct // glutPostRedisplay(); break; case 'x': angle -= .001f; glRotateAxis(); //glutPostRedisplay(); break; case 'k': angle -= .1; glRotatef(angle,1.0,0.0,0.0); glutPostRedisplay(); break; case 'y': angle += .1; glRotatef(angle,0.0,1.0,0.0); glutPostRedisplay(); break; case 'g': angle -= .1; glRotatef(angle,0.0,-1.0,0.0); glutPostRedisplay(); break; // case 'n': // numVerts--; //glutPostRedisplay(); /* request a redisplay */ // break; /* case 'q': case 'Q': exit(0); break;*/ } } void mouse(int button, int state, int x, int y) { if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN ) if (numVerts < MAX_VERTS) { dragMouse = GL_TRUE; // printf ("Mouse in play routine : %d,%d,%d.\n", x,y,z); //jmcd take out later !!! verts[0].x = x; verts[0].y = y; verts[0].z = hl; // watch 148 printf ("Index I: %d.\n", i); printf ("dragMouse : %d.\n", dragMouse); printf ("numVerts : %d.\n", numVerts); //jmcd jmk 1 printf ("hl : %f.\n", hl); printf ("z : %f.\n", z); if (xtc = 1.0) xt = verts[0].x; yt = verts[0].y; zt = verts[0].z; // fwrite(fp, " %f %f %f",xt,yt,zt); printf("xt : %i./n ", xt); printf("yt : %i./n ", yt); printf("zt : %i./n ", zt); xtc++; numVerts++; i++; glutPostRedisplay(); /* request a redisplay */ } } void mouseMotion(int x, int y) { if (GLUT_UP == TRUE) { dragMouse = GL_TRUE; if(dragMouse) { //dragmouse achieved at 11:40 AM //D //8:32 AM mousex = x; mousey = y; mousez = z; // glMatrixMode(GL_MODELVIEW); glutPostRedisplay(); } printf ("hl : %f.\n", hl); //glVertex3f((GLfloat) verts[0].x, (GLfloat) verts[0].y, (GLfloat) verts[0].z); //i++; } // glutPostRedisplay(); /* request a redisplay */ } #define ESC 27 //void keyboard(unsigned char key, int x, int y) {if (key == ESC) exit(0);} int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowSize(500,500); glutInitWindowPosition(10,10); glutCreateWindow("Polyline Editor"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMouseFunc(mouse); glutPassiveMotionFunc(mouseMotion); glutKeyboardFunc(keyboard); glClearColor(0.0, 0.0, 0.0, 1.0); glutMainLoop(); return 0; } thank you in advance sincerly JakePlow polyed3.c polyed3.dsp polyed3.plg
  17. Hi, I am trying out Vulkan ray tracing extensions and I am at the point where I need to compile shaders. I usually use DXC to compile my shaders to Spir-V but I am having trouble understanding how to create a lib_6_3 shader. This is the shader I am trying to compile: struct Payload { float4 color; }; [shader("miss")] void main(inout Payload payload : SV_RayPayload) { payload.color = float4(0, 0, 0, 1); } I was trying to use the following command to compile it but it simply does not produce any output: dxc.exe -spirv -T lib_6_3 -fspv-target-env=vulkan1.1 miss_rt.hlsl -Fo miss.spv I a clearly missing some key detail here... Well, 3 mins after writing this post, I updated my version of DXC and now it works... False alarm! Cheers!
  18. lawnjelly

    Quaternion to Euler very imprecise

    I apologise as I didn't mean to offend, slightly off topic, but it is quite interesting linguistically this kind of thing, and often comes up with Euler angles: https://english.stackexchange.com/questions/315906/pronunciation-of-the-name-leonhard-euler It has some similarities to a 'borrowed word' from another language. Often the pronounciation will be changed to fit more easily with the language that adopts it .. see pidgin english for example. As well as the phonetic pronounciation being 'yooler' in english, there is a conflict with the word oil, and our existing word oiler, in which case it makes total sense to alter the pronounciation in english, otherwise you are relying on context for meaning. The counterargument of course, which has won in maths, is that as a name it should be preserved as spoken in the original language. But you can see there are valid arguments both ways. And of course languages are dynamic, evolving and subject to change, I believe pronounciation in english has changed greatly in the past few hundred years, compare the difference between american english and british english for example. You say tomato, I say tomato...
  19. RoKabium Games


    Keeping up with the twitter hashtag of screen shots on Saturday!
  20. lawnjelly

    Quaternion to Euler very imprecise

    I tried my euler to quaternion and it gave a different result to yours. I checked and mine follows the convention on wikipedia: https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles#Source_Code which appears to follow heading, attitude, bank convention. The source you linked also claims to follow the same convention: https://www.euclideanspace.com/maths/standards/index.htm Yet the equations you use are different to that on wikipedia. I would include the code here but the code thing on the forum isn't working for me for some reason.
  21. VoxycDev

    First Person Catcher!

    Pony, kitten and bunny hanging out in front of the pink castle
  22. Alundra

    Quaternion to Euler very imprecise

    The problem is the imprecision is not little but very large... Puting a quaternion with 45 degrees on X, Y and Z gives this quaternion: The euler resulting from this quaternion is: Of course we are far from 45 degrees that we started but the visual result is almost the same but the Y angle is far. The "9.735610" on the Y axis should in reality be around 23 degrees. Up is the result of the Quaternion to Euler, Down is the reference 45 degrees on each axis. Used for the editor to show the euler angles to be artist friendly. But I begin to think that it should completely be avoided and do the calculation differently to get the good angles. - When the gizmo is used, instead of add another quaternion for the transform, surely the euler can be modified local and world space and then the quaternion can be created safely from these angles. - When you attach one object to another, the relative angles can surely be calculated safely too to have a good representation of the actual euler angles. It's actually the two cases where I use the quaternion to euler because I do quaternion operation then I set the new quaternion but of course then the eulers is computed by converting the quaternion to euler if you set a quaternion and not euler angles for the new rotation.
  23. fleabay

    Quaternion to Euler very imprecise

    I doubt he (Euler) cares very much.
  24. a light breeze

    Game initialization.

    The main reason for initializing things outside of main is that they are needed for other things that also exist outside of main. This sounds like a circular argument, but consider that every static variable has a lifetime that extends beyond main. If one of your functions has a static variable of type T, and T accesses the logging system in its destructor, then the logging system and its dependencies need to be available outside of main. You can, of course, avoid this whole issue by not using any static variables. However, this requires a lot of discipline, and it has costs both in code complexity and performance.
  25. If you need a music composer/sound designer, I would love to get involved. I'm not sure what style of music you would be looking for but here are links to my portfolio. I specialize mostly in orchestral writing. Video Game Music - https://soundcloud.com/shaun-bellamy/sets/video-game-music Portfolio - https://soundcloud.com/shaun-bellamy Covers- https://www.youtube.com/channel/UCHBtJNK3jaB_ulhd6yaLsIA
  26. Phoenix Games

    [Work In Progress] Don't Give Up

    'Don't Give up' is a game set around a child growing up through school years, each level represents a school year passed. As you play through the game, the levels get darker to reflect the stress and anxiety many students feel towards the later years, obstacles will also begin to appear in the form of school themed dangers like a pencil or books etc..., as well as this the levels will become more twisted and loose their colour for a more dark, bleak and twisted theme.
  1. Load more activity
  • 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!