Final Assignment

This assignment brings us to the end of my journey of Game Engineering Two. This is the concluding lesson for the assignment, in which we had to implement something cool. So, I decided to make a game that would use the features in the game engine. The game is about adventurous journey of JP, a spacecraft pilot who entered the Black Hole and needs to get out escaping red obstacles and collecting fuel pockets that are scattered into the space. The spacecraft is controlled by WASD controls and moves in X-Z plane only. The objective is to escape the red

Continue reading

Alpha Transparency

This week, I was able to work on something interesting. I worked on alpha transparency on meshes. It was a fun and small assignment. My initial thought was the alpha transparency should will included in the material class. But due to inadequate time, we were not able to implement Material class. So, I implemented the alpha transparency in the fragment shader. Further, it is important to notice that opaque meshes should be rendered before the translucent mesh objects. Considering the earlier requirement, the way of the enabling the alpha transparency is using renderstate of the effect class. I started with

Continue reading

New Assets Build System

In this week, I implemented a new build system that allows the system to decide which asset files are to build. The new build system allows the user to control the assets to be built directly by mentioning the asset name, type and path in the AssetsToBuild file. This would be greatly effective when dealing with a large number of files. Also, having all the files mentioned in a single file would be greatly advantageous rather than mention in lua file in the tool code. In previous system, whenever a new file was to be added. User had to explicitly

Continue reading

Creation of Binary Files of the Human Readable Lua Files

Last week, I worked on Maya Exporter that created Lua files for the 3D models from Maya. The advantage of these where to allow the human readable and understanding of data that is store in it. Further these files must have processed for creation of in-game assets. This is where we have chosen binary representation. Here is a Screenshot of how loaded mesh along with texture looks:   There are few reasons why one would choose binary files over human readable files. The most important one is the size. Binary files have comparatively lower size than human readable equivalents. This

Continue reading

MAYA EXPORTER.. it is!

Controls: WASD: control cube : Arrow Keys: Control Camera For this week, I implemented a way to get a 3D object that is created in Maya, along with its texture (currently mapped into UVs only) into my specific file Format and then into the game. This week I worked on implementation of Maya Exporter as Plugin for Maya. The use of this plugin was to allow user to create a 3D model and export it into my specific file format. In this way, I could be able to decide what parts of the data from the Maya would be needed

Continue reading

HUMAN READABLE MESH FILE

For this week, I successfully implemented a human readable mesh input file. Now Any guesses for what language I used? Try Harder!!!! Its’ Lua. Lua is an amazing when it comes to submitting data to Games, as it is widely preferred and easy to use for the end user when they are providing it. So, the main objective was to implement a human readable and understandable lua file. Human Readable is quite easy. But when it comes to Understandable, I got confused. It is hard to provide adequate information to end user through design. So I began by creating a

Continue reading

Snap and Smile!

Controls: Arrow Keys: To move Camera along X-Z axis Shift: Move Cube Up Ctrl: Move Cube Down Camera Implemented into the Engine that allows the user to navigate through the Level (Right now, a Cube and a Plane below it). This was a great assignment as it allowed me to explore some fundamentals of game engine architecture, design and 3D mathematics. I used following terminologies to define the relationship between GameObject and Camera, along with Screen Space. The First one is the LOCAL SPACE. Local Space is the space that vertices with respect to local origin are bound. Local Space

Continue reading

Party Bus for Vertices and Indices…

Finally Meshes into the Engine… #Initial Position   #based on Inputs   This week, I had a chance to work on Importing Meshes into the Engine that is passed as Array of Vertices and Indices. Meshes are fun to work with. I created a Mesh class that was quite like Sprites Class, with some differences in Initialization, and Draw functionality. One of requirement of the assignment was to enable movement of mesh based on key press event. In order to fulfill the requirement, I created a GameObject class. GameObject class has mesh pointer and position as member variables. Position is

Continue reading

Shader – { duplicate code } = CLEAN SHADER

This week’s assignment was small. It only asked us to make shader code to be platform independent as possible. Easy Right! Lets’ dive into it… I started by looking into Macro Preprocessors. Macro Preprocessor is used by Compiler to transform the structure of the program before getting the code to compile. Macro Preprocessors allows the user to define macros, that can be switched between platform on the runtime. I started by separation of platform independent and dependent shader code. I created macro definitions that are specific to that platform. So, in case of DirectX, for creation of Constant Buffer, the

Continue reading

Dressing Boxes!

This week I worked on texturing the Sprites that I discussed in previous blogs. Textures are loaded by Manager that allows the code to access them using Handles. I had to handle the UVs that were passed as a part of Vertex Buffer, to make sure that end user does not have to worry. Instruction: Press Escape to quit. Press Arrow Key UP to change the texture. (*using default textures)      (* Changed textures)                       For the assignment, one sprite renders a texture and changes it based on time.

Continue reading