Managing any number of people can be very challenging, and it is especially important if the train station also needs to be integrated in order to function properly. In addition, it is necessary to take into account the needs and needs of all passengers, make them comfortable and provide faster routes. Not difficult? But also a great imitation experience. At DMM Games they have seized the challenge and developed their theme for building a 3D PC channel, called STATIONflow.
The game features a simulation strategy that gives players the task of planning and building an underground train station for thousands of passengers. To achieve this, it asks users to integrate several channels by connecting them with corridors and stairs so that people can travel between them, while providing services and accessibility options for all different types of passengers.
Build Mechanics is a combination of clicks and clicks, which means that the game offers many options for building a channel. However, it is not as easy as making an effective route, as there are few stairs to handle, so it is important to make sure that the buildings are aligned so that passengers can move easily. During construction there are many different things to add, from simple corals and stairs, to stadiums, escalators and elevators. Each plant needs different ways of connecting and, logically, it will cost money to build, which means that each purchase has a financial limit. Generally, construction equipment manufacturers work well and adapt well, although some parts are sometimes not fully integrated, which creates frustration with the lack of a number of systems.
In addition to connecting rooms and platforms, we have a (real) responsibility to create discreet signage and toilets for passengers to use. This is very important for the channel, not only for leads but for customer satisfaction with the installation. Signs are cheap and can be installed anywhere, with a variety of directions. This means that it is usually easier to help passengers get around, although as the station grows, the signs will be similar, so they need to be neat and everything should be clear.
As for the resources, they can be placed anywhere, as long as they are on or connected to a part of the channel. This can vary from toilets and vending machines, to information signs and markers. To get an idea of how the station works, a report detailing the status of its services is submitted at the end of the day, along with a salary gauge. This is important because the budget for the next day will depend on the individual, because it is based on the profits earned.
To make construction less complicated, STATIONflow has a real-time application that the user can configure, allowing for design and construction without pressure. At the beginning of the day it is possible to pause, make all the necessary changes and restart it, allowing it to grow as passengers daily begin to enter and exit. It is a great advantage given by the game, because it means you can focus as much time as you want in planning and making each decision calmly, which is recommended as the difficulty increases.
As for the different types of passengers, these are difficult conversations. It starts in simple mode, requires the minimum requirements for travelers. But as the days go by the station grows, visitors, elderly people and other passengers will emerge, who will need special attention, such as signs, or old man, bees and utensils to access each floor. On the other hand, for most customers, more profits can be made on vending machines or tickets, so everything is a good fit.
The hard part of having so many different and familiar travelers is that their satisfaction depends on what the station offers. This mechanics is all about STATIONflow, because right now when riders feel frustrated with the construction of the station, your "senior" can shut it down. Passenger satisfaction is therefore an important factor in this game, because if money goes wrong, for example, you can request a loan, but there is no possible solution if customers are not well in our area.
To keep the game cool and interesting, there are various situations to try. This is actually a different map, where the landscape would require a lot of dedication and the cost of designing a station, so each map has its own difficulty. This is similar to the player's preference, choosing the map he wants and then adding the difficulty he wants, since there is no story mode, but it's about free building.
It should also be noted that, depending on the images, STATIONflow is quite simple. Humans are designed as characters in The Game of Life, while trains and buildings are similar to those of Monopoly. This option chosen by the developers is a good part, because it focuses on design alone, which is an important and important point of the game, not so much on aesthetics.
STATIONflow is a solid imitation title, with a lot of depth in its simple and easy-to-understand style. It brings different levels of challenge, but at the same time, it allows each one to be available at our own pace. The difficulty, based on the types of passengers and new train lines, weighs well and does not feel overly complicated, although sometimes construction equipment may not be perfect. Similarly, many stages bring many new maps to play and build, to keep STATIONflow as a game to experience and enjoy as much as we want, or for those who hate to go the extra mile.
function FastRegister(tournament=false){ ajaxAgreementsPopUp(); if (typeof isSmartphoneLayout != 'undefined' && isSmartphoneLayout) window.location='/join'; else { $.ajax({ type: "POST", url: "/ajaxstuff/fastRegister.php", data: {session: {"screated":1586966701,"updated":1586966701,"countdownToAd":"0_1586967301"},tournament:tournament}
}) .done(function (code) { $('#re_loginbox').replaceWith(code); // console.log(code); $('.loginWrapper').show(); }) .fail(function(jqXHR, msg) { console.log("request fail"); $(selectorForLoginMessage).text(msg).show(); }); } return false; }
function FastRegisterResponse(){ $.ajax({ type: "POST", url: "/ajaxstuff/fastRegister.php",
}) .done(function (code) { $('#re_loginbox').replaceWith(code); // console.log(code); $('.loginWrapper').show(); }) .fail(function(jqXHR, msg) { console.log("request fail"); $(selectorForLoginMessage).text(msg).show(); }); return false; }
function LoginWithFacebook(selectorForLoginMessage, fbUpdateUser) {
FB.login(function(response) { if (response.authResponse) { FB.api('/me', {fields: 'email,last_name,name,first_name'}, function(user) { var main = false; if (user && !user.error) { // console.log(user); if(selectorForLoginMessage == '#fbLoginMessageMain') main = true; $.ajax({ type: "POST", url: "/ajaxstuff/fblogin.php", data: {userobj: user, fbUpdateUser: fbUpdateUser, main: main} }) .done(function(code) { if(main){ console.log("Is logged"+code); if(code==0) { if(!$('.signin').hasClass('active-signin')) { $('.signin').addClass('active-signin'); if($('.login').hasClass('active-login')) { $('.login').removeClass('active-login'); var request = new GRAsync(); var path = '/ajaxstuff/join.php?ajaxRequest'; request.setUrl(path) .setSelectors($('#joinContainer') ) .setData({register:true,facebookUser:user}) .setDataType('html') .setType('POST') .sendRequest();
} } } else { window.location="/";
} } else{ $('#re_loginbox').replaceWith(code); $('.loginWrapper').show(); //location.reload(true); } }) .fail(function(jqXHR, msg) { console.log("request fail"); $(selectorForLoginMessage).text(msg).show(); });
} }); } else { // console.log('User cancelled login or did not fully authorize.'); } }, {scope: 'email,publish_actions'}); // TODO: don't ask for publish_actions by default. It might scare away some users. Ask later, when they actually want it. return false; }
function AddSearchParamsAndReload(newParamStr) {
var newParamArr = newParamStr.split("&");
if (window.location.search.length > 1) { // don't count the initial '?'
var oldParams = window.location.search.substr(1).split("&");
var paramsToAdd = ();
for (var j = 0; j < newParamArr.length; j++) {
var found = false;
for (var i = 0; i < oldParams.length; i++)
if (newParamArr(j) == oldParams(i))
found = true;
if (!found)
paramsToAdd.push(newParamArr(j));
}
if (!paramsToAdd.length)
window.location.reload();
else
window.location.search += '&'+paramsToAdd.join("&");
}
else
window.location.search = '?'+newParamStr;
}