1. Past hour
2. ## Blending textures question

I should have tried with a coloured texture earlier, as it is much more apparent with this.
3. ## Checking a Height Value Repeatedly

Disclaimer: Although I've read the entire thread, I didn't entirely understand everything in it. So, this may or may not be relevant. There are grid-traversal algorithms that can split a linear component into subcomponents, each of which is fully contained by a grid cell (in other words, the parent linear component is split at cell boundaries). I found this: https://theshoemaker.de/2016/02/ray-casting-in-2d-grids/ I didn't read all of it, but the second diagram in the section titled 'Exact Ray Casting' shows what I'm talking about. For what you're doing it might be more complicated, since you might need to split the linear component at interior triangle edges as well. Also, be aware that these algorithms can be vulnerable to numerical error, so appropriate care should be taken. It seems possible you could use a similar approach. For example, you'd start by finding the starting and ending positions for the current update based on the current velocity. If both the start and end positions are in the same triangle, no special handling is needed. Otherwise, compute the position at which the segment exits the starting triangle, and start the process over at that point. Repeat until the time delta is used up. In theory, this approach could allow you to deal with height continuously, which is what I suspect you mean by 'every height'.
4. Today
5. ## Quest for the Ban Hammer - Dungeon Challenge

I didn't make it very far, it crashed a few times on me. The jumping was fun, but I also killed myself that way a few times. I think the music and sound effects matched the mood of the environment very well. I like it a lot.
6. ## Blending textures question

This is what I have now, but it isn't quite there. The colours are now correct, with the exception of the darker green areas. textureColor = TextureStandard.Sample(SamplerWrap, input.textureCoord); float4 texOverlay = (projectionColor * projectionColor.a + textureColor * (1.0f - projectionColor.a)); color *= textureColor; color += (diffuseColor * diffuseIntensity); color *= saturate(textureColor * texOverlay); return color;
7. ## Psy - Dungeon Challenge

I really liked the art style in this game. I got lost a few times, but my rusty Wizardry skills came back a bit.

9. ## The Fire of Ardor - Dungeon Challenge

That looks awesome! I'd love to play it.
10. ## Checking a Height Value Repeatedly

Alright, there seems to be some problems with using suggestion number 2. I have enclosed three diagrams to help explain. The assumption is that I advance on the mesh with a small amount using the glm::translate command. And by using the formula above (number 2), I can calculate the height with the triangle's angle to make a simple inertia effect. The first problem is that as diagram number 1 shows, the glm::translate command can skip over the partial sections at both the end of cell 1 and the beginning of cell 2 and these section would be overlooked. The second problem (see diagram number 2) is that there could be a position change that has only one point in the triangle. The third problem is that the repositioning could completely disregard a triangles height all together (diagram 3). If some areas are not used in the computations, the slowing / speeding up of the ball will be too un-exact. Thank you, - Josheir -
11. ## Multiplayer networking for modded open source game?

RTS-es almost always use one of the players as server. Typically, this is the "hosting" player for a game. I don't see why this would be a problem? Any server is a computer that runs a program that uses Steamworks, and announces itself to the Steam matchmaking service as accepting game connections. Thus, a hosting player could just announce themselves through matchmaking. Picking a game that already supports networking would be best, though, because converting a single-player game to a networked game often ends up being "re-implementing all of the simulation and physics logic and main screen modes."
12. ## Appropriate questions to ask in interview

Asking questions about what they did is unlikely to be a problem. It shows interest in the company and shows you have done some homework. No problems there. Ask it. One game is not a business plan. Go do research on the people and the company itself. What little I see is not encouraging. In addition to your other questions, you should ask questions to ensure the company will still be around and the paychecks will clear. Startups are extremely high risk. Usually they are very demanding and there is no support, no backup system. Nearly all of them fail. In the statistically rare cases they don't fail, and if you are in early, there can be great career benefits. Before you go to the interview you should do some soul searching and figure out how much you can afford to handle them failing, and make sure you have a plan to not go down too in that situation. You should also have a plan to help them succeed, and a plan for your own success along with it.
13. ## Can I make Websocket multiplayer games for any genre?

