OpenGL ES From the Ground Up, Part 6: Textures and Texture Mapping An alternative to creating materials in OpenGL ES to define the color of a polygon is to map a texture onto that polygon. This is a handy options that can give you good looking objects while saving a lot of processor cycles. Say you wanted to create a brick wall in a game. You could, of course, create a complex object with thousands of vertices to define the shape of the individual bricks and the recessed lines of mortar between the bricks. Or you could create a single square out of two triangles (four vertices) and map a picture of a brick wall onto the square. Turning Things On In order to use textures, we need to flip some switches in OpenGL to enable the features we need: The first function call switches on the ability to use two-dimensional images. The next call turns on blending. The last call specifies the blending function to use. Creating Textures Once you've enabled textures and blending, it's time to create our textures. Generating a Texture Name GLuint texture; The PVRTC Approach
Learn OpenGL, extensive tutorial resource for learning Modern OpenGL Game Design Deep Dives Game Design Deep Dive: VR cockpit audio in Gunjack 2: End of Shift by Alex Riviere [04.13.17] "A great deal of realistic audio is incorporated in the player�s cockpit; various alarms, diverse weapon sounds, dialogues, cockpit physical audio representation, and enemy fire impacts on the turret." VR, Smartphone/Tablet, Audio, Design, Video, Deep Dive Game Design Deep Dive: Creating believable crowds in Planet Coaster by Owen McCarthy [01.04.17] "10,000 guests was what we targeted, and simulating each seemed like a challenge. This was where using flow/potential fields became very appealing." - Owen McCarthy, principal programmer at Frontier. Game Design Deep Dive: Turning Bloodline Champions into Battlerite by Peter Ilves [10.27.16] "Instead of investing resources into trying out new game mode ideas, we took the best pieces from Bloodines Champions and iterated, iterated and iterated." - Peter Ilves, co-founder of Stunlock Studios.
OpenGL Step by Step - OpenGL Development on Linux Math Primer Series: Vectors II: Vector Operations | Reza Nourai's Game Development Ramblings In the last installment of this math primer, we looked at the difference between points and vectors. Today, we’ll dive a little bit deeper into vectors, and the specific operations we can perform on them. More importantly, we’ll take a look at the geometric significance of the many operations, and how they can help us in building a game. We’ll focus primarily on unary and binary operations of vectors. Addition and Subtraction The most basic binary operations we can do on vectors are addition and subtraction. Subtraction is equally simple, we just subtract the components of the second vector from the first. Now, why would we ever want to add or subtract vectors? In this picture, the two black vectors represent the vectors being added together, and the dashed blue vector is where you end up after following the two vectors in order. Scaling Before we dive into multiplications between two vectors, it’s worth taking a quick look at a simple scaling operation. Dot Product Cross Product
OpenGL Step by Step - OpenGL Development on Linux Component Based Engine Design | Randy Gaul's Game Programming Blog What is Component Based Design? Component based engine design was originally pioneered in order to avoid annoying class hierarchies that inheritance introduces. The idea is to package all functionality of game objects into separate objects. It should be noted that the implementation presented here is just one way of going about things, and comes directly from my highly subjective opinion. Here is an example game object, note that the game object is generic and simply contains some components: The Actual Engine The engine of a game can be thought of as a manager of systems. Often times the main loop will deal with timestepping itself. It is important to have your engine expose the update function, as sometimes your engine will need to be compiled as a static library and linked to externally. Beyond containing and calling update, the Engine also forwards global messages to all the systems. Singletons? Creating more than one instance of an engine should never happen. Systems Cache is King
V-Play Engine Examples and Demos | V-Play 2.8 | V-Play Engine V-Play offers a number of open-source demos and examples. You may use them as a starting point for your own game, or just copy parts of it to speed up your development. The following list of demos and examples is grouped by game genres or topics. V-Play Sample Launcher The V-Play Sample Launcher allows you to quickly test and run all the open-source examples and demo games available with the V-Play SDK, from a single desktop application. Access Demos & Examples The demos are part of the V-Play SDK. <Path to your V-PlaySDK>/Examples/V-Play Just open the .pro files with Qt Creator and you can run the demos on your development PC or deploy them to your mobile devices. Getting Started Demos Demo games that are suited best for beginners, to make the first steps with V-Play. Similar to the popular Flappy Bird game by Dong Nguyen, with custom graphics and leaderboard powered by V-Play Game Network. Try to pop all balloons before the timer runs out. RUBE is a graphical editor for Box2D objects.
Why GPUs don’t like to share - a guide to improve your renderer on PowerVR-based platforms Most modern GPUs don’t like to share data they own – daring to poke the bear will invariably incur a cost. This includes the PowerVR Tile Based Deferred Rendering (TBDR) architecture, which keeps a number of frames in-flight so that vertex, fragment and GPU compute tasks can be dynamically scheduled for execution. For an application to be optimal, a renderer must be written with this parallelization in mind. The key question is – what happens when an application updates data that is still being used by the GPU? The following sections detail the common pitfalls when dealing with dynamic texture and vertex data on platforms with PowerVR Series5 and Series5XT GPUs, and describe how these pitfalls can be avoided. Texture updates When an application updates a texture, the driver will check if there are any unresolved renders that require the existing data. Texture ghosting How does ghosting affect me? When ghosting occurs, the entire texture will be duplicated. So…what can I do about this?