Tag Info

Hot answers tagged

44

If people want to bot, I don't think you can really stop them. You can of course implement many measures that make botting more or less of a pain. But you can only do so much before your codebase turns into a gigantic mess that's hell to maintain, error prone, and annoys legitimate users. Meanwhile the botters will always find a way to defeat your ...


43

I think you will understand their purpose better with a sample. By reading the comments you will understand how VAOs are used. // BEGIN INITIALIZATION // Define some vertex data struct Vertex { GLfloat position[3]; GLfloat texcoord[2]; }; Vertex vertexdata[NUM_VERTS] = { ... }; GLubyte indexdata[NUM_INDICES] = { 0, 1, 2, ... }; // Create and bind a ...


24

The best and only effective defense against bots is to design your game in a way that players don't feel the need to automatize in the first place. When your players automatize simple tasks which do not actually require skill, it is a sign that your user interface is lacking and they are substituting an UI feature they are missing. Does your game include ...


22

Don't make your game so vulnerable to johnny-on-the-spot effort First, make sure that players who only play your game for twenty minutes or an hour a day in a single sitting aren't at a huge disadvantage to players who leave it open at work and play 16 hours a day. This may require a change in your game mechanics - for instance a move allotment that fills ...


18

Language: C was predominant, but C++ was around and used. Dev tools: Development environments included those from Borland and Watcom (almost unheard of today) among others. Both Borland and Watcom had their own compilers and their own IDEs. Borland was by far the most popular in general, though Watcom had a reputation for producing faster compiled ...


18