The big issue with TCP (and therefore also WebSocket) is retransmit time when there are network errors. When data is flowing and there are no network hiccups, which on most networks is the situation most of the time, the data will flow smoothly. When there are network hiccups, which can happen with network congestion, or with electrical noise, or with other issues, the problem is how data gets retransmitted. Since these are a stream-based socket they cannot advance until that data is transmitted. The data flow will stop until the missing data has arrived. The retransmission timeout (also called RTO) is initially 3 seconds, then 6 seconds, then 12 seconds. That is, if you don't hear an acknowledgement after 3 seconds the data is retransmitted, then again after 6 more seconds (about 9 seconds total), then again after 12 seconds (about 21 total) then wait about 12 more seconds (about 33 seconds total) before declaring the connection dead. Contrast with UDP, where you can continue with missing data, and you can incorporate techniques to automatically retransmit data with every message until acknowledged, or not retransmit non-critical data, or to do other behavior including implement your own RTO similar to what TCP does. Exactly how big the issue is depends on the details. Can your game design and implementation cope with a 3-second stall? Does it saturate the network, increasing the likelihood of stalls? Will your players be on networks that are more prone to communications issues?

ello, could you help me to read data from XDB game files:It contains needed info (some codes are available via raw Notepad++ view).Also files are presented in couple (xdb with xdb.rp).Attached some files for example Thanks.

20. ## Can I make Websocket multiplayer games for any genre?

Thank you very much for sharing your experience Jack, this is exactly what I wanted to know. I actually did check out the link to the game and it's definitely playing very smoothly, no hick ups at all. I read in your post that you were planning on letting browser clients connect via websockets but native desktop via UDP. Would that mean desktop clients will always have an advantage in terms of latency over browser clients? I'd like to take your offer and observe the networking in action, I'll PM you right now and when is a good time. Thanks again Jack!
21. Yesterday
22. ## Blending textures question

Hi _WeirdCat_ This is my blend state here. ID3D11BlendState* d3dBlendState = NULL; D3D11_BLEND_DESC omDesc; ZeroMemory(&omDesc, sizeof(D3D11_BLEND_DESC)); omDesc.RenderTarget[0].BlendEnable = true; omDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; omDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; omDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; omDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_SRC_ALPHA; omDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; omDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; omDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
23. ## Blending textures question

So you still do not set proper blending operation https://www.google.com/m?q=dx11+set+blending+operation https://www.braynzarsoft.net/viewtutorial/q16390-13-blending
24. ## C++Set Up GTest for TDD. C++, VS

I made an example of project in VS 2015: SortFunctions.zip This project will show you how set up Google Test in Visual Studio and run simple unit tests. Note. If you have another version of VS then before you will run unit tests you need to select VS 2017, like in this screenshot: Google Test library is included in the project as source folder and it is placed in "Libs" folder. You need to: open the solution. The solution is file with name: "SortFunctions.sln" select your version of VS, for example VS 2017 instead of VS 2015 as in screenshot above make the "SortFunction_UnitTests" project as "StartUp Project". For this: make right mouse button click on the "SortFunction_UnitTests" project -> select "Set as StartUp Project" press Ctrl+F5 to run unit tests You will see this settings in the "SortFunction_UnitTests" project properties: $(SolutionDir)Libs\gtest-1.8.1\include$(SolutionDir)Libs\gtest-1.8.1 \$(SolutionDir)SortFunction This solution include two projects: SortFunctions - this project contains modules that we want to test. For example, bubbleSort() method SortFunctions_UnitTests - this project contains unit tests The "SortFunctions" project has two files: SortFunctions.h #pragma once extern void bubbleSort(int *array, unsigned int amount); extern void countingSort(int *array, unsigned int amount); SortFunctions.cpp #include "SortFunctions.h" void bubbleSort(int *array, unsigned int amount) { } void countingSort(int *array, unsigned int amount) { } The "SortFunctions_UnitTests" project has tests. For example, this is the "bubbleSortTests.cpp" with two tests. The first test is for positive numbers and the second test is for negative numbers: bubbleSortTests.cpp #include <gtest/gtest.h> #include "SortFunctions.h" TEST(bubbleSortTest, AllPositiveElements) { // Arrange const unsigned int amount = 5; int actualArray[amount] = { 5, 3, 10, 2, 7 }; int expectedArray[amount] = { 2, 3, 5, 7, 10 }; // Act bubbleSort(actualArray, amount); // Assert for (size_t i = 0; i < amount; i++) { ASSERT_EQ(expectedArray[i], actualArray[i]); } } TEST(bubbleSortTest, AllNegativeElements) { // Arrange const unsigned int amount = 5; int actualArray[amount] = { -5, -3, -10, -2, -7 }; int expectedArray[amount] = { -10, -7, -5, -3, -2 }; // Act bubbleSort(actualArray, amount); // Assert for (size_t i = 0; i < amount; i++) { ASSERT_EQ(expectedArray[i], actualArray[i]); } }
25. ## Blending textures question

