Apart from that, there are basically no other interactive elements on the screen.
Clicking the map button to switch to a global view, Linus then noticed the unique feature.
The 5050 area where he was located was more like a small room than a map.
At this moment, it is embedded in a large map composed of countless rooms.
Apart from the area where he was located, most of the other rooms were empty, with only a few marked with different symbols occasionally visible.
Those symbols clearly represent active players.
In fact, this is precisely one of the optimization strategies that Lin Lixin incorporated into "Screeps".
Instead of generating a single, massive map, it dynamically generates one room at a time based on demand.
Only consider expansion when the map can no longer accommodate the existing players.
Empty rooms that are completely abandoned and have been unoccupied for a long time will be automatically reclaimed by the server.
This technology was personally developed by Lin Lixin.
Besides optimization, it also serves as a prelude to some technologies that will be used in the future.
This dynamic map loading mechanism will be frequently used in future open-world games.
Take, for example, the famous sandbox game, Minecraft.
In Minecraft, each cell contains its own data, making it simply unrealistic to load the entire procedurally generated, nearly infinitely large world.
Forget whether it's necessary or not; even if it were necessary to load it, it would easily fill up both the memory and the hard drive.
As a result, games like Minecraft developed a chunk loading technique.
Simply put, it breaks down a complete world into individual units, dynamically loading and unloading them based on the player's location.
Ensure that only the necessary blocks are in memory at any given time.
This is one of the reasons why Minecraft is so sensitive to memory usage.
Linus glanced at the rooms closest to him and randomly picked one to go inside.
"Hmm?"
In one corner of the map is a square with the same pattern as the other side.
Its name is also displayed above.
[My Base 1]
In addition, there are several smaller dots, also decorated with the same pattern as the base.
Move the cursor over it, and their information will pop up in the information bar on the right.
These are what are called "Creep," which are the most basic units of action in the game.
Interestingly, these Creep are not stationary like the base; instead, they do their own thing intermittently as the game progresses.
Two of them are directly opposite the resource point flashing yellow light, and are clearly mining resources.
The other one was running around on the map, doing who-knows-what.
Although Linus wasn't interested in Command & Conquer, the RTS game that was all the rage across the country, he did occasionally see related content and had heard of it to some extent.
The scene before me looks just like something out of Command & Conquer.
There are bases, buildings, mining units, and soldiers preparing for war.
The only question now is—how do we play?
Filled with doubt, Linus returned to his room.
There was indeed a base in his own room, which he was forced to create when he entered the game.
However, he didn't change the name; he just used the default one, [Spawn1].
If this is a web-based version of Command & Conquer, then this base should be able to be used to build other things.
At the very least, they should be able to produce their own units for operation, just like the player from before.
But there's nothing here.
He selected his base, and although there were many items in the information panel on the right, he couldn't find any option to produce anything.
[Don't know where to start? Click here for a tutorial →]
No matter how skilled Linus is, he couldn't possibly start something out of thin air without any prior knowledge.
Left with no other option, I clicked on the tutorial.
Now he finally understood how to produce the units.
"Do I need to write code?"
Looking at the densely packed content popping up on the screen, even Linus couldn't help but feel a chill run down his spine.
Surprisingly, the code was quite easy to understand.
Compared to languages like C or assembly that I usually encounter, this tutorial showcases a language called NovaScript.
The language is so clean it's almost unbelievable.
Linus even had a feeling that even an ordinary person who didn't know programming could roughly guess its function based on the code.
For example, the code in front of us produces one Creep unit.
Game. spawns["Spawn1"]. spawnCreep([WORK, CARRY, MOVE], "Harvester1");
At first glance, he thought the code was a bit too long.
After all, assembly code usually involves manipulating registers and bits, and rarely involves such lengthy explanations.
But upon closer inspection, it becomes clear that it is actually easier to understand.
The `Game. spawns` command at the beginning is clearly attempting to access the list of bases in the game, and the "Spawn1" passed in is precisely the name of its own base.
It seems the purpose of this opening section is to locate the base.
Then, the subsequent `spawnCreep` call naturally invokes the base's unit production functionality.
WORK, CARRY, and MOVE – these three terms, roughly speaking, represent the unit's capabilities.
Work is obviously used for gathering resources or building things.
The purpose of "carry" (transportation) is unclear at the moment, but it's likely used for moving supplies.
"Move" means to move something, which is exactly what the literal meaning is.
In other words, this long string of commands is actually just to generate a minecart at the base.
"Hiss... why does this feel... something?"
This game seems to only have one unit, the Creep, unlike Command & Conquer which has two distinct factions of units.
To achieve a specific feature, simply assemble the different body parts as needed.
For example, a miner can install more WORK components, which will increase its mining efficiency, but its movement speed will decrease accordingly.
If you want to create the fast scout from Command & Conquer, all you need to do is assemble a Creep with a large number of MOVE components.
In other words, in the game "Screeps", it is theoretically possible to recreate various units from " Command & Conquer ".
Perhaps the only things that can limit us are our imagination—and our programming skills.
Linus wasn't particularly interested in Command & Conquer.
Rather than playing games, he preferred to study how Gamenova implemented its features.
But this game gave him a completely different feeling.
It was so complex it was maddening, yet surprisingly attractive to him.
However, Linus knew very well that if it were an ordinary person, they would probably have run away immediately after seeing the first part of the tutorial.
Who the hell wants to learn programming just to play a game?!
As he entered the code, a progress bar appeared on the base.
Before long, a Creep was actually created, exactly as he had envisioned.
There's not much to say about what needs to be done next.
It's simply a matter of figuring out how to get the miner to mine resources at the resource points.
To be honest, although the tutorial provided very detailed instructions later on, Linus had lost interest in continuing to follow along.
It's not that he's gotten bored with the game.
On the contrary, everything that had just happened had completely ripped his heart out.
Rather than copying the complete code provided in the tutorial, Linus now prefers to figure it out himself and design it slowly.
"Bang bang bang"
Just as he was pondering this, there was a knock on Linus's door.
Linus, whose flow state was interrupted, suddenly felt a sense of stagnation and frustration. He frowned, then reluctantly got up and opened the door.
"Hey, Torvalds, I've got my hands on something that I guarantee you'll be interested."
The person who came was carrying Backpack; a well-known personal shopper from the University of Helsinki.
Many of the GAMENOVA products that people usually play are first launched by him after he made special trips.
Would I be interested?
Linus, whose train of thought had been interrupted, was clearly in a bad mood, and frowned as he looked at him.
"Hey-hey----"
The Backpack kept you in suspense, reaching into its travel bag behind it and pulling out a thick booklet after a moment.
The book was wrapped in a good plastic seal, and the cover and the proper dust jacket were clearly visible.
[NovaScript from Beginner to Finale]
[By Lin Lixin ]
"How so? Aren't you tempted?"
Seeing Linus's hesitant expression, Backpack knew he was sure to make a profit this time.
"The retail price is $21.95. With my service fee included, a friendly price of $30 seems reasonable, right?"
"Hmm----"
Linus pondered for a moment, his peripheral vision falling on Creep, who was still standing there blankly on his screen.
After thinking for a moment, he simply took out his money to pay the bill.
Even if I stop playing this game, I'll probably still have to rely on NovaScript technology if I want to create anything web-based in the future.
Thank you for your patronage!
Backpack a grin, he put the money away and handed the book to him.
Just as Linus was about to close the door in a hurry, the Backpack suddenly stretched out its foot and blocked the door.
"Hey, hold on, I have some good stuff here."
He rummaged through his travel bag again, and soon pulled out another booklet.
Compared to the hardcover book we just saw, this thing looks rather ridiculous.
The book was tattered and worn; it was clearly an old book.
Moreover, it is much thinner, at most only the thickness of a magazine.
Nova Language - From Beginner to Expert
"I found this while browsing online. Although it's a comic book, people say it's really interesting; you can actually make things by following along."
"Comics?"
Linus took it with a puzzled look, opened it, and quickly glanced through it.
It really is a comic book!
This appears to be a children's coding guide designed with the Pokémon storyline as its background.
The main character is a Adventure trainer Pokémon travels around with Clefairy.
All the problems encountered during the journey needed to be solved by writing N Language code.
The problems that were solved are precisely some of the common requirements in video games.
For example, a scrolling feature could be designed to allow the main character to catch up with the target.
Simply put, this is GAMENOVA's youth training camp.
It appears to be a comic book specifically compiled and published by GAMENOVA to cultivate the next generation of game developers.
"Special offer, only $5 now! If you pay $10, I can also throw in a copy of the 'Screeps' API documentation that just arrived today."
"----All right."
Looking at the smiling face behind the Backpack, Linus finally understood; it seemed this was his ultimate goal.
In any case, although Linus had absolutely no interest in video games, his room was getting increasingly filled with things related to Gamenova.
With the newly acquired documents, the last obstacle to Linus's rampage in Screeps has finally disappeared.
Alright.