So I’m back. A lot of things happened in the 2~3 weeks since the last entry. But mainly there are 2 things.
What We Are Doing
One is the game of our group, it’s a arena dueling game where 2 players play against each other. The players need to navigate in a medium-sized arena. find equippables such like weapons and ammos or powerups, and bring their opponent down using them before they got knocked out first. The concept is fun. But a concept won’t magically turn into a game.
In this game, the characters need to run, jump, collect items, inflict damage to opponents. Which means we first need a 3D Area, with normal (or in this case, slightly abnormal, because admit it run on walls is cool) physics. We still need to generate a list of items to spawn, and set up a list of collisions. Not to mention the parts that’s not related to the engine like, actually modeling the arena and items, Art, Sound Effect and Music, etc.
Fortunately, we do have something to begin with.
The L2oC Engine came with an example of an OBJ Loader, the OBJ Loader is quite useful on loading some of our models that we made in the last weeks. However, We still need to load the arena. We have tried to model the entire arena in Maya, export that scene into OBJ file, and load it up in the engine. The outcome is…passable, but is not what we are looking for for various reasons:
- Firstly, from our Game Design Document and our planned scope, the result of the arenas are quite big. It could load fine using the existing OBJ Loader Code, however there will be some loading times when the game is booting up, and we probably don’t want that.
- Also, A scene so big causes some problems that we currently don’t know why they’re there. For example, if the whole arena is imported as an OBJ file, sometimes the physics will outright fail to work (e.g The player is supposed to conduct a wall run by first running, then jumping and hugging the wall, but sometimes the player just floats with jumping, which is weird.)
- Lastly, If we load the entire arena as a scene every time, that means if we need to edit the arena in Maya, we need to open up the whole scene in Maya and change from there, then export them again. Maya exporting could take a long time especially on large scenes.
- Plus, the UVing would be a chore since a scene so large need its texture UVs carefully planned, and if somehow we decided to change the aspect, or the shape/detail of the arena, the UVs need to redone. Which means more additional work.
To solve the problem, we are planning to split our arena into at least 4 Parts, and place that so it works like a 2*2 matrix:
Area 1 Area 3
Area 2 Area 4
Then, we build the above template in our game, and assign one part of the scene as a separate OBJ file to load.
We separate the OBJ in order to let the engine do something under-the-hood that will enhance the experience of players:
- Depending on the position of players, essentially we can only load 1~2 Areas when the game is started, this will shorten load time.
- Since the scene is split into 4 parts, individual editing in Maya/Mudbox will become much easier due to the smaller file size.
- And this is the better part, since we are actually rendering 4 separate areas, we can apply different shaders on them so they will look somewhat different! (and about shaders, I worked with them before!)
With that being said, the implementation of the above has already started and something would be ready in the next following weeks.
What I am doing
Here, I find an interesting question showing up in my TO-DO list.
The requirement is to rebuild the common and classic game Pong in the 2LoC Engine.
Well, it came in 2 parts. One is the classic one which is black and white and generally boring.
The other part is the same game, but with differently colored interface, proper lighting, motion blur and trail (that means bloom). Most of them will be done via shaders.
I actually got most of these shaders ready from last year, but when I tried to import them into the new engine the engine breaks down, it seems some additional work must be done.
But it’s quite interesting that a game looks so much better when slapped a big bunches of shaders on it.
In my opinion (I could be wrong and will correct myself next week if so), I don’t think the vertex shaders need to be changed, the meat and potato are in the fragment shaders.
I’ll be working them in the mean time, I wish myself good luck. (It’s not like I didn’t done Pong or Space Invaders in C++ before… …)