Hi MJP, thanks for the reply. I just tried that snippet and it gave me the same result unfortunately. float3 texMixed = lerp(textureColor.xyz, projectionColor.xyz, projectionColor.a); float4 texOverlay = float4(texMixed, 1.0f); color *= texOverlay; Checked with the VS graphical debugger and the skull image has an alpha of 1.0 in the black areas and 0.0 in the transparent area. So the desired area is fully opaque. Thanks again for your help so far
26. ## Humanitarian Gamification: Designing a game to save the world?

We could help you with useful ideas if we had an idea what communities. Homeless encampments in L.A.? Refugees in northern Mexico? Persecuted outcasts in Myanmar or India? Poor farmers in Kenya? Coal miners in Appalachia? I dread the answer "all of the above."
27. ## Blending textures question

What you have there is the typical "over" blending operator, commonly used for transparent rendering or for combining layers in photoshop. It's essentially a linear interpolation of the two colors based on an alpha value, in fact you can re-write it as this: float3 texMixed = lerp(textureColor.xyz, projectionColor.xyz, projectionColor.a); This blend operation will result in only your projected texture color being visible when alpha is 1.0, so I'm guessing the alpha isn't actually 1 in your cases. I would double-check the value of the alpha channel in your texture (RenderDoc is great for this), and perhaps try hard-coding the alpha value to 1 in your shader to see what happens.

29. ## Any tips for Better Writing?

Rule #1... Writers write everyday. Every single day. Even if it is only a sentence or two. Rule #2 You should always have an "open feeling" about your story line. What I mean, never be completely feel "happy about it", It should always be "could be better". By going back and back to it. over and over again, you will start to see things you missed, or what could be better. Rule #3. Don't through away those old ideas. Keep a folder, or file of the stuff you didn't use this time. Save for another time.. these are important.. Honest.
30. ## Explain to me Scene Node/Manager

Apology, I don't use GameDev regularly so I forgot all about this post. From what I researched it seemed like it really isn't for every game genre in general. That is an excellent idea though, despite having zero interest in either looking into it a bit more might be beneficial. I just find it interesting, the example is always a space game. I was able to set up an example I came across where you add one character (main node so to speak) and you could toggle to any character added, and adding additional character would allow you to move any character added under the toggled (highlighted) character you choose like a big chain. The first character added could move the whole chain. Very interesting. Thanks for the suggestion.
31. ## Humanitarian Gamification: Designing a game to save the world?

All this is just me trying to sharpen ideas, nothing is set in stone. That said... Goals: I think we're going for "living conditions", kind of a rags-to-riches deal, except aimed at improving the living conditions of communities (individuals and/or groups). Accomplishing: Get players to actively help others improve their living conditions. Methods are secondary to the reaching out to others, if that makes sense? Games for Change: Thanks, I'm totally on that now!!
32. ## 3D Blending textures question

Hi Guys, I am playing with projective texturing which I now have working well. However, I am having troubles figuring out how to blend the original texture with the projective texture. I am trying to make it so the projective texture is painted on top of the original texture. I have come close with this textureColor = TextureStandard.Sample(SamplerWrap, input.textureCoord); float4 texMixed = (projectionColor * projectionColor.a + textureColor * (1 - projectionColor.a)); color *= texMixed; But this is giving me the following output; The skull should be a solid black, and the greens are a bit washed out outside of the projected area. Any advice on how to cleanly project the skull on to the body would be truly appreciated. Thanks in advance
33. ## Some questions about UDP in C++

It might be educational for you to make one change at a time, and figure out which one it was 🙂 (Of course, it may be more than one.) My guess is that it's the client-side bind() and the size-value in recvfrom(). But only a controlled experiment will tell for sure. The reason recvfrom() needs the size value, is that otherwise it doesn't know how much it can write into the buffer you pass it (it can't assume it's a sockaddr_in, because sockets work with a bunch of different protocols, including IP6, which may have bigger address structs!) It thus reads the size of the buffer on input, and then updates the value on output to whatever the size of the address received actually was.
34. ## Grinbolt

