Skip to main content

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 building
block could be a weather. Major building block here means 10 building
blocks put together. Or just one big one stand alone.

weather.cpp
void move_clouds(std::string land_index, int move);

land.cpp
std::string get_land(int index);

Connecting these two together:

wall.cpp
void make_wall(int x, int y);
void open_door(int weather_shock, int land_key);

Key here means a door unlock, related to a specific land part of the
map. The weather_clouds variable here is for calculating cloud
movement. As you can see, changing weather conditions and making

actual two or three dimensional weather are both hard, but still making
real weather is even harder. A good weather system is made in DarkFall.
A metaverse fictional world call Agon, has multiple planets circiling

around it. Counting clouds takes multiple variables, however:

std::vector<int> clouds{};

Comments

Popular posts from this blog

object oriented programming

Object oriented programming is a sound and bold approach to c++ and internet wiring application and video games. It reduces a lot of code messes, made by global and half global functions. One of the more advanced object programming techniques are private access, poly morph and object message inheritance. It is set by c++ bjarne stroustrup and iso isometric standard convention comitee to use classes instead of structs and structures for making objects. Which means you most definitely should , but not must or have to. class Monster {     std::string memory_attributes{}; public:     void treck();     void track();     void trace(); }; The treck() function makes the monster roam and do human like jogging and trimming. track() means the monster goes ai path tracking and trace() means it tries to find other monsters in the area. class Weapon {     std::string memory_attributes{}; public:    void use(); }; void Weapon::use() {   ...

object render, part 4

Object is either two dimensional, or three dimensional. Even abstract ones. People imagine c++ game objects as a part of a class on a graph chart, to understand the game and development mechanics. But they are really two dimensional, iso metric or three dimensional. They can be seen on the level or the level map, in other words, about 90% of used classes. Even server objects can be seen on the game, if there is any blue print or underlying real world net working mechanism. So in other words, the class objects can be used in game. They have to be dimensional. //PvE class Monster {     std::vector<int>  head_memory{};     std::vector<int> body_particles{}; public:     int get_memory(int element);     int get_particles(int element);     int get_head_memory_size();;     int get_body_particles_size(); }; Monster's head memory is used for AI render, the body particles list is used for rendering. 60 frames per second...

object render, part 3

 Making a object requires a class call, but also has to be rendered. Monster monster{}; monster = new Monster[10]; void render_monster(Monster* monster_array); The iso c++ standard says you should use classes for making objects, not structs(structures). Considering it is a standard.  With emphasis on  should , not  must . It is a standard, not a coding rule. It was set forth by iso commitee and bjarne stroustrup. Polymorphism allows us to make multiple monster arch map types. virtual void render_monster(std::string map_name, int type=0); Atch map is a data map about what all is happening in the game, like for example campaign map. It allows making archetypes. monsters, for more efficient run time memory and pointers managing bugs and random access memory. Random access memory can hold quite many objects. class BackPack {     std::string inventory_node{}; };