Skip to main content

Level design basics, part 8

 Abstract code

Optimally, there should be two or more level design team members, one for graphical
design and one programmer. This is where code abstraction comes in handy. The
graphical part of doing it is to make a level design document in code: 

arena.lvl
Arguments: hard level, hard bonuses.
Design:
main table = circular 4 meters radius

C++ abstract script code:

Level arena_1{};
arena_1.set_script(hard, hard, basic 3);

Such code extraction and abstraction makes hard to transfer documentation into
actual soft ware and hard ware code to more convienient process.

class Ware
{
    std::string data[100]{};
public:
   void draw();
};

The ware class can be used to more correctly bridge the gap between the both
documentation types.

void Ware::draw()
{
    Direct play{};
    for(int iterator{1};iterator<=100;++iterator)
    {
        play.push_x(data[iterator-1]);
    }
}

The class creates a ware house node in the graphical processing unit, so it is more
challenging, but also more convinient to sort through the random access memory.

Ware pixel_1{};
Ware pixel_2{};

Code abstraction makes a level design document more convinient to read for the
programmer or a coder. A ware house node is stored to the random access memory,
but also the central processing unit.

void Direct::push_x(std::string print)
{
    if (print=="array")
    {
        return;
    }
    else
    {
        std::cout << print[1-1];
    }
}

The function prints the system message if the program is console type. Two members
should collaborate and debate on how to improve the level. Basically printing a 3
dimensional square in a video game is hard, so abstraction fixes this problem. In

theory it sounds easy, but it really isn't. Wether it is a first person shooter, real time
strategy or third person adventure game. This is where data abstraction comes in handy.

class Square
{
    int position_x[4]{};
    int position_y[4]{};
    int position_z[4]{};
    std::string script{};
public:
    void draw(std::string parent_type);
};

Same problems arises when making a square in making a 2 dimensional game that
correctly resembles reality, or 
real world.

arena_collosal.lvl
0 1 12 3 4 5

You would expect only 4 parameters for the square, but there are additional 2 for
colossal challenge input for the monster parameters. You would expect the arena
to be circular from the top down, but it is realistic, which is why physics have to

be applied as well. Such as low-polygon count to improve the frame rate. 60 frames
per seconds is good for level design, especially when making a two dimensional
simulation. Making breathing sounds in a two dimensional stealth games is hard.

And challenging. Code abstraction comes here in handy too. So code abstraction
doesn't make development easier, but actually harder, but also more worth it. People
thinks source code abstraction is to make the coding easier, but where could there

possibly any point in that? Experience points system can be abstracted too.

Comments

Popular posts from this blog

Level design basics, part 2

An arch level design is hard, as it doesn't involve only polygon boxes, but also also three dimensional curve lines. If you ever played. Americas army 1, you'll know how hard it is to make a curve building, like the famous over played bridge crossing map. The point is to start. With one curve. Curve is not a straight line, but it's still a line. Means it is possible to apply lines into a three dimensional level. arch 0 0 1 0

Level design basics, part 6

Blocks It takes a lot of building blocks to make a video game level. Video games are after all nothing but very sophisticated and complicated toy games. You can start by making very small pieces of code, say ten of them. After put them in separate files and connect them together. Using JavaScript should do a good trick here. TypeScript defines code blocks, modules and scripts. Forest campaigns are hard to make, but are real fun to play. It is a great adventure, even if it is not a role playing game; and regard less of the weather. Weather and weather conditions are two very different things. Weather conditions are a clausal, all you have to is switch a weather variable: std::string weather{"sunny"}; weather = "rain"; That is a good way to implement into a video game. But weather is something else, it's a cloud system. Very hard to make changing weather. int weather_clouds{10}; weather_clouds+=1; Pick the one you prefer and are capable of doing. So a major buildi

What does a good game consist of? (part 11)

"I make games and I'm proud of it" This is another interesting quote from Raph Kostert's "A Theory of Fun for Game Design". It represents a very important aspect every good game developer should understand. If you make games in pride of the processes, you'll enjoy it and most importantly, you'll realize you're contributing to humanity. Why is that true? Because of what I've stated in the first part of the series. If we continually don't fight for a better game design and quality of development of every role in the process, world will not keep up with the need for really good games, the influence of games on other multimedia, books and all types of arts and sports will be affected. Which means the world is in small-chance, but high-potential danger. I really am proud to call myself a game developer.