It is an RPG whose plot revolves around an apprentice magician named Lumiel who must develop his qualities while unraveling the dark plot that surrounds the island, which is the last vestige of an ancient and powerful kingdom called Grinbolt. Besides having to solve the main plot, Lumiel will also be able to carry out multiple secondary missions with which he will gain the gratitude of his countrymen and will grow as a magician and a person. There will be times when you will want to clear your mind of the multiple combats and investigations carried out; for this, you will have at your disposal various minigames scattered throughout the island that will help you in this task. Do you want to help Lumiel reach his goal and at the same time get involved in a small world full of magic and fantasy? ★ Available in Spanish and English. ★ Compatible with VR (Google Cardboard). ★ Compatible with multiple GamePads.
35. ## Islands and Land

I found this and thought of your comment here! All you have to do is make a closed copy of your hull, apply this shader, and make sure your water is drawn afterwards on the transparent pass. It worked for me without the refraction part, and the only change I had to make to my water shader was setting ALPHA. This solution is great for me because I'll always need a closed copy of my hull for my buoyancy calculations anyways. The only downside that I can anticipate is that it might not look correct if you were already looking through another transparent surface such as a window.

37. ## [DX9] Displaying font loaded by FreeType

Don't mean to necro this or go off topic, but does anyone have any experience rendering colored emoji's? I can render emoji's just fine (using char32_t) The problem is actually when trying to load a colored font, which I expected this one to be. I've tried 3-4 different fonts that are labeled as colored but FT_HAS_COLOR() seems to always return false on the font.. I am supplying FT_LOAD_COLOR into FT_Load_Char flags, but it doesn't seem to do much. I am expecting pixel_mode to be set to FT_PIXEL_MODE_BGRA as it says in the documentation, but I always get FT_PIXEL_MODE_GRAY. Any help would be greatly appreciated! Thanks
38. ## c# console snake game

If you add DrawRactange() method then drawing food will be easier: struct Food { public int x; public int y; }; List<Food> foods = new List<Food>() { new Food() }; private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); DrawRectangle(g, 340 + x, 280 + y, Color.Green); DrawRectangle(g, 330 + x, 280 + y, Color.Black); foreach (var f in foods) { DrawRectangle(g, f.x, f.y, Color.Red); } g.Dispose(); } How it looks now: using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace SnakeByPhil_WinFormsGDI { public partial class Form1 : Form { public Form1() { InitializeComponent(); CenterToScreen(); timer1.Interval = 200; timer2.Interval = 500; timer2.Start(); } int x = 0, y = 0; Random rnd = new Random(); int move = 1; struct Food { public int x; public int y; }; List<Food> foods = new List<Food>() { new Food() }; private void timer2_Tick(object sender, EventArgs e) { move = rnd.Next(1, 5); int food_x = rnd.Next(0, 290); int food_y = rnd.Next(0, 290); foods.Add(new Food() { x = food_x, y = food_y }); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); DrawRectangle(g, 340 + x, 280 + y, Color.Green); DrawRectangle(g, 330 + x, 280 + y, Color.Black); foreach (var f in foods) { DrawRectangle(g, f.x, f.y, Color.Red); } g.Dispose(); } private void DrawRectangle(Graphics g, int x, int y, Color color) { SolidBrush brush = new SolidBrush(color); Rectangle rect = new Rectangle(x, y, 10, 10); g.FillRectangle(brush, rect); brush.Dispo﻿se(); } private void timer1_Tick(object sender, EventArgs e) { switch (move) { case 1: for (int i = 0; i <= 20; i++) { x++; } break; case 2: for (int i = 0; i <= 20; i++) { x--; } break; case 3: for (int i = 0; i <= 20; i++) { y++; } break; case 4: for (int i = 0; i <= 20; i++) { y--; } break; } if (MouseButtons == MouseButtons.Left) { } Invalidate(); } } }
39. ## Implementing realistic DOF like in GTA V

