1. Last week
2. ## Fixed Function Pipeline Faster For Sprites?

Cool. Thank you for your input. Overall, this has been a very helpful thread for me. I think I am on my way to that blazing fast particle system I wanted.
3. ## Fixed Function Pipeline Faster For Sprites?

Ah yep, sorry you are right, I didn't read thoroughly enough.
4. ## Fixed Function Pipeline Faster For Sprites?

Oh no, I'm definitely not doing that. Shader compilation happens once at init time. I did not include that part for brevity's sake.
5. ## Fixed Function Pipeline Faster For Sprites?

Thank you for the brilliant suggestion. Will do exactly that. Thanks for pointing out that I have no idea what I'm doing. I guess this is why I'm here, so I can learn from you and one day, maybe, have an idea of what I'm doing. I think you misread weirdcat, I think he was implying that how you do it will depend on what exactly you want to achieve, 'gave no idea' rather than 'have no idea'! I don't think you are that far from something decent.. it is more a case of jigging things around to make it more efficient for the hardware, reducing the amount of unnecessary expensive calls and repeat work. To go further on my suggestion about separating your once off work from your per frame work, you could have something like this: void Game_Start() // one off stuff on game creation, create shaders, textures maybe, vertex buffers etc? void Game_End() // free resources etc used by the whole game void Level_Start() // one off stuff dependent on a game level .. might have some resources void Level_End() // free level resources void Frame_Update() // stuff you want to do on your frame, updating if necessary and drawing using the resources you have already created That kind of scheme is fine to get started, be aware thought that on some platforms you can 'lose the device' for the 3D and sometimes more (say if the user starts playing another game in between, or alt tab etc, this may be the case on android from memory), in which case you need to recreate your GPU resources, in which case it makes sense to reuse the same bit of code you would use on game / level start for resource creation. It can often be a good idea to use pools as wierdcat suggested, allocate more than you need at the start, then use whatever you need on each frame (this is true for main memory as well as GPU resources). The other things is that you appear to be recreating and compiling the shader on every frame, which will probably kill performance. Again move this to one off code and reuse the shader. After all this is done you can reassess whether there are any bottlenecks.
6. ## Are there any free game list / lobby / match making Services or APIs out there?

