Tag Info

Hot answers tagged

35

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 ...


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 ...


12

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 ...


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

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

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. ...


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 ...


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

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

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 ...


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 ...


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

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

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 ...


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

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 ...


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

The fundamental problem here is that you've exposed the component system to the API. You need to encapsulate that stuff behind your interface.


4

Planet Wars / Galcon Clone AI Ran as a Google AI Challenge Planet Wars is a strategy game set in outer space. The objective is to take over all the planets on the map, or altenatively eliminate all of your opponents ships. Players start with 1-3 home planets and send off ships to conquer other planets around them. The numbers on each planet ...


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 ...


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

As a completion to Sean's post, since you mentioned Doom: there is a nice blog by Fabien Sanglard, who made a review on the part of code used for making Doom (the one from 1993). The review is here: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php PS: The blog has a lot of Doom/Quake-related code reviews, and it's a nice read for a game ...


3

Brood Wars API is a dll injection type interface which natively is Server/Server design but also has extensions to support Client/Server architectures for additional language support. Extensions support Java, Python, C#, Php, etc. The Brood War Application Programming Interface (BWAPI) is a free and open source C++ framework for creating AI modules ...


3

From some old (2006/2007) presentation on MSN Games... RAPID! Integration Test Tool Allows developers to test that the MSN API is correctly implemented It does not: Verify client requirements Doesn't test the game play Links to the main site is here MSN Games and the developer resources are here To get access to the developer libs you'll need to ...


3

Everquest had an instant messaging protocol that allowed communication with in-game players from outside the game. I am unsure if the protocol was well documented or supported by any third party clients.


3

Here are some quotes from the END USER ACCESS AND LICENSE AGREEMENT (Part 2-B) you probably signed as it is required in order to play the game. Except to the extent permitted under applicable law, you may not decompile, disassemble, translate, derive source code from, create derivative works based on, or reverse engineer the Software by any means ...


3

The standard way of doing this is to pick a class that you know should exist and then see whether it does: try{ Class.forName("tv.ouya.console.api.OuyaFacade"); } catch (ClassNotFoundException e){ Log.e(TAG, "No ODK Found!"); }


3

It doesn't matter in the sense that the handedness is arbitrary; either way works fine so they just picked one. They only "force" their way on the user in the sense that they had to pick something so they went with that way. However it does matter in that you need to be consistent about what the numbers mean; it doesn't matter what decision was made ...


3

I agree with Josh's answer fully but I'd like to add some thoughts. The purpose of MonoGame is to bring the XNA API to many platforms. If you are using OpenTK directly you are restricting yourself to only those platforms that support it. Therefore, you could loose one of the main benefits of using the abstraction. If you find yourself wanting to do ...



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