So I finally did it: float p = -cinematicDOF.focusPosition.z; float f = (p + cinematicDOF.i) / (p * cinematicDOF.i); float d = -fragPos.z; //float d = sqrt(pow(cinematicDOF.focusPosition.x - fragPos.x, 2) + pow(cinematicDOF.focusPosition.y - fragPos.y, 2) + pow(fragPos.z, 2)); dofBuffer = abs((cinematicDOF.a * f * (p - d)) / (d * (p - f)));
40. ## RTX path tracing demo

An updated demo is now available. FIltering has been added, along with TAA and sharpening. Performance has greatly improved for pre-RTX hardware; a 1060 will get you ~25fps. Link: https://ompf2.com/viewtopic.php?f=8&amp;t=2158
41. ## Capsule collider not moving at the same speed as the animation(UNITY 3D)

ok create another gameobject and test animation with it with the same script and check if the problem still exist
42. ## Quest for the Ban Hammer - Dungeon Challenge

On my first attempt, I managed to somehow get stuck on that desk in the top right corner, between the down-pointing wing and the NPC standing there. Could move left/right sporadically, but could not move down. Also, it seems like there are other invisible obstacles even when you haven't just killed something. Otherwise, I like it.
43. ## c# console snake game

@phil67rpg what do you think about this improving of your code? Let's to rewrite this method: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); SolidBrush greenBrush = new SolidBrush(Color.Green); SolidBrush blackBrush = new SolidBrush(Color.Black); SolidBrush redBrush = new SolidBrush(Color.Red); Rectangle rect_green = new Rectangle(340 + x, 280 + y, 10, 10); Rectangle rect_black = new Rectangle(330 + x, 280 + y, 10, 10); Rectangle rect_red = new Rectangle(food_x, food_y, 10, 10); g.FillRectangle(greenBrush, rect_green); g.FillRectangle(blackBrush, rect_black); g.FillRectangle(redBrush, rect_red); redBrush.Dispose(); blackBrush.Dispose(); greenBrush.Dispose(); g.Dispose(); } I think it looks better: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); DrawRectangle(g, 340 + x, 280 + y, Color.Green); DrawRectangle(g, 330 + x, 280 + y, Color.Black); DrawRectangle(g, food_x, food_y, Color.Red); g.Dispose(); } private void DrawRectangle(Graphics g, int x, int y, Color color) { SolidBrush brush = new SolidBrush(color); Rectangle rect = new Rectangle(x, y, 10, 10); g.FillRectangle(brush, rect); brush.Dispose(); }
44. ## Freelancing as a software developer to fund game development

Omg... I just realized that the Unreal Engine exists. And they have a forum where you can find jobs... I guess I'll just learn how to make games with Unreal Engine and then apply for one of the jobs. I need to learn this anyway because I want to make games with UE4 in the future. So... Problem solved, I guess? Btw. why can't I edit my previous post?
45. ## c# console snake game

yeah!! observer I put the food in the form_load method and it works, thanks for all the input.
46. ## c# console snake game

I do not understand where and when the food must be drawn. Please, explain me. It is better to write it in Paint. For example, you can generate next food when the snake eat one. Or do you want to generate food periodically? For example, every 5 seconds?
47. ## Game audio production milestones

Again, it really depends on the team and project. I've had milestones like so: 1) Establish how many themes will be needed across the entire game. (Pre-production) 2) Get a working version (i.e concept) of X amount of these themes. 3) Get approval of these concepts. Get paid a percentage. 4) Create finalized versions of these themes. Depending on your role in the project this could also involve implementing the audio. 5) Get approval of the finalized versions. 6) Get paid rest of the balance. At any time scope and direction of the game may (and usually does!) change so then you have to reassign the scope. I've also had milestones where I literally created some sound effects, threw them over to the client and then got paid while they did everything else. Then I've had projects where I created all of the sound design, music and implemented and set up everything myself. It all depends. There's not set standard. It's literally a by-each-project process.
48. ## c# console snake game

observer your code still draws the food all over the screen
49. ## Bits & Pieces Music

Hey everyone! Sorry it's been so long again. I've been pretty busy and am in the process of relocating across the country (crazy, I know!). Still, I've been working on music every single week, and am in the process of awaiting some digital stores to sell my next album, Infinite Continues. This track I'm sharing with you today isn't on any album, but is merely a work in progress I created over the weekend. It's a little back to my old roots, which is what I do in between trying new things. Anyway, here's "Return Fire" Enjoy!