Note that UPnP isn't super wide-spread, and many places don't like turning it on for security reasons. (Some routers also come with it off by default.) True NAT punch-through using an external introducer is more compatible overall. That being said, you HAVE to run a public service on a public IP for that to work. There are some STUN and TURN protocol servers that you may be able to use -- google for those protocols -- but I don't know off-hand of any reliable, publcly open one you can use for your own protocol. If you're trying to avoid cost, you could perhaps set up a simple server on Amazon Web Services using their "free" tier. That lets you use a binary/process of your own (it's a virtual private server running linux,) and lets you run a small server free for a year. I imagine Azure and Google Cloud might have similar trial options. Then you need a domain name to point at this server, so the clients can realiably find it.
7. ## Vehicles in FPS games

You talk as if you're pro but I've never heard a pro talk like that. You're a walking talking contradiction.
8. ## Fixed Function Pipeline Faster For Sprites?

Well, ideally I want a multi-purpose blazing-fast particle system. But you're absolutely right! I should try to pass only as much data as is absolutely required for the task.
9. ## Fixed Function Pipeline Faster For Sprites?

What are those sprites actualy defined by? Do they rotate in world space, scale, and translate? In that case you still need only 3x4 matrix not a 4x4 matrix, which saves you entire 4f vector in uniform, general most lowend limit for uniform array is 256 times 4f vectors. In case your sprites do not rotate (what they should not, so not call it sprites if they do but general quads) you can use a single 4f vector for position and fourth number as the scale factor around all 3 axises.
10. ## Compute shader return values

HLSL is a pretty small subset of C, so I'm unsure if it supports aggregate initialization like that. You probably just need to fill in each element like: corners[0] = x0; corners[1] = y0; corners[2] = z0; corners[3] = x0; corners[4] = y1; corners[5] = z0; ... MSDN's pages about HLSL syntax and features might tell you what type of array initialization syntaxes are supported. As for the last error, you don't specify parameters as 'out' at the callsite like you do in C#, calling the function should just look like: int corners[8 * 3]; CornerPoints(x, y, z, corners);
11. ## Fixed Function Pipeline Faster For Sprites?

@SyncViews, just an idea. What if I send mvMatrix as a uniform array, and even though I can only send 32 or 64 matrices at once, I can then break it up into, let's say, 4 draw calls, to do 128 or 256 sprites? Maybe worth a try.
12. ## Fixed Function Pipeline Faster For Sprites?

It's C++ that runs on every frame. Will clarify these things in the future. Yes, in this case the goal is to change vertex data on every frame. Will definitely try using one VBO without recreating it, set it as dynamic, then do updates to it. Thank you. Thank you for the brilliant suggestion. Will do exactly that. Thanks for pointing out that I have no idea what I'm doing. I guess this is why I'm here, so I can learn from you and one day, maybe, have an idea of what I'm doing.
13. ## Fixed Function Pipeline Faster For Sprites?

No. I will. Thank you. Yes, since I was looking for a way to draw all sprites with one call, I decided to make mvMatrix an attribute. Should I try sending it as an array of uniforms? Maybe I can send an index of the sprite as an attribute and then get mvMatrix out of a uniform array based on that? Then, I think I will be constrained by maximum size of a uniform array. These guys here talk about values around 512 maximum floats (32 matrices max). Granted, this is a conversation from 2008 so the limits must have risen since then. I'm looking to draw around 256-1024 sprites (32x32 grid would be nice), and it should be as butter-smooth as OpenGL 1.1 was. It would suffice if I could have 256 matrices in a uniform array if that speeds things up. Can I? Thing is, even though right now it's a just a grid, the sprites are supposed to be stretchable/bendable, like trey were in my old fixed pipeline code, so yes, each corner of each poly does have to have a completely unique position on every frame. What I'm building is an editor for a flexible mesh of voxels, where you can stretch each corner and morph it into interesting architecture or landscapes. This worked perfectly in my old engine but it was Java and fixed-function. Got it. Will try re-use the same VBO and will try DYNAMIC and STREAM. Other people have mentioned this as well below. Thank you. It makes sure the texture is in the texture atlas. It's rebuilt as-needed (only when a brand new texture is added). You're right, I probably should get rid of string map lookup here. But in this particular case there is only one texture so array size is 1, so it's not the bottleneck. setVertexAttrib just calls all the gl functions needed to set up an attribute. Good point, though. I should try to do this once if I can. This is not the only program/renderer that runs in the engine though, so I assumed I have to re-set-up all the attributes on every frame for every program. Is that not the case? I'm not super worried about the gaps between the sprites. This is only for an editor, not for rendering in the game. As long as it's smooth and I can quickly build vast landscapes and cities out of voxels, that's all I care about. Thank you, will try to see if I can only calculate these once. It's texture span. It's basically how many voxels a texture spans before it repeats. I still have it in the shader for some legacy reason I think. I can't remember what I was going to do with this value, but I think it was important for something once before.
14. ## Multi unit 2d orthogonal RPG Classes / control.

I'm making multi unit (player has multiple units / characters) 2d zelda like rpg and have a few design questions. There will be wands, potions, melee weapons, bowed weapons, armor , horses, rings, rivers, boats, crafting, food, eating ,drinking, buying, selling, seasons, temperature, traps, magic, plants, fruit, ents, the works. The Days will change to night, the temperature will rise and fall, the leaves will drop, the snow will come. And Soon, a race of allelopathic ents will soon destroy all other plant on earth as we know it. Should player be able to control all units in his team or just the team leader? if the latter should some units he recrutes in the game have better AI than others? Should each non magic unit be a jack of all trades but master of few (Can shoot a bow, can swing a sword, can thrust a spear, can dig a ditch, can chop a tree ECT.)? I'm leaning towards this option. OR Should Each unit only be able to do one thing? like Yeoman shoot bows and that's all or Swordsmen use swords and that's it? But their like really good at it?
15. ## Anyone using an ECS library like EntityX or EnTT? (C++)

Agreed. I made a mistake in terminology in my previous post, so I'll retract the second part of it. I'd still be interested in knowing more about the OP's goals though (target platforms, types of projects, etc.), since that could have a bearing on what languages and/or idioms might be worth pursuing.
16. ## 3d picking inaccuracy.

No wonder why intel gets garbage if you enable nv specific extensions and use them - wanted to post that a week ago
17. ## Neon Tail

Demo Download Our Website Patreon Discord Pitch Neon Tail is an open world roller skating game where you follow a young girl’s adventures and save the streets of Bluepulse City from dimensional disaster. She will meet many colorful characters and explore many fantastic locations of the city, from its various districts (shopping, business, residential etc) to its subways and sewers, to the unknown planes of existence. The game is inspired by the urban dynamism of Jet Set Radio, the character development, narration, and emotional connections from Life is Strange, and the open world freedom from new gen Batmans. Features Plot missions Side Missions Unique roller skating controls Fantastic sci fi city to explore Free roaming activities Explosive soundtracks Memorable characters, playable and NPCs Interesting Collectibles
18. ## Neon Tail - Devlog 34

Video For this week's #screenshotsaturday , steady progress on free roaming activity. - The job system is done, a first type of job, package delivery, is coded and is ready for level design phase - Created a Notification system. You can receive any kind of message, jobs included. You open the message by pressing down on the dpad, and for jobs you can accept and activate the job by pressing down again. - A small Monument that displays the names of our backers/supporters. (bigger and crazier monuments to come) - Added breakable walls in the city. - Added a night version of the Shopping District. - Fixed a big FPS drop for night version of shopping district. (too many small lights) Next week we might open access to a new residential area, stay tuned! See you next week!
19. ## Looking For Talented Individuals For A Pirate 2D Platformer Project

Hi,im interested to take part as a programmer,and maybe as a animator.
20. ## Looking For Talented Individuals For A Pirate 2D Platformer Project

Hello Magi98, I am interested in your project and would like to support as a programmer. I have some experience with small hobby projects in Unity and can imagine working on the project. I want to gain experience first and have no financial interests.greetingscato
21. ## Anyone using an ECS library like EntityX or EnTT? (C++)

I could be wrong about this, but I've always been under the impression that the motivators behind ECSs are mostly architectural and not as much related to performance. Obviously an ECS implementation can be performant, but such a system could certainly be implemented in a non-performant way as well. So if your primary motivation for using an ESC is performance and not, say, convenience or architecture, it seems like that might be worth taking another look at. ECS should in theory help scale to very large object numbers by having a better memory layout and possibly being more amenable to SIMD etc., which could help with say your collision detection, depending on tour current implementation. Compared to having an "Entity" base class with say "virtual update()", "virtual canCollideWith(other)", etc. where the argument is that calling a virtual method on a "soup" of different things hurts CPU prediction (different actual implementations) and memory caching (jumping around in memory between objects). But it is by no means the only way. e.g. Factorio, where I believe the devs have openly said they see no advantage to ECS, and I believe do even have an OOP "Entity" structure (the Prototype / data gives an idea) but optimised the important cases (e.g. items on belts, pipes, inserters, etc.). A common example in various games that may be specifically optimised would be projectiles, particles, and "static" things like trees, rocks, etc.
22. ## Unity Looking for a artist for a proyect

Hi,im looking for an artist who can me help with a proyect,it will be a adventure plataform,maybe action,2D game in unity,i need help with the sprites for animation,environment,etc. My intention is practice with this,and grow,if you are interested,please send me a message,thanks!
23. ## Tactics, Strategy and Rhythm: How Audiosurf Utilizes Immersion to the Fullest Extent

Very informative article! Very interesting! Thanks! Nice read!
24. ## glTF2 Skeletal animation problem, always in bind pose.

I didn't found a "Edit" button so I'm creating a new reply. I changed my Skeleton and SkeletonJoint class so that Skeleton has only a list of Joints and each SkeletonJoint has a pointer to it's parent, but no children. xmath::Matrix CSkeletonJoint::GetLocalMatrix() { xmath::Matrix localTM = m_transformMatrix; localTM *= xmath::Matrix::CreateScale(m_scale); localTM *= xmath::Matrix::CreateFromQuaternion(m_rotation); localTM *= xmath::Matrix::CreateTranslation(m_translation); return localTM; } xmath::Matrix CSkeletonJoint::GetWorldMatrix() { xmath::Matrix worldTM = this->GetLocalMatrix(); CSkeletonJoint* pParent = m_pParent; while (pParent != nullptr) { worldTM = pParent->GetLocalMatrix() * worldTM; pParent = pParent->GetParent(); } return worldTM; } I fill the JointMatrixArray in my Entity. for (int32_t i = 0; i != pSkeleton->GetJoints().size(); i++) { resource::CSkeletonJoint* pJoint = pSkeleton->GetJoints()[i]; xmath::Matrix jointMatrix = pSkeleton->GetInverseMatrices()[i] * pJoint->GetWorldMatrix(); jointMatrix *= m_pEntity->GetWorldTM().Invert(); m_jointMatrices[i] = jointMatrix; } I use Matrix::Transpose before I send it to the shader and I already tried to change the matrix multiplication order. If I rotate the first Joint(root) than the whole mesh rotates, but if I rotate the second Joint(child) it doesn't change at all. I already looked at the glTF2 reference implementation(WebGL) and other skeletal animation implementaions and I still can't find my multiplication error.
25. ## Tactics, Strategy and Rhythm: How Audiosurf Utilizes Immersion to the Fullest Extent

Nice article! Very informative! Thanks!
26. ## [REV SHARE] Looking for 2D artist (Unity engine)

About the game: The project is a small trading/combat/exploration oriented game set in a medieval fantasy world developed in unity. The game will be hard and punishing and not meant to be finished on the first try. It involves several different play styles with concepts seen in both old school games and newer ones. It's nothing like what is currently on the market and therefor kind of hard to pin down into a specific genre. Our team: The project is in it's very early stage and we are currently building the team. We have three people so far which are split among programming, writing and development. We will be adding more team members as the project moves forward. Our current goal is to build a small prototype to be able to present for further development. What we need: We are currently seeking a 2D artist for various needs ranging from character to world concept and designs. If you are interested or have any more questions, contact me on discord at Veizyr#1797 for more details. We'd love to see your portfolio.

28. ## My idea for a beat em up action adventure type game

I think there's an important distinction between essential game design and artistic challenges, like "fun" combat in plausible and good looking environments, and self-inflicted hurdles, like VR instead of a 2.5D sprite engine and multiple varied playing characters before one good player character.
29. ## UnityWeekly Updates #37 - Ｂｒｅａｋｉｎ＇　ｔｈｅ　Ｌａｗ

Yup. Everything depends on where you live and where you work. Ie, in France, normal game companies do not pay their employees. If you make 25K€ per year (gross salary, so you earn less once you paid your salary taxes), you can feel happy. And this will be in Paris, the most expensive city in France. If you are very lucky, it will be in Lyon. Some companies will tend to settle in less expensive areas (ie Spain). Other main places in UE will be in London, and there you can expect 30-35K£ a year. But again this is not that much. With such salaries, you can expect to live (have a very little bedroom and eat pastas everyday). If you move out from the game industry (ie you go to global industry) then salary will be slightly higher. Expect 30K in France (even out from Paris). In UK, this will generally be outside of London (even for Imagination Tech), and salaries will be almost the same. In Canada, you can expect a bit more, but again, will depend on your location (ie Vancouver will be more expensive than Montreal for exemple). What you also need to know is that companies tend to flatten their salaries, worlwide speaking. So except if you are a top known programmer, with excellent skills, whether you will apply here or there, at the end, you'll mostly have the same thing. What will make differences is where you will apply. Ie, in USA, you'll be able to raise your salaries quickly if people are happy from your work. In France, not or very few. Also note that these appealing salaries are made to appeal young, single and devoted people. If you have a family, if you expect to have a life appart from your job, then your chances to be hired will be lowered. I'm talking from my experience, from the believes I made, so I might be wrong here.

32. ## Why isn't this opengl background working

Could you edit your post and put the code in code tags? That will make it easier to read. (Obviously there's not much code there and I'm sure someone could diagnose the problem as it is currently, but it would be easier with proper formatting.)
33. ## Anyone using an ECS library like EntityX or EnTT? (C++)

Regarding this part: Another possible reason besides performance would be portability. For example, C++ might be a reasonable choice for a common code base shared between e.g. iOS and Android versions of a game or framework. Further, it seems like whether performance would be a concern at all would depend on e.g. what platforms you're targeting and what types of projects you're working on. Depending on the answers to those questions, other languages might be perfectly suitable. I could be wrong about this, but I've always been under the impression that the motivators behind ECSs are mostly architectural and not as much related to performance. Obviously an ECS implementation can be performant, but such a system could certainly be implemented in a non-performant way as well. So if your primary motivation for using an ESC is performance and not, say, convenience or architecture, it seems like that might be worth taking another look at.
34. ## ScreenShotSaturday

Keeping up with the twitter hashtag of screen shots on Saturday!
35. ## Anyone using an ECS library like EntityX or EnTT? (C++)

You are right. Runtime composition shouldn't be the default solution. Using your language features for compile time composition is good enough most of the time, especially for smaller projects. ECS is not the magical silver bullet people claim it to be, nor is it the only solution out there.
36. ## Can only create games with game engines.

Ah the Assembly part was quite demanding and made simple demos( drawing a line, in realtime, was a challenge ) for the Spectrum. To be honest, I managed basic stuff but it proved invaluable to understanding the Mastersystem and Megadrive. It also helps clear up myths from their eras such as "the Snes was more powerful than the MD, and so on for the Spectrum and C64", as in neither case was that correct. For every advantage one had, it was trumped in another. My time with C++ and DirectX was..."messy". I was learning in 2000 and my knowledge was like Frankenstein's monster - different books and winging it on hope-and-a-prayer. In that hindsight I do recommend, once or twice a week, to spend a 30 minute focused session reviewing your code and slim'n'tidy it, ready for your longer, more serious sessions. This is what really shapes you into a disciplined programmer and to also nuture your own style. Basically, get into a routine.... I think you're on the right track, though!

Are those salaries real? Do people actually make $70,000 with under 3 years of experience as a game programmer? And where? If it's in San Francisco,$70k is not much. I heard for a family with 2 children, if you are earning less than $100k you can barely afford living in the Bay area for example. 39. ## Can only create games with game engines. I like the Input system that described in this book: Learn Math for Game Developers 40. ## DevBlog: Flying Fish #1 Introduction The idea just came to me as I was day dreaming. A game where you play as a fish wanting to fly. It would be an endless runner where you hold down a key to dive, the deeper you dive the higher you jump through the sky. Avoid obstacles, collect bonus points, etc. Referencing other games, the best way I can explain it is something similar to Halfbrick's Jetpack Joyride. As a relative beginner without great equipment I think that this is a project with reasonable scope and is something I feel is achievable. Obstacles I foresee are (1) creating and tweaking acceleration to feel good and intuitive, and (2) level design/procedural generation. Addressing these: (1) I'd like to study Jetpack Joyride's movement as I remember it feeling just right, and see how this can apply to my game (2) I think that full level design is unfeasible and limiting. I plan to create 'modules' of obstacles and awards which can randomly appear one after the other. The modules which appear can be decided based on the player's current score. Current Progress Time taken: 1.5 hours Movement done but no acceleration 41. ## Best software for a simple game I recommend you to study these video lectures: Math for Game Developers 42. ## Vehicles in FPS games Shade please cut it out. Im not trying to destroy someones life. Im simply pointing out that when you set out in this business, many people bite off more than they can chew (having overly ambitous projects when not realizing how much work is required), which leads to lots of disappointment and people giving up. I was certainly like that when I started making games in 2001. On topic: I would still recommend the OP to flesh out the core shooting first, as well as other critic components, such as networking if the game is multiplayer. 43. ## C++ Need help about bullet3 debug drawer Recently，I am studying bullet3 and DirectX 11.And I got some wired results like the attachments shows.It should be a sphere not a flat plane. I extended the btIDebugDraw to draw lines.The draw line api works correctly independently.And I traced the call stack and found there was some thing wrong with the bullet transform .I have no idea about how it acts like that. So I ask for help here.Any help or tips will be apreciated. 44. ## Are there any free game list / lobby / match making Services or APIs out there? It seems most of these game server browsers have died out since years. You can look there for more infos: https://en.wikipedia.org/wiki/Category:Game_server_browsers 45. ## Fixed Function Pipeline Faster For Sprites? You recreate the array each frame, consider making a big array of sprites and not to use all of them, or if you have a constant num of sprites then you use glBufferSubData and you dont do glGenBuffers per frame too its only needed when you change the size of vertex buffer, anyway you gave no idea what ur doing 46. ## Fixed Function Pipeline Faster For Sprites? I haven't fully read through your code or your github but: That code you posted for OpenGL ES2, is it meant to be pseudocode? There are no functions. It is not clear what you are doing as a once off process and what you are doing per frame. The general idea in graphics programming (and game programming in general) is usually to move as much code into a once off process (on starting game or level etc) and do as little as possible per frame. As such, to move a viewpoint, you typically don't change the vertex data, you might change, e.g. a matrix representing the view / camera transform and pass it as a uniform. This is very cheap to do for the GPU. If you do need to change dynamically vertex data each frame, you should explicitly tell the API that it is dynamic (rather than static unchanging) on creation. You have to be very careful using dynamic vertex buffers so as not to drastically affect performance by stalling the pipeline. In some cases this means creating e.g. 3 copies of a dynamic VB, and using them in turn on each frame. In some cases the API help do this for you, it is a good idea to try both and compare if you are not sure. You also absolutely do not want to be making any dynamic allocations / deallocations either on the GPU or CPU each frame. 47. ## DevBlog, No. 35 Hello dears! This month we had the following tasks: 0. Decide whether we need to implement AO (ambient occlusion) or not. 1. Screw the optimization of the terrain, i.e. return it to the previous level. 2. Implement the creation of a settings file and its saving. 3. Loading textures depending on quality settings. 4. To implement the preloading of the objects. 5. Tie different mines, and implement a new type of buildings-career. 6. Do as I call them multiobjects. These are the objects on the map that will be drawn by several instancing objects. 7. Implement a window interface object that can be dragged and dropped. Including the second screen, respectively, to implement support for the second screen. 8. And finally to finish the creation of new cities with strata and the first economic ties. But after reading an interesting article https://gamedev.ru/industry/articles/Godot_making_game threw a number of tasks and the list turned out: 1. Screw the optimization of the terrain, i.e. return it to the previous level. 2. Implement the creation of a settings file and its saving. 3. Loading textures depending on quality settings. 4. Tie different mines, and implement a new type of buildings-career. 5. And finally to finish the creation of new cities with strata and the first economic ties. On the project as before continued to work at least 12 hours a day. But one day I forgot the flash drive at work with the project and did not do it at home... And after this, so to speak forced rest, the next day was productive. Decided to practice this approach to development. In the end the performance like, has increased, probably affected tiredness. As a result, I took a two-week break from development. Week vacation and a week was given to all the various accumulated personal and work events. After such rest the first week left on performance of the list of small tasks: - fixed a glitch with trees that appeared in the ice; - made snow Christmas trees; - corrected models of deciduous trees; - corrected generation of mountains, reduced height of peaks, reduced snow caps; - fixed a bug with square banks. - fixed new textures of mountains. - completed mapping of surfaces (swamps, ice) now they are clearly displayed according to the grid of 4x4 sub-tiles; - fixed pathfinding algorithm considering new mountains. The first of the main list were made mines and quarries: And we have one small miracle of the world: Next made loading textures depending on the selected quality, and had the same Tinker with this seemingly easy task. In General, I implemented 4 out of 5 main points. Again deprived gameplay. Today, with the engine stopped. It remains only to correct the generation of rivers. And all next month only gameplay on the agenda. Try Thank you for your attention! 48. ## The Great Tribes Game project, a global strategy simulator of civilization development - The Great Tribes 49. ## Can only create games with game engines. It is perfectly normal to struggle on this because it's new to you. I really cannot get into massive amounts of detail without writing an entire guide, but you'll want to break everything down into smaller and manageable steps but with purpose. Regarding input binding this is a very useful feature to have! You'll want to think as logical as possible and what makes sense for your overall design. Just a small example for you. If I have a game that moves the player using WASD and I want to change W to T in order to move forward I can do something like this: (I'm using SFML as an example but you can use anything that gives you access to keycodes) For my playerObject I just have a very simple class: class playerObject { public: // X - Y Position int x = 0; int y = 0; // Initial Keys sf::Keyboard::Key moveForwardKey = sf::Keyboard::Key::W; sf::Keyboard::Key moveBackwardKey = sf::Keyboard::Key::S; sf::Keyboard::Key moveLeftKey = sf::Keyboard::Key::A; sf::Keyboard::Key moveRightKey = sf::Keyboard::Key::D; // Setup starting position void setup(int tX, int tY) { x = tX; y = tY; } // Move by passed amount ( Up, Down, Left, Right) void moveForward(int tAmount) { y -= tAmount; } void moveBackward(int tAmount) { y += tAmount; } void moveLeft(int tAmount) { x -= tAmount; } void moveRight(int tAmount) { x += tAmount; } // Bind New Keys void bindMoveForwardKey(sf::Keyboard::Key tKeyCode) { moveForwardKey = tKeyCode; } void bindMoveBackwardKey(sf::Keyboard::Key tKeyCode) { moveBackwardKey = tKeyCode; } void bindMoveLeftKey(sf::Keyboard::Key tKeyCode) { moveLeftKey = tKeyCode; } void bindMoveRightKey(sf::Keyboard::Key tKeyCode) { moveRightKey = tKeyCode; } }; In your logic step you'll have something like this: // Move Block if (sf::Keyboard::isKeyPressed(greenBoxPlayer->moveForwardKey)) { greenBoxPlayer->moveForward(5); } if (sf::Keyboard::isKeyPressed(greenBoxPlayer->moveBackwardKey)) { greenBoxPlayer->moveBackward(5); } if (sf::Keyboard::isKeyPressed(greenBoxPlayer->moveLeftKey)) { greenBoxPlayer->moveLeft(5); } if (sf::Keyboard::isKeyPressed(greenBoxPlayer->moveRightKey)) { greenBoxPlayer->moveRight(5); } Notice how we're not checking for W to move up? We're checking if the keycode assigned to moveForwardKey is pressed and doing the action required, it doesn't matter if that keycode returns as O or P, if it is pressed it will call our moveForward function. You'll have to program a class to handle input binding. I simply made a class that works on 3 steps. You press F1 then Step 1 starts which waits for your to hit the first key: myKeyBinder.setKeySelectionOne(tSelectedKey); , then toggles Step 2. Step 2 waits for you to select the new key: myKeyBinder.setKeySelectionTwo(tSelectedKey); then applies the change like this: myKeyBinder.changeKeyBind(*greenBoxPlayer); which looks for the first selection to see if it is a set key to begin with, then if it is found, it will just swap it with your second selection. I know this is a pretty rough example, you'll most likely want to make controller classes which work with your player objects, and so forth. (GIF) - Key Swapping in Action: 50. ## Are there any free game list / lobby / match making Services or APIs out there? I think you misunderstood my question. I'm well aware of hosting options. -- I'm specifically trying to AVOID hosting my own service. This is like a common game thing that every game does that eats up like almost no CPU or bandwidth, so I'd be quite surprised if there really aren't any matchmaking services out there... I know Steam has one in their API that they host for you, but I have no idea how to get into the steam platform -- especially with a hobby game that I don't plan to sell on Steam. XD I could imagine writing one that was an IRC channel... but that would be super sketchy and hacky... I guess I'll probably just throw up a quick ASP.NET SignalR repeater on the Azure free tier. 🙄 51. ## Are there any free game list / lobby / match making Services or APIs out there? Hosting for your own code, or a complete services ? The cost for a micro Linux node in AWS, Azure, etc. is pretty low, should be well below$10 a month, and if it's just for server lobby/listing will be a while before scale is an issue. AWS will give you an EC2 instance and some other things free for a year. There are many other similar providers. A shared webhosting server may also work, but be a bit more restrictive. For initial development testing, you might just run the server on your own home network, possibly even on your own PC, maybe in a VM. Use something like Duck DNS if you don't have a static IP. Not sure on any free services / libraries. Steam provides some stuff in Steamworks, but I guess that is not what you are looking for and no idea about the other platforms.

• ### Partners

GameDev.net is a member of the

• 0
• 0
• 0

• ### For Beginners

Public Group  ·  1 member

• ### GameDev Challenges

Open Group  ·  86 members

• ### Unreal Engine Users

Open Group  ·  4 members

• ### Optimization Strategy

Open Group  ·  1 member

• ### Publishing and Monetization

Open Group  ·  1 member

1. 1
Rutin
15
2. 2
3. 3
4. 4
5. 5