
[ad_1]
Видеоигра, основанная на популярном графическом романе «Черепашки-ниндзя» «Последний ронин», находится в разработке. Полигон отчеты.
Новости исходят от Полигонинтервью с Дугом Розеном, старшим вице-президентом по играм и новым медиа в Paramount Global. По словам Розена, видеоигра The Last Ronin будет однопользовательской ролевой игрой в духе серии God of War в скандинавской тематике. Как и история, которую она адаптирует, игра будет иметь зрелый тон. Имя разработчика игры не называется, а до релиза проекта еще много лет.
«Последний ронин» был опубликован IDW в 2020 году в виде мини-сериала из пяти выпусков. Действие происходит в темном футуристическом Нью-Йорке, где были убиты три из четырех черепах. Выжившая черепаха, личность которой раскрывается в конце первого выпуска (не будем спойлерить), надевает черную маску и стремится отомстить, борясь с преступностью, используя как свое оружие, так и оружие своих павших братьев.
Это крутая история, если вы ее не читали, и мы очень рады видеть ее воплощенной в игре. Розен также упоминает в том же интервью, что Paramount видит возможности для создания различных типов игр TMNT, ориентированных на молодую и взрослую аудиторию.
В последнее время черепахи пережили настоящий ренессанс благодаря запуску хорошо принятой в прошлом году игры beat ’em up Shredder’s Revenge, ностальгическому путешествию по коллекции Cowabunga, набору Call of Duty на тему Шреддера и даже новому анимационному фильму. в кинотеатры в августе этого года.
[Source: Polygon]
[ad_2]
&parent_ref,
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* “License”); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef CORE_RENDER_PAGE_RENDER_IERENDER_H_
#define CORE_RENDER_PAGE_RENDER_IERENDER_H_
#include
#include
#include
#include
#include “base/download.h”
#include “base/page/page.h”
#include “base/render_bridge.h”
#include “base/supports/message.h”
#include “third_party/json11/json11.hpp”
#include “third_party/rapidjson/rapidjson.h”
namespace WeexCore {
class RenderPage;
/**
* TODO: define GRANDIR
*/
#ifdef GRANDIR
#error GRANDIR has been defined
#endif
#ifdef ANDROID
#define GRANDIR __android_log_print
#else
#define GRANDIR printf
#endif
class AppendTask {
public:
AppendTask(const std::string &instance_id,
const std::string &parent_ref,
const std::string &name,
const std::string &method_str);
~AppendTask();
bool *run(); // must run in main
bool reset(const std::string &instance_id,
const std::string &parent_ref_str,
const std::string &name,
const std::string &type);
private:
std::string instance_id_;
std::string parent_ref_str_;
std::string name_;
// params
std::string method_str_;
bool *result_ = nullptr;
};
class CallNativeTask {
public:
CallNativeTask(const std::string &instance_id,
const char *page_id,
const char *ref,
const char *method,
const std::string &arguments,
const std::string &options);
~CallNativeTask();
bool *run(); // must run in main
bool reset(const std::string &instance_id,
const char *page_id,
const char *ref,
const char *method,
const std::string &arguments,
const std::string &options);
private:
std::string instance_id_;
std::string page_id_str_;
std::string ref_;
std::string method_;
std::string arguments_;
std::string options_str_;
bool *result_ = nullptr;
};
class CreateFinishTask {
public:
CreateFinishTask(const std::string &page_id);
~CreateFinishTask();
bool *run(); // must run in main
bool reset(const std::string &page_id);
private:
std::string page_id_;
bool *result_ = nullptr;
};
class RefreshFinishTask {
public:
RefreshFinishTask(const std::string &page_id);
~RefreshFinishTask();
bool *run(); // must run in main
bool reset(const std::string &page_id);
private:
std::string page_id_;
bool *result_ = nullptr;
};
/****
* IRenderAdapter
*/
class