Flight Sim Company Embeds Malware to Steal Pirates' Passwords |
- Flight Sim Company Embeds Malware to Steal Pirates' Passwords
- The Poor Man's Netcode
- Spine is Amazing for 2D Game Animations! Here's a look at how I use it.
- Game development streams.
- How Thief's Stealth System Almost Didn't Work
- Pixel (game library) 0.7 released, reached 1k stars & looking for contributors!
- Pixel Art, Screen Resolution, and Zooming
- How I approach AI design in my action RPG
- Scaling problem with unity for mobile, image quality lowered. Developer vs Artist argument
- Do use ticks or not to use ticks?
- So I wanna implement Machine Learning AI in a simple tanks game
- Aura - Volumetric Lighting for Unity - Update : Now fully works on all Unity version > 2017.2 (link in comments)
- For adaptive AI, what are the current algorithms that are being used rather than genetic algorithms?
- Use psychological principles to make your games more addictive
- is 3d modeling easier than pixel art?
- Where to learn Anime style Animation
- Rotating 2D images (programming techniques)
- Visibillity problem for Indie Games: Reallity in 2018
- Top Mobile Continuous Integration (CI/CD) Tools In 2018
- Recommendations for project management
- Flash Games Aren’t Dead, They’re Just In A Coma
- Can anyone recommend me a good networking tutorial?
- Complaint against mobile app. Do they have any ground to have us removed?
Flight Sim Company Embeds Malware to Steal Pirates' Passwords Posted: 20 Feb 2018 03:33 AM PST |
Posted: 20 Feb 2018 06:14 AM PST The more you know about a given topic, the more you realize that no one knows anything. For some reason (why God, why?) my topic of choice is game development. Everyone in that field agrees: don't add networked multiplayer to an existing game, you drunken clown. Well, I did it anyway because I hate myself. Somehow it turned out great. None of us know anything. Better formatted version of this article available here Problem #1: assetsMy first question was: how do I tell a client to use such-and-such mesh to render an object? Serialize the whole mesh? Nah, they already have it on disk. Send its filename? Nah, that's inefficient and insecure. Okay, just a string identifier then? Fortunately, before I had time to implement any of my own terrible ideas, I watched a talk from Mike Acton where he mentions the danger of "lazy decision-making". One of his points was: strings let you lazily ignore decisions until runtime, when it's too late to fix. If I rename a texture, I don't want to get a bug report from a player with a screenshot like this: https://i.imgur.com/TppRYdOl.jpg I had never thought about how powerful and complex strings are. Half the field of computer science deals with strings and what they can do. They usually require a heap allocation, or something even more complex like ropes and interning. I usually don't bother to limit their length, so a single string expands the possibility space to infinity, destroying whatever limited ability I had to predict runtime behavior. And here I am using these complex beasts to identify objects. Heck, I've even used strings to access object properties. What madness! Long story short, I cultivated a firm conviction to avoid strings where possible. I wrote a pre-processor that outputs header files like this at build time: So I can reference meshes like this:
If I rename a mesh, the compiler makes it my problem instead of some poor player's problem. That's good! The bad news is, I still have to interact with the file system, which requires the use of strings. The good news is the pre-processor can save the day. With all this in place, I can easily send assets across the network. They're just numbers! I can even verify them. Problem #2: object referencesMy next question was: how do I tell a client to please move/delete/frobnicate "that one object from before, you know the one". Once again, I was lucky enough to hear from smart people before I could shoot myself in the foot. From the start, I knew I needed a bunch of lists of different kinds of objects, like this: Let's say I want to reference the first object in the Avatar list, even without networking, just on our local machine. My first idea is to just use a pointer: This introduces a ton of non-obvious problems. First, I'm compiling for a 64 bit architecture, which means that pointer takes up 8 whole bytes of memory, even though most of it is probably zeroes. And memory is the number one performance bottleneck in games. Second, if I add enough objects to the array, it will get reallocated to a different place in memory, and the pointer will point to garbage. Okay, fine. I'll use an ID instead. Second problem: if I remove that Avatar from the list, some other Avatar will get moved into its place without me knowing. The program will continue, blissfully and silently screwing things up, until some player sends a bug report that the game is "acting weird". I much prefer the program to explode instantly so I at least get a crash dump with a line number. Okay, fine. Instead of actually removing the avatar, I'll put a revision number on it: Instead of actually deleting the avatar, I'll mark it dead and increment the revision number. Now anything trying to access it will give a null pointer exception. And serializing a reference across the network is just a matter of sending two easily verifiable numbers. Problem #3: delta compressionIf I had to cut this article down to one line, it would just be a link to Glenn Fiedler's blog. Which by the way is here: gafferongames.com As I set out to implement my own version of Glenn's netcode, I read this article, which details one of the biggest challenges of multiplayer games. Namely, if you just blast the entire world state across the network 60 times a second, you could gobble up 17 mbps of bandwidth. Per client. Delta compression is one of the best ways to cut down bandwidth usage. If a client already knows where an object is, and it hasn't moved, then I don't need to send its position again. This can be tricky to get right. https://i.imgur.com/e31avw2.gif The first part is the trickiest: does the client really know where the object is? Just because I sent the position doesn't mean the client actually received it. The client might send an acknowledgement back that says "hey I received packet #218, but that was 0.5 seconds ago and I haven't gotten anything since." So to send a new packet to that client, I have to remember what the world looked like when I sent out packet #218, and delta compress the new packet against that. Another client might have received everything up to packet #224, so I can delta compress the new packet differently for them. Point is, we need to store a whole bunch of separate copies of the entire world. Someone on Reddit asked "isn't that a huge memory hog"? No, it is not. Actually I store 255 world copies in memory. All in a single giant array. Not only that, but each copy has enough room for the maximum number of objects (2048) even if only 2 objects are active. If you store an object's state as a position and orientation, that's 7 floats. 3 for XYZ coordinates and 4 for a quaternion. Each float takes 4 bytes. My game supports up to 2048 objects. 7 floats * 4 bytes * 2048 objects * 255 copies = ... 14 MB. That's like, half of one texture these days. I can see myself writing this system five years ago in C#. I would start off immediately worried about memory usage, just like that Redditor, without stopping to think about the actual data involved. I would write some unnecessary, crazy fancy, bug-ridden compression system. Taking a second to stop and think about actual data like this is called Data-Oriented Design. When I talk to people about DOD, many immediately say, "Woah, that's really low-level. I guess you want to wring out every last bit of performance. I don't have time for that. Anyway, my code runs fine." Let's break down the assumptions in this statement. Assumption 1: "That's really low-level". Look, I multiplied four numbers together. It's not rocket science. Assumption 2: "You sacrifice readability and simplicity for performance." Let's picture two different solutions to this netcode problem. For clarity, let's pretend we only need 3 world copies, each containing up to 2 objects. Here's the solution I just described. Everything is statically allocated in the .bss segment. It never moves around. Everything is the same size. No pointers at all. https://i.imgur.com/4tFFSN7.png Here's the idiomatic C# solution. Everything is scattered randomly throughout the heap. Things can get reallocated or moved right in the middle of a frame. The array is jagged. 64-bit pointers all over the place. https://i.imgur.com/lRVCA0q.png Which is simpler? The second diagram is actually far from exhaustive. C#-land is a lot more complex in reality. Check the comments and you'll probably find someone correcting me about how C# actually works. But that's my point. With my solution, I can easily construct a "good enough" mental model to understand what's actually happening on the machine. I've barely scratched the surface with the C# solution. I have no idea how it will behave at runtime. Assumption 3: "Performance is the only reason you would code like this." To me, performance is a nice side benefit of data-oriented design. The main benefit is clarity of thought. Five years ago, when I sat down to solve a problem, my first thought was not about the problem itself, but how to shoehorn it into classes and interfaces. I witnessed this analysis paralysis first-hand at a game jam recently. My friend got stuck designing a grid for a 2048-like game. He couldn't figure out if each number was an object, or if each grid cell was an object, or both. I said, "the grid is an array of numbers. Each operation is a function that mutates the grid." Suddenly everything became crystal clear to him. Assumption 4: "My code runs fine". Again, performance is not the main concern, but it's important. The whole world switched from Firefox to Chrome because of it. Try this experiment: open up calc.exe. Now copy a 100 MB file from one folder to another. https://i.imgur.com/G6xbn52.png I don't know what calc.exe is doing during that 300ms eternity, but you can draw your own conclusions from my two minutes of research: calc.exe actually launches a process called Calculator.exe, and one of the command line arguments is called "-ServerName". Does calc.exe "run fine"? Did throwing a server in simplify things at all, or is it just slower and more complex? I don't want to get side-tracked. The point is, I want to think about the actual problem and the data involved, not about classes and interfaces. Most of the arguments against this mindset amount to "it's different than what I know". Problem #4: lagI now hand-wave us through to the part of the story where the netcode is somewhat operational. Right off the bat I ran into problems dealing with network lag. Games need to respond to players immediately, even if it takes 150ms to get a packet from the server. Projectiles were particularly useless under laggy network conditions. They were impossible to aim. I decided to re-use those 14 MB of world copies. When the server receives a command to fire a projectile, it steps the world back 150ms to the way the world appeared to the player when they hit the fire button. Then it simulates the projectile and steps the world forward until it's up to date with the present. That's where it creates the projectile. I ended up having the client create a fake projectile immediately, then as soon as it hears back from the server that the projectile was created, it deletes the fake and replaces it with the real thing. If all goes well, they should be in the same place due to the server's timey-wimey magic. Here it is in action. The fake projectile appears immediately but goes right through the wall. The server receives the message and fast-forwards the projectile straight to the part where it hits the wall. 150ms later the client gets the packet and sees the impact particle effect. https://i.imgur.com/5jbF8PA.gif The problem with netcode is, each mechanic requires a different approach to lag compensation. For example, my game has an "active armor" ability. If players react quick enough, they can reflect damage back at enemies. https://i.imgur.com/vfbs0J9.gif This breaks down in high lag scenarios. By the time the player sees the projectile hitting their character, the server has already registered the hit 100ms ago. The packet just hasn't made it to the client yet. This means you have to anticipate incoming damage and react long before it hits. Notice in the gif above how early I had to hit the button. To correct this, the server implements something I call "damage buffering". Instead of applying damage instantly, the server puts the damage into a buffer for 100ms, or whatever the round-trip time is to the client. At the end of that time, it either applies the damage, or if the player reacted, reflects it back. Here it is in action. You can see the 200ms delay between the projectile hitting me and the damage actually being applied. https://i.imgur.com/JQ3WgIt.gif Here's another example. In my game, players can launch themselves at enemies. Enemies die instantly to perfect shots, but they deflect glancing blows and send you flying like this: https://i.imgur.com/oTh4dFj.gif Which direction should the player bounce? The client has to simulate the bounce before the server knows about it. The server and client need to agree which direction to bounce or they'll get out of sync, and they have no time to communicate beforehand. At first I tried quantizing the collision vector so that there were only six possible directions. This made it more likely that the client and server would choose the same direction, but it didn't guarantee anything. Finally I implemented another buffer system. Both client and server, when they detect a hit, enter a "buffer" state where the player sits and waits for the remote host to confirm the hit. To minimize jankiness, the server always defers to the client as to which direction to bounce. If the client never acknowledges the hit, the server acts like nothing happened and continues the player on their original course, fast-forwarding them to make up for the time they sat still waiting for confirmation. Problem #5: jitterMy server sends out packets 60 times per second. What about players whose computers run faster than that? They'll see jittery animation. Interpolation is the industry-standard solution. Instead of immediately applying position data received from the server, you buffer it a little bit, then you blend smoothly between whatever data that you have. In my previous attempt at networked multiplayer, I tried to have each object keep track of its position data and smooth itself out. I ended up getting confused and it never worked well. This time, since I could already easily store the entire world state in a struct, I was able to write just two functions to make it work. One function takes two world states and blends them together. Another function takes a world state and applies it to the game. How big should the buffer delay be? I originally used a constant until I watched a video from the Overwatch devs where they mention adaptive interpolation delay. The buffer delay should smooth out not only the framerate from the server, but also any variance in packet delivery time. This was an easy win. Clients start out with a short interpolation delay, and any time they're missing a packet to interpolate toward, they increase their "lag score". Once it crosses a certain threshold, they tell the server to switch them to a higher interpolation delay. Of course, automated systems like this often act against the user's wishes, so it's important to add switches and knobs to the algorithm! https://i.imgur.com/XPrJP0I.gif Problem #6: joining servers mid-matchWait, I already have a way to serialize the entire game state. What's the hold up? Turns out, it takes more than one packet to serialize a fresh game state from scratch. And each packet may take multiple attempts to make it to the client. It may take a few hundred milliseconds to get the full state, and as we've seen already, that's an eternity. If the game is already in progress, that's enough time to send 20 packets' worth of new messages, which the client is not ready to process because it hasn't loaded yet. The solution is—you guessed it—another buffer. I changed the messaging system to support two separate streams of messages in the same packet. The first stream contains the map data, which is processed as soon as it comes in. The second stream is just the usual fire-hose of game messages that come in while the client is loading. The client buffers these messages until it's done loading, then processes them all until it's caught up. Problem #7: cross-cutting concernsThis next part may be the most controversial. Remember that bit of gamedev wisdom from the beginning? "don't add networked multiplayer to an existing game"? Well, most of the netcode in this game is literally tacked on. It lives in its own 5000-line source file. It reaches into the game, pokes stuff into memory, and the game renders it. Just listen a second before stoning me. Is it better to group all network code in one place, or spread it out inside each game object? I think both approaches have advantages and disadvantages. In fact, I use both approaches in different parts of the game, for various reasons human and technical. But some design paradigms (cough* OOP)* leave no room for you to make this decision. Of course you put the netcode inside the object! Its data is private, so you'll have to write an interface to access it anyway. Might as well put all the smarts in there too. ConclusionI'm not saying you should write netcode like I do; only that this approach has worked for me so far. Read the code and judge for yourself. There is an objectively optimal approach for each use case, although people may disagree on which one it is. You should be free to choose based on actual constraints rather than arbitrary ones set forth by some paradigm. Thanks for reading. DECEIVER is launching on Kickstarter soon. Sign up to play the demo here! [link] [comments] |
Spine is Amazing for 2D Game Animations! Here's a look at how I use it. Posted: 20 Feb 2018 02:59 AM PST |
Posted: 20 Feb 2018 08:23 AM PST I enjoy tuning in to game development streams, and I would like to share some of my favorite developers with you. I also want to hear from you! If your favorite streamers is missing, please share what they are working on, what technology they are using, etc.
CodeNJoy https://www.twitch.tv/codenjoy
FrankiePixelShow https://www.twitch.tv/frankiepixelshow
JessicaMak https://www.twitch.tv/jessicamak
WilliamChyr https://www.twitch.tv/williamchyr
Naysayer88 https://www.twitch.tv/naysayer88 [link] [comments] |
How Thief's Stealth System Almost Didn't Work Posted: 20 Feb 2018 05:08 AM PST |
Pixel (game library) 0.7 released, reached 1k stars & looking for contributors! Posted: 20 Feb 2018 08:01 AM PST |
Pixel Art, Screen Resolution, and Zooming Posted: 20 Feb 2018 06:32 AM PST |
How I approach AI design in my action RPG Posted: 20 Feb 2018 04:43 AM PST |
Scaling problem with unity for mobile, image quality lowered. Developer vs Artist argument Posted: 20 Feb 2018 11:16 AM PST I have got a artist to draw a character and animate it. They sent me the frames in .png and it looks perfectly crisp quality (its 948x1191 pixel size) I give to developer to create into character in the game, he programs it etc. However when the the character size is scaled down in unity the quality drops and you can see the edges are pixelated.. the developer said it is the artist fault. I ask artist and they say its the developers fault. I then resize the original image size to the actual size it will be in the game and put into the game and see the quality is significantly better than scaling it from large to small on unity. I have to tell developer to replace the images with the new resized images now but I am sure there is a way so that I don't have to go through the trouble of resizing it manually for each image for good quality in unity. I remember reading it was best to get design art in highest scale and then downscale in unity and quality wouldn't be lost... but developer doesn't seem to understand/believe me. Any help? Much appreciate any responses. [link] [comments] |
Do use ticks or not to use ticks? Posted: 20 Feb 2018 11:11 AM PST I'm not sure if I understand the concepts completely but to me using a tick based system instead of a epoch timer instead seems worse. With tick based system you have to make sure that every tick passes at the correct time or it will lag behind. This would be an issue as stuttering happens with all applications. An epoch based time system would not need this at its just a integer counting up in seconds. If its ever out of sync you can retrieve the operating systems echo time. The problem would be for things that has to happen under a second(say every 200ms) you can have a separate timer for this which wouldn't require much Cpu-time to handle. So why do games still use ticks rather than if specifiedTime = time.now then //actions Is there something I'm missing? Edit: meant epoch time. [link] [comments] |
So I wanna implement Machine Learning AI in a simple tanks game Posted: 20 Feb 2018 08:02 AM PST Hi, The turn-based game is a field of 8*8=64 cells, each has 1 of 4 states: empty/wall/your tank/enemy tank. Each turn tanks can move one cell away or shoot in 1 of 4 directions. Shots are instant and cover all cells in certain direction (and can destroy 1 wall cell). The goal is to destroy your opponent. Game & it's API is already created. I want to create a learning AI, ideally - reinforcement based. I.e. create a neural network that plays sessions with itself and becomes stronger. Each turn it receives an in-game situation (128 bits of input, description of cells' states) and decides to do one of the actions. At the end it receives score from fitness function, based on: a.) whether it destroyed opponent b.) whether it's own tank was destroyed c.) how many ticks has passed from the start of the session, the less, the better. Task seems to be relatively simple, but I'm ML noob - where & what should I look for? [link] [comments] |
Posted: 20 Feb 2018 02:28 AM PST |
For adaptive AI, what are the current algorithms that are being used rather than genetic algorithms? Posted: 20 Feb 2018 12:31 AM PST I am currently composing an Essay on the comparison of current algorithms vs genetic algorithms in developing an adaptive AI(ex: see the MarI/O machine learning video or the AI director of L4D2 in which it dynamically changes the difficulty). I want to know what these current algorithms are that program the AI in games such as L4D2 and Alien Isolation. Are genetic algorithms being more increasingly used in today's games or is it an other more established algorithm? [link] [comments] |
Use psychological principles to make your games more addictive Posted: 20 Feb 2018 07:47 AM PST |
is 3d modeling easier than pixel art? Posted: 19 Feb 2018 11:55 PM PST I am planning out a top-down or isometric RPG. In terms of aesthetics, I actually quite like pixel art. However, in terms of making animations easily, I get the impression that 3d modeling may actually be easier.
Am I wrong about this? is there a easier way to do pixel art? [link] [comments] |
Where to learn Anime style Animation Posted: 20 Feb 2018 02:03 AM PST I'm starting out as a game designer, and after some light research, I understand that for a solo beginner, trying to animate "Anime" in video game cutscenes is way out of my league. But after playing Persona 5, and watching Ghost in the Shell and Attack on Titan, I've come to love Production I.G. animation style and really want to start learning where to begin. So I came here with no where else I could think of asking, but does anyone on this sub know what would be the best software to use, and where can I learn? Or does anyone know what subreddit I should be asking instead? Thanks! [link] [comments] |
Rotating 2D images (programming techniques) Posted: 20 Feb 2018 05:42 AM PST Disclaimer: I'm a huge noob to this scene. Hopefully I'm posting this in the right sub. Does anyone have any resources that would help me with rotating 2D images? Case in point: in my really crappy attempt for a 2D car game, I want to be able to rotate my car, say by 45 degrees to the right. For arguments sake, the original car shape is a 10-by-10 pixel square. By rotating 45 degrees, the new shape in terms of pixels does not neatly fit into any set of pixels. It'll either be "jagged" or I'll need to fill in a bunch of additional pixels - which I'm assuming will make the car look pretty odd. Quite annoying indeed! Is there any resource (book, video, article) that touches on these issues and lists common techniques used by game programmers to solve them aesthetically? Thanks! [link] [comments] |
Visibillity problem for Indie Games: Reallity in 2018 Posted: 19 Feb 2018 09:18 PM PST Hi colleagues. We are an indie studio from Uruguay, and about to finish our first PC release. The name of the game is irrelevant as I don't want to use this thread to promote the game, I want to expose a problem we all have as game developers: visibility. First of all, I apologize for my imperfect english, I do what I can, my native language is Spanish. Much have been written about this visibility issue, but I think it got problematic in 2017 and getting even worser in 2018. First of all, our game is not finished, it's in beta stage. Which doesn't means is incomplete, it means it has only 5 levels. But more or less, they are finished. Most of the game idea is there. There are yes new features to add, some cool visual effects, etc. But the feedback we are getting is good even as we have it now, we got it played in a game summit in our country last year, when it was even an alpha and we saw what we expected to see: the game catched player's interest. They couldn't stop playing it. It didn't have many graphical brilliance back then, and still doesn't have it today, we are making an indie/retro game, we don't want gorgeous visuals either. It's a top-down/rpg/maze game, by the way. When we handed the links to some youtubers we got an excellent feedback/commentary. Now, the problem is not when we do this to reach for reviewers, the problem is having to do it because if you don't nobody, and I can't stress enough the word NOBODY will get to you. Of course, marketing is necessary if you have something to sell, but the reality of the indie scene today it's like if you should to go door after door with a laptop begging for people to play your game. It was not like this in 2010, 2012. The game it's right now uploaded in 3 of the main indie directories, it was first uploaded on 1/30 and just yesterday 2/18 the new v1.1. Here are the stats:
You may say, "hey you are about to get into the first pages in 3rd. directory and doing well tehre". Well, our case with them is funny. 2 hours ago, the game was at position 90, with a total of 96 visits today. Just now, with 5 more visits (101), we are not in a better position, but with a drop to 151th. Just think how many games got added in that time-span. Just 2 hours. What to expect tomorrow? There were days when we didn't promote the 3rd. directory link at all anywhere, and drop to position 2500 easily. An issue with their algorithm? I don't know, but it's not helping at discovering our little game, for sure. It's mostly the quantity of games that have been probably added in that just short of time that can make you drop like that. Talk about 2nd. directory. There are 68k uploaded games there just now. The first 3 games that appear there, have been added, at the same time !! 3 at the same time ! This is 41 minutes ago at the time of writing this post. The 4th one was added 1 hour ago. And so on, I don't even want to look further to not get more deppressed. So this makes an average of 1 game added like every 15 minutes, and I am sure I am being generous here, it's probablye like 2 or 3 every 15 minutes... 2nd. directory, this is the perfect example of what to expect if you don't promote your link. We are not linking to its game page in all of our nearly daily fb posts in groups, twitter. This is what 2nd. directory is doing for our little game: 10 total views in 18 day. And this goes beyond the "is the game good or not" topic, this shows the raw fact that nobody saw the game as so many titles have been added that I bet the initial 7 views we got it the first day, and that's it. In fact, it was like that: 8 views during the first couple of days, and 3 additional views in 17 days! This is the reality with the "Game directories" that out there to support the indie scene. They give a **** on you, if you worked 3 or 5 years. It's the same. They won't move a finger to move your game to the top, not even a "random" featured that could last 1 hour. You say, is it fair putting garbage featured for 1 hour in the front page? I think it's fair because eventually a good game could get there and get what the developers deserve. Pushing everyone equally to page 50, even good ones, it's not a solution either... At the time of writing this post, we placed a post in 2nd. directory in the "announcments" forum, where others are also posting their game announcements. We got 3 views there in 1 entire hour. The others? 8 views in 9 hours, 17 views in 11 hours, etc. It's not us, it's a general problem. Tell me, on a release day. What teh **** these sites think you can you do with 17 views of your announcement in 9 hours ? What's the help they offer? What's the support they give to those that are actually giving them content to show? We post regularly on facebook and Twitter. We have not much followers, but certainly I know other devs with a third of the nearly 800 followers we have on twitter and 1050+ in our facebook page. We get like 3 retweets to 4 on a lucky day, and 4 to 6 likes. And let's call it a succesful day. Twitter impressions? Maybe an average of 400 to 600 per tweet. On lucky days we got to 2k impressions if we get retweeted by influencers. (Do you want me to start talking how influencers, people in twitter with over 200k to 300k followers simply ignore you as if you where the last pile of **** in the street?). No matter if you approach them in a professional way, a funny way, an informal way. They simply don't reply, they are not even asking for a gameplay video to see what they could be helping promoting. And some others that reply, ask you for money to do it. This is the help you will get from those that "support the indie game scene". A stab in the back. We are paying some advertisement on facebook, notthing big, we don't have much money either. We get somehow like 10k impressions, in some cases something like 70 likes to any post, in some other cases promoting to asian countries, we get like 22k impressions and 800 likes. Do you think these click farms (yes, they exist), in indonesia, india and egypt did make ANY difference when being shown to people elsewhere, real people? If you see a post that has 800 to 1k likes, I am sure you should think that it's liked that much because of reason. I would think that, to be honest. And will catch my eye. Nothing happened, we didn't get 800 fb page likes because of that, not even 10. In those posts the directory links have been added. You see the numbers exposed on top. Where's the correlation between the impressions (10k impressions is not a low number) and so many low visits/downloads? Something is wrong. Yes, finally we realize not to include those 3 countries because of the click farms. But it's not getting any better now, with "quality" impressions, quality countries and quality likes. A the time of writing this post, we have a running ad in fb, with 400 impressions and 8 likes. This advertisement started today, it includes a video with gameplay/footage, with good quality, good fps rate. Nothing helps. So, directories doesn't help, twitter doesn't help, fb doesn't help , posting on fb groups doesn't help. You see other posts from other colleagues, and it's mostly the same, 10 likes here and there, some comments here and there. I don't see a sustainable business that could be make out of this, to be honest. And no matter how much we love making games, we can't do it if we can't eat properly, pay a rent and pay for electricity. The option of having a 2nd. income is not viable, I am going that route. Do you have an idea how many things changed since 2016 when I started with this? This is what happens when you do that "2nd. job", this is why some games take 3 to 5 years to complete, and the market changes drastically, specially IT. Now, the funny thing, we are not getting bad reviews/comments either, people telling the game is a pile of ****. All the contrary, those who actually see it post good things about it. Those who review it, say wonderful things about it. Hell! I am not bragging about the game, I am exposing a visibility problem, which is MORE SERIOUS than you initially think. Now, those saying good things do you think they are all of them friends of ours? Of course not. I don't have many friends. The problem is, you guessed it: the dreaded visibility issue. The media is not either being able anymore to discover games, you have to knock their doors. And most of the time they won't even reply back, not even having time to click at your link or read your game pitch. Or you get answers like "we are fully stacked for the week/month". Of course! With games being uploaded every 5 minutes everywhere, all of them desperate for a review how to not be!!! Talk about getting featured in those directories or stores. Good luck boy! It's not about "a good game gets noticed". It's not longer the case. Believe me,it's not. A good game is buried below the most possible **** ever you can do in a game engine in a week. Then they upload it, and call themselves game devs. It's just not true anymore that if your game is excellent you will have success, or get discovered. And even if you are the lucky winner, it's not fair that maybe 1 of 10 excellents games released in a month only 1 can get what it deserves. What about the other 9? Yes, it's a cruel world, I wasn't born yesterday. But this is ridiculous. I am saying all of this and at the same time I have to continue coding my game, as if none of this I am writing it's actually happening. And most fun of all : DO IT FOR THE PASSION OF DOING IT. "Because you have to do it because of that not because of the money". You know what, passion won't put food on your table, nor pay your electricity bill, but current money. What about dignity? What about spending 3 years on a game to sell 100 to 500 copies? So I am sure most of you would be thinking about the game we are doing, how good it is, or not, and again, the case is not exposing our game on this thread, if you want to see how good our game is or not, I will reply you privately with download link. The case here it's not if it's good, is that we are not beeing seen, we are invisible, as everybody else I spoke to. Every blog I read says the same, it exposes the visibility problem. I am seeing this happening for other developers, who post excellent gameplay footage on facebook and twitter, and unless they don't have 100k followers, they get 3 likes. This is the reality. 3 to 6 likes! Luckily someone encouraging you to go on, and that can't wait to play your game. Think of those 3 games uploaded at the same time today. They have their 15 minutes of glory just now, as we had when you browsed for 'new' releases. What about tomorrow? They will be in page 3 luckily. In a week they will vanish into nothingness. I actually told you that first time a streamer touched the game couldn't stop playing for 4 hours 30 min. non-stop, and I have the video. Similar to 2nd. one, same the third one who streamed it yesterday. The game is bad? Well, total strangers aren't saying that at all. We had it played at a game convention, all of what we received was good, besides feedback and stuff to add/improve, which we appreciate of course, since that's what happens when you show your game to public. And there's our own vision and instinct. I started with this game idea like over 1 year ago. I have had many issues in my personal life, two small kids and lot of other things to do for a living, so the development was delayed a lot, until June 2017 where the real Windows version started. The idea is good, the game is fun and addictive, it has tight controls, good mechanics and is difficult, enough to catch your attention for hours. So what to expect in 2 months, when the game hits Early Access in Steam? With these numbers I am showing you, what the **** to expect? 50 copies sold in a month? We "bought" the idea that could make it by doing an indie game, and sorry if I sound negative, but I am not sure if this true today, in 2018. I am far from sure. What about consoles? Do you think you can have them give you a dev. kit, as easy as that? It will be far from easy, it's not always just about how good your indie game is, as many developers think. All of us think our game is good, why are we doing it if not? it's about how much a publisher may think of you as an opportunity. Here in the game conference, I was approached by a publisher from Europe. He watched a guy playing the game, it got his interest because he didn't spoke with others showcasing their games. Do you think he asked me anything about the game? He asked me: "How many tweeter followers do you have ?". And I said "we have 300". A few talk here and there, he lended me his card and walked away. I wrote him an email, the guy never replied back. He was expecting maybe 10k. I am sorry guy, I didn't have that many and never would have. It is your job maybe getting US those 10k by actually doing your work. This lead us to the next big topic: Publishers. I don't think I have the time or energy to start writing about this. Do you want me to talk about questions like this guy made me or about the 40%, sometimes 50% comission they take for every game they sell on your behalf? The reality is not better in mobile, I think it's worse. People is used to "free" stuff, to a point that if you put your game on a mobile store, for as low as $3 or $5 it's like: "Are you kdding me? I want it for free". Luckily they will click in your ads and get you some cents, if they want. And when they get tired of the ads, they will uninstall it. The premium mode is no longer an option, and if you ask me, I hate games on mobile when I have to click on a video just to "advance" or to get a cool feature/power-up, otherwise I could NOT. It ruins the game experience. It's fraud, it's like playing with the player. It totally ruins the experience. Imagine you are playing a horror game, with dark music and ambience and then some funny latin/pop **** reggaeton comes up for 30 seconds? It ruins the game experience. Sorry I won't implement that on my mobile port, I value my product not to ruin it like this. So at this point, leading to the end of the development of our game, I don't know what to expect. The motivation is no longer what it was when we started it. We are two guys, I am the developer and game designer, and my team mate is the graphic designer. We work from our rooms, we do our best, I have 20+ years coding experience. Ask me if I have more energy to complete this game. Come on, ask me. I will do it, but for a matter of dignity. Would love to know your thoughts, experiences, numbers, whatever, so I don't feel so depressed about this. Or maybe I will feel worse, I couldn't care the less at this point. [link] [comments] |
Top Mobile Continuous Integration (CI/CD) Tools In 2018 Posted: 20 Feb 2018 07:38 AM PST |
Recommendations for project management Posted: 20 Feb 2018 07:26 AM PST Hello, I'm looking at some sort of solution to manage the project I am working on. There is currently 3 of us and soon will be 4, I am looking for something which would be useful to track and make deadlines so we can monitor our progress better. So far I have been doing it in my head, however as the project is moving on this isn't really the best way and I lose track of stuff. I could just do an excel sheet but I am assuming there is other better ways? [link] [comments] |
Flash Games Aren’t Dead, They’re Just In A Coma Posted: 20 Feb 2018 07:15 AM PST |
Can anyone recommend me a good networking tutorial? Posted: 20 Feb 2018 07:04 AM PST Hi, i am currently working on my mvp of my third person skill based brawler with rpg/moba elements. And while i have a basic multiplayer running, i noticed that i need to learn a lot of networking. So my question is, are there any good sources to learn networking for beginners? If it matters i am using UE4. Thanks in advance Feind [link] [comments] |
Complaint against mobile app. Do they have any ground to have us removed? Posted: 20 Feb 2018 06:43 AM PST Good morning! [link] [comments] |
You are subscribed to email updates from gamedev - game development, programming, design, writing, math, art, jams, postmortems, marketing. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment