Jump to content
    1. Past hour
    2. Continued from here.... Turns out I could actually get the $50k and built my own cluster across multiple machines with a total of 128 cores. The development has continued since and I have to say the results are fairly pleasing. The scaling was fairly successful and it will probably distribute out quite well. My approach was very similar to sharded databases, and although I rolled my own I suspect I could have used something off the shelf I would know it in enough detail. I think in terms of distribution its pretty good, of course the amount of interactions between entities will always be limited so I question whether its possible to use this for a massive FPS or anything like that but otherwise should support lots of entities.
    3. In this episode of Madsen's Musings, I detail five things I wish I'd put in my contracts sooner. Wanna learn more about me or my work? Go here: https://madsenstudios.com/ Subscribe to my YouTube channel or follow me here on GameDev.net to see all the latest updates. A transcript is provided below the video. Transcript I mean, it's cloudy, but the weather's like 75°F up here. It was awesome, whoo, love it. If only Austin was like this all the time. Okay, So, we're talking about contracts today -- yay, contracts -- legal stuff. First off, disclaimer: I am NOT a lawyer, I do not play one on TV, I am NOT a law expert, so take what I say with a tiny grain of salt. These are just basically my experiences -- these are basically my observations -- but if you have a specific legal issue or question, or if you need some specific legal advice I always STRONGLY recommend talking to an attorney; talking to an expert because that ain't me. [Laugh] Saying "well Nate said on YouTube..." is not gonna hold up in court -- I've tried it! Okay, so, let's talk real quick about what are the basic components of a contract first: A contract is just an outline. It's an agreement. It's saying that Party A is going to do something, Party B in response is gonna do something else. It outlines the specifics of the timeline, any cost related, and it outlines how long the relationship can last between both parties. It outlines how you can end that relationship. It also outlines how the approval process is gonna happen, how the delivery process is gonna happen. It's just a statement. Good contracts are actually supposed to try to protect both parties. That's what negotiations are all about when you're trying to nail down the specifics of a new of a new job you want to make sure that those terms are gonna be something you feel good about. As a freelancer, or if you're looking for an employment position you're going to negotiate the terms of what's your salary, how much PTO you're going to get off the top of the starting, any special considerations. Contracts are just outlines. Okay, so we've defined what a contract is. Let's talk about some of the things I wish I put in my contract sooner. So top of my list: Revision clause Basically, this clause is just capping how many times you're gonna go back to square one and rewrite something. In my opinion -- this is just how I do my contracts -- is if you want me to make something a little faster, bump it up by five clicks, if you want me to change the oboe to a flute, if you want me to -- hopefully there's no angry wind noise there -- if you want me to change this chord from first inversion to second inversion, if you want me to do tiny minute things then I don't consider that a rewrite. I don't consider that a revision. A revision for me is "this is not working, let's go back to square one and start over". That for me is a revision, and in my contract I say for the price I've quoted you, I'm gonna give you three included revisions. Anything past that is an extra cost. Now, I don't list what the actual cost is in my contract, I say that should we go beyond three revisions, what we will do, is we'll have a meeting and we'll discuss things, and we'll make a new cost for this fourth revision and it'll be a mutually agreed upon dollar amount. So maybe it's sloppy of me to not include or quote the price for those additional revisions once you get past the first three free included revisions in that original price, but the thing is, with the exception of this one experience I've never had to use it. But I had a client early on, hired me to write one song that she wanted to use as a part of the pitch to hopefully get funding to make a full Broadway musical, and I was writing music, writing music, working with this client, like I said again, very early in my career, so I gave her version after version after version, each time starting anew. About the fifth or sixth time I asked her "hey, what's not working here, why are we going back and redoing version after version after version and starting from square one?" Well her response kind of shocked me, she said "oh, I just wanted to see what you would do, I just wanted to see what you create", and she even said "I didn't see any kind of revision cap or revision clause in your contract so I figured I could just request as many as I want". And she was right, she could. At no additional costs to her, she could have me writing thousands upon thousands of iterations of this Broadway spec piece. Just over and over again, just to see. Because you have to remember, the more time you take to do something, the less you're actually getting paid per hour. If you have a job you accept for $2,500, and you take five months to do it, you're not actually earning as much than if you have a job that you do in one week for the same $2500. It's a simple concept, but sometimes I think people forget that, and they're talking about their rates, when they're talking about their budgets, and these contracts. So the top of my list would be revision cap. Second thing I wish I added to my contract sooner, is basically says that I as Madsen Studios have the ability and the right to showcase my work in my portfolio. What I've learned, especially working with some larger companies, is in buyout situations particularly they can say "well we're never going to give you the right to put this in your portfolio". You can of course list something on your resume, but you can't showcase it on your demo real or your video reel. You just can't without having some kind of language in your contract that specifically states you can. So my contract states that once a game is made public or once the game is published, I will be able to showcase -- just for promotional reasons -- the content I provided, the content that I created for that game. I've not had any clients object to this when I have it in my contract. I've even had clients put it into their contracts if they're the ones providing the contract to me. I've had "hey, I want to be able to showcase this in portfolio". The only problems I've had is when I didn't ask for it, I didn't have it in my contract, there's nowhere mentioned and I already had signed something and I'm already working and it comes up "hey, I would love to promote myself and promote this work I did, can I put it in my demo reel?" I've had some larger clients say "no you cannot". That kinda sucks, so I learned to start doing that. Let's say a game trailer showed Level One as part of the teaser for the game, and had some of my music I put in Level One, and this is out on YouTube, this is out on the internet - this is live. In that case, I would say "okay, Level One music has been released by that company", and of course there's always political things to consider. I would always talk to my point of contact to say "hey, I love the trailer you guys released, it's using my music, it's out there live per the contract, and says anything that's made public, or once the game's formally released I will be able to share and promote my stuff for promotional reasons on my demo reel." And I would talk with them and say "okay, so since that's been done, let me go ahead and do that real quick, if I want to just shoot you an email and we can talk about it real fast", well I feel like that's a useful thing to do - you don't want to piss anyone off, you don't wanna get yourself in any kind of legal liability, or something like that. In some cases, it can be as easy as just retweeting something, or linking something that the company has already done saying "hey look, I did this", but yeah... that was a weird voice for the "hey look I did this..." You need to have some kind of language in your contract, or in the contract the company is giving you, and you negotiate that saying "I want to be able to share this on my portfolio". And by the way, it's very common to say portfolio: this is not gonna be for downloads, this is not gonna be commercially sold again, that sort of thing, and this mostly only applies in buyout situations. Examples when you were keeping the rights to the music you're providing, you're basically just giving the license to a client, you don't have to worry about that so much, because you are the owner. You might still have to worry about the schedule of it though. You know, perhaps the client doesn't want you to release something that's not made public yet, that's very very common so you do have to be careful about that. Number three for me would be point of contact. Final authority. All this does is dictates -- lays out in black and white -- who was gonna be the person to have authority over saying yes or no in a project. The reason why this is because I've been in situations where you have a group of people and let's say they get into a disagreement and Bobby-Fred does not like the music you did for Level 7, and Judith thinks it's the greatest thing, well then you have a conflict. You have this whole other discussion that has to happen and when you're working as a freelancer and so I will get on these Skype meetings that would be about two-three hours long each, and this was a weekly meeting. And then they would talk about these things, and then they were getting disagreements with me right there in the Skype call. "Well I disagree with you", "well I think this", "well I think that", and suddenly my direction is cluttered. My scope, my target is not clear because I have different points of reference. I have people tell me different things. I have people telling me different direction. So you want to avoid that. In some cases you don't want to worry about this. So if for example, you're working with the team of one person; you had your key contact, you have your final authority. It's that dude or that gal and you just have to make them happy with your content and you're golden. But in other cases where you have multiple people it's very useful to assign and dictate and just ask the client "all right, well I have meetings with eighty of you guys, but I need to know when the proverbial poop hits the fan, who is the person that has final authority to say yes. I would highly recommend if you're working with a team that has multiple people and they don't know who the final authority is that you set something up. You set some terms in your contract saying okay well let's agree that this person will be the final authority, and then you guys can go off and have your debates and your discussion for as long as you want without me involved, and then that one person comes to me and gives me clear, concise direction. Another point to number three is meetings. Are you going to invoice your client for every single meeting that you have. It depends - this is really your call. My advice, my suggestion would be to really understand what type of meeting schedule the client may have in mind. If this is a weekly meeting, then yeah you might want to invoice for that. If it's not then don't worry about it. I kind of take mine case by case. It's really tricky to change a contract once you're in it, so if you don't invoice for meetings, and suddenly find yourself in the situation with the client where you have a whole bunch of meetings all the time, and it's taking up time when you could be working, it's going to be a tricky conversation to say "hey, look...". Nothing is impossible, it's just going to be tricky. It's a lot easier if you just say "hey, if we're going to have this type of meeting weekly then this is my rate for it" and just get that of the way, and they agree to it on the front end versus trying to change it on the back end. That's much much harder to do. Another thing to consider is, each state has sometimes slightly different sometimes very different laws when it comes to freelancing and business, and regulations -- all that jazz -- and if should you have a point of litigation with a client well... let's say the client is out of state, State accounts in California, you're in Texas, well which law is going to be applied here? There's a lot of different things here, but it's just a lot more clear if you just say in the case of litigation, the laws of California will be applied to this contract, or in the case of litigation, the laws of Texas will be applied to this contract. It can be useful to have that listed. Now the big thing I would avoid is P.O. boxes. Do not accept P.O. boxes. I actually don't accept P.O. boxes at all on my contract. What I do is I list all my points of contact. I have my name, my email, I have my cellphone, I have my physical address, and then I have a spot where the client puts theirs in, and I say alright, I need your name, your email, your phone number, and your physical address, and in the state P.O. boxes are not accepted. Why? Because P.O. boxes are harder to track down. I had a client one time who 13:12
    4. Brunni

      Arcade car physics

      Really nice! looks like you have very heavy cars and you implemented the gizmos and all! Btw what does your collider look like? Is it a capsule, two spheres, a box, or something custom? (compound)
    5. Today
    6. First: The fd_set is a bitmask on any operating system except Windows (where sockets are handles, not file numbers.) Thus, "fd_array" is not a thing on other operating systems. Generally, you will want to keep the list of sockets in a separate container (like a map<SOCKET, your-data>) and create the fd_set for receive/send/exception from zero before each call to select(). Second: You're not checking errors in calls to closesocket() or recv(). Also, if you set a breakpoint on closesocket(), and then step through the loop in the debugger, what is the behavior of the program? I bet this will tell you what's going on. Third: Do you know what the web browser is doing? Because if you close the socket without sending anything, maybe it will re-try? If that is the problem, then try calling char const *errmsg = "HTTP/1.0 500 Not Implemented\r\n\r\n"; error = send(currentSocket, errmsg, strlen(errmsg), 0); to make sure the browser gets an answer.
    7. phil67rpg

      collision sprite

      does anyone else want to comment on my pseudocode or my problem?
    8. hplus0603

      AIMBOT prevention

      Trying to detect cheating programs on the client is, in the end, quite hard, because the cheater controls the system the cheat is running on. Various cheat systems will map the memory of the game process, and patch it in-place to install the cheats, so there's no trace of any injected DLL. And, because the process is patched, it can't successfully check for other files or programs or processes or DLLs on the system, because those calls can be intercepted by the patch. The extreme end of this is using virtual machines, or even hardware loopback. It's pretty common to build robot arms and cameras the read the screen of a Tetris game and plays it -- nothing is amiss from the point of view of the computer the game is running on! A more robust way to detect cheaters is to use a multitude of signals -- social signals (reports,) outcome signals (hit/miss ratios,) response to slight changes in algorithms, and so forth. Then, use matchmaking to make people who play the same, play together. If this ends up putting cheaters in a group of players for themselves, that's great! If it means that cheaters and "pro" gamers end up playing against each other, then that's still not so bad, because the cheaters will fail hard once they get invited to a tournament :-)
    9. Rutin

      collision sprite

      You can read up on it: https://en.wikipedia.org/wiki/Pseudocode If you google the topic you'll find a lot of information on what it is and how you can utilize it. On the topic of Logic and Problem Solving, I have no idea how to give advice on how to improve. Maybe someone else here can assist with that.
    10. CottonCandyRandy

      Algorithm Analysis Document Review Requested

      Thank you VERY much for your in-depth reply. This all makes sense and I'll be working on the suggestions you recommend!
    11. phil67rpg

      collision sprite

      check for collision execute collision function set screen variable draw collision sprite animate collision sprite well I am not very good at pseudocode so here is my best shot. let me know if I can improve on it. do you of any tutorials on pseudocode
    12. Septopus

      Unsettled World

      Album for Unsettled World
    13. Hi, A friend of mine is an animator in Japan and I would like to experiment making a small video game using his animations. His tool of choice is Live2D, which seems to be very popular over there. I looked around trying to find documentation of their formats, but didn't get very far. There's an API with nearly no documentation. They claim to have Unity integration, so perhaps that would be a way to do it (although I am not terribly keen to learn Unity just for this). Does anyone here have experience importing from this animation tool? Of course he could always provide me with a sequence of .PNG files, but I would like to see what alternatives we have. Thanks! Álvaro.
    14. ajmiles

      Buffers and SubAllocation

      Yeah, it's all driver managed on D3D11 and done for you transparently. The ethos of D3D12 is to move expensive logic out of the driver and into your title where you know what your title's particular patterns are.
    15. Rutin

      collision sprite

      I might be wrong but the main trend and problem I'm seeing just by observing your various posts is that you struggle to break down problems and build solutions logically. I've also noticed that when you're given input it appears you almost completely disregard that advice and continue to approach your problem the same way prior to getting advice. In order to be a good programmer you need to be good at problem solving and you must have a logical mind. If you cannot break things down and come up with solutions logically, then you're going to have a very hard time progressing in this field. In order to not repeat myself in the same detail, you can see the prior posts I made about how to approach this problem. Summary: Bullet hits your plane. (assuming you're doing it at the object level and not using an animation manager for everything) For plane a explosion animation: Upon collision your plane toggles a variable that indicates it needs to start the animation. Once you hit your logic step again you would check to see if the plane is able to animate or not. If true, then it would take the current time as the start time and when checking you can do: elapsed time - start time to get actual time passed if you cannot setup a custom timer. Then you can set frames based on what frame is supposed to be active in relation to where you are in time. When the animation is started you would need to set a variable to indicate the animation is running so you're not resetting the initial setup variables above. In your draw step you would simply pick the appropriate part of the texture based on what frame is active. Once your animation hits the max amount of time you would then toggle the animation related variables and reset or kill the object if that is what you want to do. The above can apply to bullet animation on impact and the actual plane blowing up when hit with a bullet and the plane's health is equal to 0. Your job is to take a concept like what I wrote above for example and use your knowledge in C++ and openGL to make something happen. There is nothing more I can add to this without giving you the code to solve the problem, but that won't help you grow as a programmer and is of no benefit to you. Best of luck.
    16. Just to follow up on this in case anyone is interested...I did a test of the implementation described above and it "seems" to work fine. After applying uniform scale value to all mesh vertices, and translates of the joint transforms and offset mats, as well as any translate key frames in any animations, things turned out as expected in terms of size changes without (so far) any unexpected problems. Having said that I've only tested a few models and every time I think I understand all the elements at play with skinned animation I have something new smack me in the face...
    17. Thanks for the reply. Is this the 64KB page true in d3d11 too? Is the driver just doing the suballocation for us?
    18. Yesterday
    19. That sounds about correct. Even with warmstarting the stack will sway a bit before it becomes stable. Also make sure you use a linear slop. This is important for contacts to persist between frames.
    20. phil67rpg

      collision sprite

      ok I will pseudo code this problem, also how do I solve a problem like this one, how do I work through this problem logically I want to be a better programmer.
    21. Rutin

      collision sprite

      I already answered that question prior on what you need to do in order to get it working. Based on your code you haven't tried any of the steps I outlined. If you want to solve this problem using your own method and not something that actually works then you're going to continue to have issues because you don't understand the logic behind what needs to be done. Simply put, if you unable to solve this problem on paper with pseudocode, you're not going to solve the same problem using C++.
    22. phil67rpg

      collision sprite

      well I put screen = 0.0f into my drawcollsion_one function and it draws a static collision sprite but for some reason I cant get it to animate the collision sprite. I think my glutTimerFunc function is not working properly.
    23. Rutin

      collision sprite

      I already told you how to do it. What did you try, and what isn't working since the last time?
    24. Ok, based on the images you posted and some other images I saw online, it seems like there might be some nontrivial aspects to it. But, I'll speculate a bit. The first step is just to be able to deal with non-axis-aligned grids in general. For this you'd need a transform (typically a position and two orthogonal unit-length basis vectors, possibly in matrix form), the grid size in cells, the cell size, and any other needed data (for example, I see that some cells appear to be disabled in some of the grids, so you might need a per-cell flag for this). Once you have this information, you can perform operations like finding the cell that contains a point and so on. A typical approach for at least some of these operations would be to transform the point (or whatever) into the local space of the grid, and then perform the operation in local space. The next thing I notice is that parts of grids are disabled in order to keep grid cells from overlapping. Intersection between oriented rectangles in 2-d can be tested for robustly using separating axis tests, so it seems like it'd be relatively straightforward to determine where grid cells would overlap. You could then apply some criteria to determine which cells to disable (based on the images, it seems that part might be a little more involved). As for placing grids along curves, you can build a local transform for a point on a curve by computing the tangent to the curve at that point to get one basis vector, with the other basis vector being the (possibly negated) perp of that vector. The details of computing the tangent depend on the type of curve (e.g. circular, Bezier, simple sequence of line segments, etc.). How to select sizes for grids and how to place them along the curve is a little less obvious. Considerations include the curvature of the curve, keeping grids from overlapping, and so on. In the first image you posted, for example, you can see these considerations in play with the size, number, and placement of the grids, and in how the last straight section has single large grids associated with it. It seems to me this is where most of the difficulty would lie - in choosing grid sizes and placement and dealing with grids (both from the same curve and from different curves) overlapping. I don't know how helpful that is, but maybe it'll at least give you some ideas to work with.
    25. I'm trying to write a simple server application using Winsock2. I have a socket listening on port 80 (for http traffic). When I run the program and use my browser to connect to 127.0.0.1, the server receives the connection and displays it as expected. New Connection Recieved message: GET / HTTP/1.1 Host: 127.0.0.1 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 DNT: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 The problem comes when I try to close the socket. I'm using the following two commands: closesocket(currentSocket); FD_CLR(currentSocket, &socketList); When I do this, the program keeps repeating the output as if it was getting the same request over and over. If I remove either of these commands it only displays the output once, as it should. The complete source code is as follows. This is a simplified version of the code that will duplicate the behavior, so I've omitted certain checks for clarity. #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif // !WIN32_LEAN_AND_MEAN #pragma comment(lib, "ws2_32.lib") #include <WinSock2.h> #include <iostream> void runTest() { ////// SETUP /////// const int LISTENING_PORT = 80; const int BUFFER_SIZE = 4098; WSADATA wsa; sockaddr_in listeningAddress; listeningAddress.sin_family = AF_INET; listeningAddress.sin_port = htons(LISTENING_PORT); listeningAddress.sin_addr.S_un.S_addr = INADDR_ANY; WSAStartup(MAKEWORD(2, 2), &wsa); SOCKET listeningSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); bind(listeningSocket, (sockaddr*)&listeningAddress, sizeof(listeningAddress)); listen(listeningSocket, SOMAXCONN); fd_set socketList; FD_ZERO(&socketList); FD_SET(listeningSocket, &socketList); ////// MAIN LOOP /////////// bool isRunning = true; while(isRunning) // endless loop, normally has interupt mechanism { fd_set socketListCopy = socketList; int socketCount = select(0, &socketListCopy, nullptr, nullptr, nullptr); for (int i = 0; i < socketCount; i++) { SOCKET currentSocket = socketListCopy.fd_array[i]; if (currentSocket == listeningSocket) { std::cout << "New Connection\n"; SOCKET client = accept(listeningSocket, nullptr, nullptr); FD_SET(client, &socketList); } else { char buffer[BUFFER_SIZE]; memset(buffer, 0, BUFFER_SIZE); int bytesIn = recv(currentSocket, buffer, BUFFER_SIZE, 0); std::cout << "\nRecieved message:\n" << buffer << '\n'; // Using the following two lines causes the output to loop closesocket(currentSocket); FD_CLR(currentSocket, &socketList); } } } WSACleanup(); }
    26. I recently made a seven-day written guide for game development and the intent was to help absolute beginners to realize how to get started in all basic aspects of game development and that they're maybe not as difficult or bad as one might think. http://juhakeranen.com/seven-day-guide/
    27. Placed Resources allow you to alias multiple resources over the top of another if saving memory is your goal. They also facilitate the approach of allocating a much larger amount of memory in a single go (a Heap) and then 'placing' multiple resources inside the same memory allocation. If a shadow map and a post-processing render target are not needed simultaneously in the frame then there's no need for them each to have their own memory. As another example, you might choose to place an entire model's resources into a single heap. That might mean vertex buffers, index buffers and the model's textures have their sizes summed and a single heap is allocated of that size. Each individual resource is that 'placed' at the relevant offsets in that heap.
    28. ajmiles

      Buffers and SubAllocation

      The GPU doesn't care particularly whether a series of buffers form one allocation or not. The main reason is that memory is allocated at the granularity of a 64KB page. That is also true of the granularity at which heaps are Evicted and made Resident - pages, not individual allocations. Of course, generally you want buffers much smaller than 64KB, in which case you'll be wasting a lot of memory per allocation unless you use it for multiple things. Also, since allocating memory is expensive, it's better to do this as infrequently as possible and therefore grabbing larger amounts of memory and sub-allocating it yourself is going to be faster than asking Windows and IHV's driver to do this thousands of times for very small amounts.
    29. Why does this script error? What's the correct way to write a boilerplate opAssign? (You can probably tell I'm not too experienced with C++.) class MyClass { int x; MyClass(int x) { this.x = x; } MyClass opAssign(const MyClass &c) { x = c.x; return this; } } I tried adding an empty default constructor (MyClass() {}) and that made it compile but enter an infinite loop when opAssign is called. I don't want to have a default constructor (that means constructor with no arguments?), it doesn't make sense to have a default value for x in my domain.
    30. phil67rpg

      collision sprite

      I have made some progress, I am able to draw a collision sprite when my planes collide. all I want to do is animate the sprite sheet. here is my updated code. I just need a little hint, I have almost solved my problem. void timer(int val) { screen += 0.1667f; if (screen >= 1.0f) { screen = 1.0f; } glutPostRedisplay(); glutTimerFunc(500, timer, 0); } void drawcollision_one() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[3]); screen = 0.0f; glBegin(GL_POLYGON); glTexCoord3f(0.0f + screen, 0.0f, 0.0f); glVertex3f(0.5f, -0.5f, 0.0f); glTexCoord3f(0.167f + screen, 0.0f, 0.0f); glVertex3f(0.5f, 0.5f, 0.0f); glTexCoord3f(0.167f + screen, 1.0f, 0.0f); glVertex3f(-0.5f, 0.5f, 0.0f); glTexCoord3f(0.0f + screen, 1.0f, 0.0f); glVertex3f(-0.5f, -0.5f, 0.0f); glEnd(); glDisable(GL_TEXTURE_2D); } void coll_plane_one() { //draw bullet float x = -5.0f + horizontal; float y = 0.0f + vertical; float oWidth = 1.0f; float oHeight = 1.0f; //draw plane float xTwo = 5.0f + horizontal_one; float yTwo = 0.0f + vertical_one; float oTwoWidth = 1.0f; float oTwoHeight = 1.0f; if (checkCollide(x, y, oWidth, oHeight, xTwo, yTwo, oTwoWidth, oTwoHeight) == 1) { drawcollision_one(); } } my screen variable works when I set it to 0.0f, my problem is in getting the timer function to execute.
    31. Hi Max, Thanks for your reply. I decided to redo my collision engine by essentially following/porting the Box2d Lite code (after I understood it properly). General behaviour is a lot better than before and I haven't even implemented warmstarting yet. Box stacking is still quite weak. There's almost no jitter but I find that even a stack of 10 boxes will fall over within a few seconds @ 10 iterations. I know warmstarting would improve the results but is this standard behaviour? I just want to make sure what I have so far is working properly.
    32. Just a general theory of how to approach it not so much how the game specifically done it, since it's unlikely that knowledge is out there, but i accept either one.
    33. If you have a small, known set of allowed characters, you can use an array indexed by character as an unordered map: // The following assumes that ALL chars are >= 'a' and <= 'z'. int countPerChar[26] = {0}; for (char c : answer) { countPerChar[c-'a']++; } int count = 0; for (char c : guess) { if (countPerChar[c-'a'] > 0) { countPerChar[c-'a']--; count++; } }
    34. New Update This week was a busy week for me. Unfortunately, this meant I had less time to work on my indie game. However, I have managed to implement a basic UI and spawning system. However, this will be overhauled during the next week. The biggest update is the performance update. I would like to thank you for the views on the last video and I hope you enjoy my latest video on youtube.
    35. I'm closer to 60 than to 50 and I've been seen stuff over the decades. I can vouch that despite claims of being age blind, hiring managers like to hire people who are similar to themselves, in age, in sex, and in socio-cultural background. Yes, it's not legal and it's not necessarily to the company's advantage, but it's human nature and you;re going to run into it. Expect to get fewer opportunities than someone who is younger together with excuses like "someone your age will expect to be paid more than we can afford" or "we're a young and agile team that needs to be able to pick up new technologies on the fly." Ageism in the industry is alive and well and rumours of its demise are greatly exaggerated.
    36. I am a beginning game developer, using Linux and C/C++. I am interested in organizing my game engine around a state machine, that let's me jump from a start screen, into the game and then back out during gameplay. Where the player would be able to set options such as sound or video settings. I have never created a state machine, but found out that it is what I should be looking for. Does anyone have any suggestions on how to develop an SFML or SDL2 project around that concept. Some basic example code would help. Or some project where the source code is available and it's not too difficult to go through.
    37. Without knowing the language and what a String is, I would venture that it's probably safe to compare the last character to '/'. If you're using a C-family language and String is some sort of aggregation of chars, then it's safe because single-byte UTF-8 character always have their most significant bit clear and are equivalent to 7-bit ASCII. All multibyte UTF-8 characters have their high-order bit(s) set. If you're using a C-family language and String is some sort of aggregation of wider characters, the integral promotion rules will come into play and '/' will be promoted to the larger type before comparison. If the promotion involves sign extension, it's still safe because sign extension of a value with a clear MSB is safe. If you're not using a C-family language, I don't know because various languages have different rules.
    38. As I said. It is kinda supposed to be hard. But if more people say it is too hard I maybe should think about making it a little bit easier. But once you get used to it and take your time it really should be doable. My highscore from my last testing was a little bit over 10.000.
    39. Zenith_Felwood

      New guy here (Please move post if in wrong place)

      I'm sure over my time studying coding it will be a lot more then very other minute. LOL!
    40. Changed. Texture is created inside QuadDrawable.cpp and opencl code inside OpenCLWorker.cpp Also copy kernel.cl to the folder with app.
    41. Yes, you can use glut instead of glfw, please create simple test project, i will change code and test of result.
    42. The programming gods were testing your dedication and patience. They do this test about every other minute.
    43. Is glut instead of glfw? Replaced.
    44. Greetings, I'm sure there is a place for this; however I fail to see one. Really just want to introduce my self more then anything.Failure to do so should be a crime since I have no coding experience what sop ever. Ok well a bit of HTML but does that even count anymore??? Now its all QSS this and Java That. Okay ill stop pretending to know what I'm talking about. Instead I will explain why I am here. I want to make all the x box one games playable on google play store with same graphics. I joke! The real reason I'm here is because I have an ambitious idea like all of you; Wanta-be porn stars. I want to become a writer. Though I'm sure you can all criticize my writing. Before you criticize realize i said nothing about being an editor. So question remains what is a writer doing on a game Dev site. Well with a question of course. My dream doesn't end as a "Wanta-be" writer. I my good friend want to make a text based game. Yes, it is true pen and paper works wonders. Yes, it is true lots of text based games suck. Yes, it is true mine may be no different. Never the less my ambitious mind needs this to work. So I pray to Jebous! I pray so very hard to this dark skinned Jebous that you all will help me. In return you will get yet another shit based text game. I may or may not promise you that. Now my epic speech is done... here is my first Java question that has nothing to do with my game. When I downloaded Android Studio I got this java error while downloading. java.io.IOException: Cannot download 'https://dl.google.com/android/repository/android_m2repository_r47.zip': Connection closed at byte 24641360. Expected 355529608 bytes. , response: 200 OK Warning: An error occurred while preparing SDK package Android Support Repository: Cannot download 'https://dl.google.com/android/repository/android_m2repository_r47.zip': Connection closed at byte 24641360. Expected 355529608 bytes. , response: 200 OK. Please note my connection is fine. When I clicked retry worked perfect. Just because I'm annoying as hell; I must ask. Why the #*@! did it not work the first time. Thank you.
    45. @_Flame_, can you create a simple project without any dependencies ? I haven't PkgConfig, GLFW.
    46. Hello, I am working on a FPS in UE4 where the main character has the ability to grow and shrink and am trying to identify the best way to make this transition look as realistic as possible. I have found that simply resizing the player model only serves to adjust the elevation, but does not give the appearance of changing size. Any advice on how to do this, especially within UE4, would be greatly appreciated! Also, although it isn't critical, eventually I would like to incorporate this into VR (Oculus/HTC Vive), so if you're aware of any finesses that would only apply to VR, that would also be very helpful. Thank you, -Evan
    47. All i'm doing is writing this as a note down somewhere so one day I'll know this stuff too
    48. Hi ! I need to check if the UTF8 string ends with the path seperator '/'. So do : if( String[ Length - 1 ] != '/' ) String += '/'; The question is: Is it safe ? Thanks !
    49. Septopus

      AIMBOT prevention

      I think the real problem with what you are proposing here is that the operation to find the cheater has a lot more outputs than 1 or 0. In some game systems it can be difficult to determine if a player is a cheater or just very very good.
  • 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!