You can absolutely use the GPU to render volumetric data. Since you want to evaluate a set of functions per pixel on the screen, a simple approach is to render a full-screen triangle. This is just a single triangle that covers the entire screen (actually, it covers more than the screen, since the screen isn't triangular, but the parts off-screen are ...


13

Here is a decent writeup about VBOs. Performance Here is a good overview of the calling semantics. Here here is another good overview of performance issues; in it we see that VBOs are more performant than arrays. The reason we prefer VBOs is that the data is loaded onto the card, and so you don't have to transfer it every frame. Depending on the type of ...


13

You can't stop them. But you can make their lifes miserable, as they have to spend lots of time writing their bots, and updating them. You have to use whatever you have to verify if user is valid. Check for request headers, and reject requests with invalid values. Either set custom headeror check for existing like user-agent. Sure it's easy to overcome, ...


12

In most cases these problems would fall into the category of "undefined behavior" (not in the C++ sense, but in a more broad understanding). What you'd be doing is essentially circumventing the abstraction provided by MonoGame (as an example, this of course applies to basically any such higher-level API). In doing so, you can cause class invariant ...


11

We have a similar situtation in our project, and we solved the problem by saving components (not functions) to LUA metatables. Basically, when we are creating an entity (or game object as we call them) on LUA side, code looks something like: function createShip() ... self.transform = registerToComponent("transform") self.sprite = ...


10

A good framework - or actually a toolset - is Unity3D. It's somewhat less flexible than "engines" that are focused only on rendering, but then it can save you enormous amounts of time by taking care of a lot of common tasks. You don't have to worry about render, physics, sound, resource importing, terrain engine (if you need one), it has passable GUI system. ...


10

Java is the default language to develop on Android, although you can use NDK (native C) for performance issues on specific parts. But basically, Java + OpenGL is fast enough for most 2D games. One of the best (in my opinion) development environments for Java/Android is Eclipse : you can download plugins for Android from the official website. You have ...


10

From the looks of it now each glSet has to include glBind(something) inside of it Not exactly. It's the other way around, as described several paragraphs below. Even if it were true, remember that GL commands from the client app to the GL server (aka driver) have a lot of dispatch overhead compared to a regular function call. Even if we assume that the ...


8

I'm not a fan of the least-common denominator approach. If you do that, you may end up with crippled features and poor performance. Instead, what I've done in the past, is to provide slightly higher level functionality in a library. That library is (mostly) API agnostic and can be used anywhere, but the implementation of the library is completely different ...


8

In general, distinguishing between bots and humans fully automatically is hard, some form of human-assisted decision process works best. What I would do: define some heuristics that hint the user is probably a bot - doing a lot of actions, doing stuff 24/7, ... Then if these heuristics get over a certain threshold, do an invasive check. You can manually ...


8

Embrace the botter. You've built a restful API, perfect for a coder to experiment with automation of your game. Design your gameplay so that the bot doesn't gain an advantage over a human player due to being automated - eliminate the advantages of speed of execution etc that a machine has; design your game so the bot provides the same revenue as a human ...


7

You could try setting up your own server running one of the open-sourced MMO codebases. PlaneShift is one such game, and WorldForge has (last time I looked) several games with simpler rulesets. Ryzom is a formerly closed-source MMO that released both their code and their assets as open source. Setting up your own server from these codebases will probably ...


7

I personally would not bother targeting anything below Windows XP. Writing something that works on XP/Vista/7 will get 99% of people on Windows and allow you to use modern technologies. Direct3D is definitely an option, and so is DirectX. Another option is OpenGL. I would personally recommend DirectX 9. There are a lot of great resources and tools that ...


7

All I can say is take a look at Ogre3D. It's written in C++, Open source (MIT License now) and runs on every major platform out of the box. It abstracts out the rendering api and can switch from using DirectX to OpenGL with just a couple of settings. However, I do not know enough about the differences between feature sets of DirectX and OpenGL to say that ...


6

The Android developer site doesn't make it clear anymore that the SDK uses the Java language, but that's the official language. Compiled languages can be used through the Native Development Kit, allowing for languages like C or C++ to be used; however, this is for augmenting Java code rather than replacing it. The supported IDE is Eclipse, and Google ...


6

I'm not sure about OpenGL but DirectX allows you to over write the default left-handedness therefore it wouldn't matter. As you've said, it's "nothing but" a convention, and at least DirectX allows you to work with both. Conventions do not matter by themselves, the only problem is that you need to be consistent with your choice. Mixing two such systems leads ...


6

Ray tracing and other techniques are commonly done with Compute Shaders, which Direct3D has supported since the release of D3D11 and OpenGL has supported since 4.3 (and longer via the use of OpenCL and some contortions).


5

This is aimed at the path of Counter Strike more than Second Life, but the game Cube 2 is a fully open source FPS which has been used in lots of research projects that need a fully modifiable multiplayer game. This is the one paper I know of that uses it for its ease to mod. For a more MMO type game, you could always try finding private servers of popular ...


5

As Thomas McDonald noted, while your (one) API key is bound to a domain, your requests do actually not need to be made from there. So, no proxy service is necessary. Since I already do have a blog, I registered an API with that site, and now I can happily consume the API without resorting to scraping.


5

WoW does have an external API with the Armory. It is read only through. Unless you access the pages with a bad browsers, it returns a clear xml structure. According to various blue forums posts, automatic querying of those pages is okay, unless too many requests are sent. The Glider Lawsuit was about a bot that linked to the original game client in memory. ...


5

Similar to how Mono can compile C# to various platforms, why isn't there an API that conforms to DirectX's specifications but can produce binaries for all platforms? First, I assume you mean something like an implementation of D3D that can be compiled on all platforms, since producing binaries that run on all platforms is not the domain of the ...


5

It sounds very much like you want to use a GPU compute shader, or utilize a "Shader Storage Buffer" object to help augment the pipeline to fit your needs. Mathematicians, scientists, and other people who look to the GPU for computation on things that don't exactly translate into standard graphics use this kind of thing. Although the contemporary graphics ...


4

The problem is more complex than simply exchanging out EGA for VGA. In fact, the VGA interface is what grew out of the EGA interface, which grew out of the CGA interface, which grew out of the MDA interface, which is why you see the interrupt call schemas as so similar. Basically the idea was "here's interrupt 0x10... and a few simple functions for setting ...


4

To give proper advice we need to take a step back. 1) What are your goals. 2) What is your experience level. If your answer to #1 is "I just want to make an RPG/tell a story/bring my characters to life" and #2 is "little to none", then I recommend you read this thread: Recommended RPG game that can be used to learn game Modding? There's no reason to ...


4

One thing I would like to clear you up on - don't expect to find one library that does all that. Or even some of it. Robust, sturdy libraries exist for large things (SDL for 2D graphics, OGRE3D and Irrlicht for 3D, FMOD for sound, etc), but don't expect to find a well documented RPG engine. Also, there is going to be little difference if you choose DX over ...



Only top voted, non community-wiki answers of a minimum length are eligible