Hello everyone, I am a Games Tech and Design student in my second year and I have made a game on the side for mobile. I want to publish the game in the Play Store for Android and I do not want to make money out of it. I just want to have a free game on the play store because I want to experience publishing games on platforms accessible to majority of people and enjoy what I have done. The problem is i do not know anything about copyright laws and legal stuff and I have used some assets from the internet where they have said the asset can only be used for personal use. I want to know if I could get in trouble for using those stuff for a free game (no monetization). and if i have to refer the original creator, how would I do it? Sorry if it is a common and silly question but I have no idea whatsoever on the legal stuff. I looked it up on the internet and have found out that if the game does not make money i can publish it and some said that i could get into legal trouble if i am not careful about it. Thanks, muttsang
51. ## Options/Advice for Selling Mod on Open-Source Game?

Huh, that's cool. That is definitely more similar to my idea. The main differences are: -I want to do it with an existing RTS game so it can have better graphics and more complicated underlying game mechanics (hence the mod) -I want players to be able to control units concurrently with the AI they write. so you don't have to start out writing code, and you don't ever have to write it if you don't want. the idea is that it might attract people who have less of a coding background, then when they see that coding helps others win, and how they do it, they might give it a try. and it allows human-AI comboing, which I've always thought it is really cool -I want to include a tutorial series on how to program basic AI within the game so it appeals more to people trying to learn. Yeah so I just looked at the subscription plan, and it looks like there's a flat fee to buy the game, then a subscription fee for extra AI time. So I guess you can write more memory-intensive programs if you pay for the subscription? Is that the deal? Back to the business-model thing, I came up with a potential issue with making money hosting servers for competitive play; if it is successful, since the game and the source code would have to be released under GNU GPL, there's nothing to stop another company from taking exactly the same game mod and hosting competitive play on their servers. The only advantage I would have it momentum, because people like to play where others play, etc. But this could be easily beaten by price undercutting, especially by a more established company. However, if this happened, it would at least validate the popularity of the idea, and maybe justify the much larger investment in making my own RTS from the ground up with this programmability built in, after feedback on the mod version from users. Thoughts?
52. ## Can I make Websocket multiplayer games for any genre?

Hi Hashbrown. Regarding FPSs: I’m the one who started the previous thread linked in Hodgman’s post. Since that thread, I’ve quietly done steady work on the game. It's not a FPS, but the mechanics and networking code are similar. We did a small WebSocket multiplayer test last week and it went really well. That was five players in Jordan connecting to a VPS in France. You can get an idea of just how “fast paced” the game is here. The server is off at the moment, but you can still see how responsive the movement is, the use of inertia, projectile speed, etc. - it's less twitched-based than some shooters. As mentioned in the thread, I’m round-robining over five WebSocket connections. It’s working well so far, but I plucked that number right out of a hat - I haven't tested other configurations to make any kind of comparison, and I haven't tested with a large number of players. (If you want to observe the networking in action, PM me and I'll figure out a time to have the server on.) In light of all that, my preliminary observation is that WebSockets could work OK for a FPS. But I think the networking code needs to be extra good (naturally), and there are definitely some allowances I have made because of the less-than-ideal TCP/browser environment. For example, my clients have more authority over their position than is typical in a multiplayer shooter. This mitigates the effect of interruptions in the flow of updates from the client to the server but makes it harder to prevent cheating (a particularly big problem because users can use the browser itself to easily access and change some parts of the game's code). You should also have a look at multiplayer shooters (2D or 3D) among the ".io" games. That should give you a good idea of what's already been done. In my opinion, most have a sluggish feel. Most don't seem to do any kind of client prediction, but I suspect that has more to do with the way these games are programmed than with limitations imposed by the WebSocket platform itself. Regarding RTSs and RPGs, these seem like ideal applications for WebSockets.

• 0
• 0
• 0

• ### GameDev Challenges

Open Group  ·  86 members

• ### For Beginners

Public Group  ·  1 member

• ### Unreal Engine Users

Open Group  ·  4 members

• ### Optimization Strategy

Open Group  ·  1 member

• ### Publishing and Monetization

Open Group  ·  1 member

1. 1
2. 2
Rutin
26
3. 3
4. 4
5. 5

• ### Member Statistics

• Total Members
253985
• Most Online
6110