宇宙超级无敌霹雳...吧 关注:8贴子:144


IP属地:陕西1楼2018-11-25 20:49回复
    4) Publication Type: Table XXII displays the number ofpublications according to the publishing channel and machinelearningmethod: 60.98% of the included articles were made available through international conferences, workshops, andsymposia; 19.51% was published as chapters in books; 12.20%appeared in international journals with impact factor; theremaining 9.76% was published in international journals.
    V. DISCUSSION AND CONCLUSIONThe number and the distribution of papers identified using thesearch terms listed in this paper confirm the large and increasinginterest in the serious games field related to artificial intelligentalgorithms and techniques. Our inclusion criteria identified129 papers providing evidence for the development and integrationof some specific AI algorithms related to fields of decisionmaking and machine learning.The papers selected for this review were very diverse interms of their area of research and application, market andpurpose, and project and delivery type, reflecting the variedbackgrounds of the researchers and their different interests inserious games. However, all of them have the AI field in common.This, together with the multifeature analysis performedin this paper, helped the authors to create a common analysisframework for organizing and comparing all the includedstudies.The results are quite consistent between the two main sectionsof this paper, which may help to establish some trendsregarding the use of decision-making and machine learningalgorithms in serious games design and development.A. Algorithms UsedConsidering Section III, the number of articles includedunder the umbrella of decision trees is considerably higher thanthe number of studies found for the rest of algorithms. Decisiontrees are computationally undemanding, and have been founduseful as components of intelligent systems [161].However, in Section IV, the included number of articles wasquite balanced between naïve Bayes classifiers, artificial neuralnetworks, and case-based reasoning algorithms. SVM algorithmshad the lower inclusion rate in Section IV. The vastmajority of the SVM studies in this review were focused onclassifying, evaluating, or predicting users’ states and behaviorsusing biological sensors. SVMs are supervised classifiers thathave been improved to successfully work with limited quantityand quality of training samples [162], which may help in theirimplementation with biological data.
    B. AI FlagshipSome 65% of articles included in both Sections III and IVbelong to the “PEM—gameplay” flagship. This is an interestingoutcome since both of the reviewed sections produced the sameresult. According to Yannakakis, gameplay-based PEM is theless intrusive and most computationally efficient approach forgames [19], which may be the reason for its high incidence inthis review.“PEM—subjective” flagship did not have representation inthis review, which may be because the authors were morefocused on algorithm-centered studies.C. AI UsageAI techniques were applied with a wide variety of final purposesfor each article. The most common implementations werefor altering the gameflow or for assessing/classifying users’state and behavior while playing. The production of intelligentserious games that dynamically adapt themselves to users’needs and performance have been proved to be efficient in termsof improvement comparisons [163].D. Serious Games MarketEducation and health markets were the most widespreadmarkets considering the reviewed algorithms. No recent keyfigures were found regarding the serious games market analysis.However, the market study published by IDATE whichranges from 1952 to 2009 proved that serious games in mostcases were designed for education [164].E. Serious Games PurposeEdugame-related purposes were the most employed purposein this review. This may be because the use of serious games forlearning purposes is already established [165].F. Platform/DeliveryThe vast majority of the articles included in both decisionmakingand machine learning categories were designed and/ordeveloped for PC. Studies that involved online or mobile seriousgames were in discreet middle distance. Similar resultswere found by Connolly et al. in their review about computerand serious games [165].However, in recent years, the number of smartphones sold toend users worldwide has increased sharply. In 2013, the numberof smartphones sold to customers increased by 50% from2011. This means that almost 20% of world’s population owneda smart device. This figure is expected to grow to 34% by 2017[166]. This increase in the use of portable devices connectedto the Internet could mark a change in trends regarding seriousgames delivery platform.


    IP属地:陕西2楼2018-11-25 20:53
    回复
      该楼层疑似违规已被系统折叠 查看此楼


      IP属地:陕西3楼2018-11-25 20:54
      回复
        1) Inner working of the game: Serious games are constantlymoving closer to modern games development, followingthe same pattern with regard to AI techniques. Mostmodern games address three basic game-related needswhen implementing intelligent algorithms: move characters,make decisions inside the gameflow, and thinktactically [20]. These needs have also been found throughoutthis paper, where several articles made use of AItechniques for the inner workings of the game.2) Personalized gaming experience: The design and developmentof adaptive intelligent serious games with contentchanges based on user interaction makes player experience,training, and education more customized. AI techniquesprovide systems with an efficient way of learningbased on the users themselves, providing them with customizedpersonal experiences, which may increase theirpotential effects [170].In summary, AI techniques are not only not limited in thecontext of serious games but also they have a promising potentialin the future of this area. The revised literature highlightsthe potential of intelligent serious games, and the wide rangeof possibilities they provide to researchers, professionals, andfinal users. The future of serious games will probably becloser to modern games development involving more AI algorithms,arts, and animations and ending with serious games thatmore resemble modern video games, engaging users and gameprofessionals in their path.I. LimitationThe current review has a number of limitations. As with allreviews, it was limited by the search terms used, the databasesemployed, and the time period selected. However, this reviewhelps to contextualize the use of some mainstream artificialintelligence algorithms in the field of serious games, giving anoverview of the trends and limitations over the last decade.I. ConclusionFinally, the authors consider that in recent years enoughknowledge has been gathered to create new intelligent seriousgames to consider not only the final aim but also the technologiesand techniques used to provide players with a nearlyreal experience. This new age of serious games is very closeto the world of video games, and they generate new solutionscompletely adapted to their target audience. However,researchers may need to improve their methodology for testingdeveloped serious games, so as to ensure they meet their final purposes. Moreover, the authors would like to encourage otherresearchers to use this paper in other AI-specific techniquesand/or addressing new AI-related features, to extend this stateof the art in the field of serious games, creating a knowledgehub for researchers in the area.ACKNOWLEDGMENTThe authors would like to thank the DEIKER ResearchAgency at the University of Deusto, Bilbao, Spain, and P.Heaton, a researcher at Deustotech-Life, for his help withreviewing this paper.


        IP属地:陕西4楼2018-11-25 20:54
        回复
          I.结论最后,作者认为近年来已经收集了足够的知识来创建新的智能严肃游戏,不仅要考虑最终目标,还要考虑用于为玩家提供近乎真实体验的技术和技术。这个严肃游戏的新时代非常接近视频游戏世界,它们产生了完全适合目标受众的新解决方案。然而,研究人员可能需要改进他们测试开发的严肃游戏的方法,以确保他们满足他们最终的FRUTOS-PASCUAL和ZAPIRAIN:在严肃的游戏中使用人工智能技术的回顾:决策和机器学习149目的。此外,作者还希望鼓励其他研究人员在其他AI特定技术中使用本文和/或解决与AI相关的新功能,在严肃游戏领域扩展这种先进技术,为该地区的研究人员创建知识中心。致谢作者要感谢西班牙毕尔巴鄂Deusto大学的DEIKER研究机构和Deustotech-Life的研究员P. Heaton,感谢他对本文的审阅。


          IP属地:陕西5楼2018-11-25 21:02
          回复
            1)游戏的内在运作:严肃的游戏不断接近现代游戏开发,遵循与AI技术相同的模式。大多数现代游戏在实现智能算法时解决了三个与游戏相关的基本需求:移动角色,在游戏流程中做出决策,并在战术上思考[20]。在本文中也发现了这些需求,其中一些文章利用AI技术来进行游戏的内部工作。2)个性化游戏体验:基于用户交互的内容变化的自适应智能严肃游戏的设计和开发使得玩家体验,培训和教育更加个性化。人工智能技术为系统提供基于用户自身的有效学习方式,为他们提供定制的个人体验,这可能会增加他们的潜在影响[170]。总之,人工智能技术不仅在严肃游戏的背景下不受限制,而且在该领域的未来也具有很大的潜力。修订后的文献强调了智能严肃游戏的潜力,以及它们为研究人员,专业人士和最终用户提供的广泛可能性。严肃游戏的未来可能更接近于涉及更多人工智能算法,艺术和动画的现代游戏开发,并以更像现代视频游戏的严肃游戏结束,吸引用户和游戏专业人士前往他们的道路。I.限制目前的审查有许多限制。与所有评论一样,它受到使用的搜索术语,所使用的数据库以及所选时间段的限制。然而,


            IP属地:陕西6楼2018-11-25 21:03
            回复
              I.限制目前的审查有许多限制。与所有评论一样,它受到使用的搜索术语,所使用的数据库以及所选时间段的限制。然而,这篇综述有助于将一些主流人工智能算法在严肃游戏领域的使用情境化,概述了过去十年的趋势和局限。


              IP属地:陕西7楼2018-11-25 21:03
              回复


                IP属地:陕西8楼2021-03-07 23:10
                回复
                  IP属地:陕西9楼2021-03-07 23:52
                  回复
                    IP属地:陕西10楼2021-03-08 00:01
                    回复


                      IP属地:陕西11楼2021-03-08 01:15
                      回复
                        https://www.guyuehome.com/21614


                        IP属地:陕西12楼2021-03-08 01:21
                        回复
                          IP属地:陕西13楼2021-03-08 01:40
                          回复
                            #include <thread>
                            #include <chrono>
                            #include <Eigen/Core>
                            #include <mav_msgs/conversions.h>
                            #include <mav_msgs/default_topics.h>
                            #include <ros/ros.h>
                            #include <std_srvs/Empty.h>
                            #include <trajectory_msgs/MultiDOFJointTrajectory.h>
                            int main(int argc, char** argv) {
                            ros::init(argc, argv, "wav_control");
                            ros::NodeHandle nh;
                            // Create a private node handle for accessing node parameters.
                            ros::NodeHandle nh_private("~");
                            ros::Publisher trajectory_pub =
                            nh.advertise<trajectory_msgs::MultiDOFJointTrajectory>(
                            mav_msgs::default_topics::COMMAND_TRAJECTORY, 10);
                            ROS_INFO("Started hovering example.");
                            std_srvs::Empty srv;
                            bool unpaused = ros::service::call("/gazebo/unpause_physics", srv);
                            unsigned int i = 0;
                            // Trying to unpause Gazebo for 10 seconds.
                            while (i <= 10 && !unpaused) {
                            ROS_INFO("Wait for 1 second before trying to unpause Gazebo again.");
                            std::this_thread::sleep_for(std::chrono::seconds(1));
                            unpaused = ros::service::call("/gazebo/unpause_physics", srv);
                            ++i;
                            }
                            if (!unpaused) {
                            ROS_FATAL("Could not wake up Gazebo.");
                            return -1;
                            } else {
                            ROS_INFO("Unpaused the Gazebo simulation.");
                            }
                            // Wait for 5 seconds to let the Gazebo GUI show up.
                            ros::Duration(5.0).sleep();
                            trajectory_msgs::MultiDOFJointTrajectory trajectory_msg;
                            trajectory_msg.header.stamp = ros::Time::now();
                            const float DEG_2_RAD = M_PI / 180.0;
                            float pos_x = 0,pos_y = 0,pos_z = 0;
                            Eigen::Vector3d desired_position(pos_x, pos_y,pos_z);
                            float yaw_deg = 0;
                            double desired_yaw = 0.0;
                            int j = 1;
                            int n = 0;
                            while(ros::ok()){
                            ROS_INFO("1 : [%d, %d].", j, n);
                            switch(j){
                            case 1: {pos_z=3; break;}
                            case 2: {pos_x=2;break;}
                            case 3: {pos_y=4;break;}
                            case 4: {pos_x=-2;break;}
                            case 5: {pos_y=0;break;}
                            case 6: {pos_x=0;break;}
                            default:break;
                            }
                            if(n!=j){
                            trajectory_msgs::MultiDOFJointTrajectory trajectory_msg;
                            trajectory_msg.header.stamp = ros::Time::now();
                            desired_position.x()=pos_x;
                            desired_position.y()=pos_y;
                            desired_position.z()=pos_z;
                            mav_msgs::msgMultiDofJointTrajectoryFromPositionYaw(desired_position, desired_yaw, &trajectory_msg);
                            ROS_INFO("Publishing waypoint on namespace %s: [%f, %f, %f].", nh.getNamespace().c_str(), desired_position.x(), desired_position.y(), desired_position.z());
                            trajectory_pub.publish(trajectory_msg);
                            n=j;
                            }
                            ros::Duration(2.0).sleep();
                            j++;
                            ros::spinOnce();
                            }
                            ros::shutdown();
                            }


                            IP属地:陕西14楼2021-03-08 14:36
                            回复
                              cmake_minimum_required(VERSION 3.0.2)
                              project(control)
                              ## Compile as C++11, supported in ROS Kinetic and newer
                              # add_compile_options(-std=c++11)
                              ## Find catkin macros and libraries
                              ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
                              ## is used, also find other catkin packages
                              find_package(gazebo REQUIRED)
                              find_package(PythonInterp REQUIRED)
                              find_package(catkin REQUIRED COMPONENTS
                              roscpp
                              rospy
                              std_msgs
                              sensor_msgs
                              geometry_msgs
                              mav_msgs
                              gazebo_msgs
                              )
                              ## System dependencies are found with CMake's conventions
                              # find_package(Boost REQUIRED COMPONENTS system)
                              ## Uncomment this if the package has a setup.py. This macro ensures
                              ## modules and global scripts declared therein get installed
                              ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
                              # catkin_python_setup()
                              ################################################
                              ## Declare ROS messages, services and actions ##
                              ################################################
                              ## To declare and build messages, services or actions from within this
                              ## package, follow these steps:
                              ## * Let MSG_DEP_SET be the set of packages whose message types you use in
                              ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
                              ## * In the file package.xml:
                              ## * add a build_depend tag for "message_generation"
                              ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
                              ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
                              ## but can be declared for certainty nonetheless:
                              ## * add a exec_depend tag for "message_runtime"
                              ## * In this file (CMakeLists.txt):
                              ## * add "message_generation" and every package in MSG_DEP_SET to
                              ## find_package(catkin REQUIRED COMPONENTS ...)
                              ## * add "message_runtime" and every package in MSG_DEP_SET to
                              ## catkin_package(CATKIN_DEPENDS ...)
                              ## * uncomment the add_*_files sections below as needed
                              ## and list every .msg/.srv/.action file to be processed
                              ## * uncomment the generate_messages entry below
                              ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
                              ## Generate messages in the 'msg' folder
                              # add_message_files(
                              # FILES
                              # Message1.msg
                              # Message2.msg
                              # )
                              ## Generate services in the 'srv' folder
                              # add_service_files(
                              # FILES
                              # Service1.srv
                              # Service2.srv
                              # )
                              ## Generate actions in the 'action' folder
                              # add_action_files(
                              # FILES
                              # Action1.action
                              # Action2.action
                              # )
                              ## Generate added messages and services with any dependencies listed here
                              # generate_messages(
                              # DEPENDENCIES
                              # std_msgs
                              # )
                              ################################################
                              ## Declare ROS dynamic reconfigure parameters ##
                              ################################################
                              ## To declare and build dynamic reconfigure parameters within this
                              ## package, follow these steps:
                              ## * In the file package.xml:
                              ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
                              ## * In this file (CMakeLists.txt):
                              ## * add "dynamic_reconfigure" to
                              ## find_package(catkin REQUIRED COMPONENTS ...)
                              ## * uncomment the "generate_dynamic_reconfigure_options" section below
                              ## and list every .cfg file to be processed
                              ## Generate dynamic reconfigure parameters in the 'cfg' folder
                              # generate_dynamic_reconfigure_options(
                              # cfg/DynReconf1.cfg
                              # cfg/DynReconf2.cfg
                              # )
                              ###################################
                              ## catkin specific configuration ##
                              ###################################
                              ## The catkin_package macro generates cmake config files for your package
                              ## Declare things to be passed to dependent projects
                              ## INCLUDE_DIRS: uncomment this if your package contains header files
                              ## LIBRARIES: libraries you create in this project that dependent projects also need
                              ## CATKIN_DEPENDS: catkin_packages dependent projects also need
                              ## DEPENDS: system dependencies of this project that dependent projects also need
                              catkin_package(
                              # INCLUDE_DIRS include
                              # LIBRARIES control
                              # CATKIN_DEPENDS roscpp rospy std_msgs
                              # DEPENDS system_lib
                              )
                              ###########
                              ## Build ##
                              ###########
                              ## Specify additional locations of header files
                              ## Your package locations should be listed before other locations
                              include_directories(
                              # include
                              ${catkin_INCLUDE_DIRS}
                              )
                              ## Declare a C++ library
                              # add_library(${PROJECT_NAME}
                              # src/${PROJECT_NAME}/control.cpp
                              # )
                              ## Add cmake target dependencies of the library
                              ## as an example, code may need to be generated before libraries
                              ## either from message generation or dynamic reconfigure
                              # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
                              ## Declare a C++ executable
                              ## With catkin_make all packages are built within a single CMake context
                              ## The recommended prefix ensures that target names across packages don't collide
                              # add_executable(${PROJECT_NAME}_node src/control_node.cpp)
                              ## Rename C++ executable without prefix
                              ## The above recommended prefix causes long target names, the following renames the
                              ## target back to the shorter version for ease of user use
                              ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
                              # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
                              ## Add cmake target dependencies of the executable
                              ## same as for the library above
                              # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
                              ## Specify libraries to link a library or executable target against
                              # target_link_libraries(${PROJECT_NAME}_node
                              # ${catkin_LIBRARIES}
                              # )
                              #############
                              ## Install ##
                              #############
                              # all install targets should use catkin DESTINATION variables
                              # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
                              ## Mark executable scripts (Python etc.) for installation
                              ## in contrast to setup.py, you can choose the destination
                              # catkin_install_python(PROGRAMS
                              # scripts/my_python_script
                              # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
                              # )
                              ## Mark executables for installation
                              ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
                              # install(TARGETS ${PROJECT_NAME}_node
                              # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
                              # )
                              ## Mark libraries for installation
                              ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
                              # install(TARGETS ${PROJECT_NAME}
                              # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
                              # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
                              # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
                              # )
                              ## Mark cpp header files for installation
                              # install(DIRECTORY include/${PROJECT_NAME}/
                              # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
                              # FILES_MATCHING PATTERN "*.h"
                              # PATTERN ".svn" EXCLUDE
                              # )
                              ## Mark other files for installation (e.g. launch and bag files, etc.)
                              # install(FILES
                              # # myfile1
                              # # myfile2
                              # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
                              # )
                              #############
                              ## Testing ##
                              #############
                              ## Add gtest based cpp test target and link libraries
                              # catkin_add_gtest(${PROJECT_NAME}-test test/test_control.cpp)
                              # if(TARGET ${PROJECT_NAME}-test)
                              # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
                              # endif()
                              ## Add folders to be run by python nosetests
                              # catkin_add_nosetests(test)
                              add_executable(control src/wav_control.cpp)
                              target_link_libraries(control ${catkin_LIBRARIES})
                              add_dependencies(control ${catkin_EXPORTED_TARGETS})
                              foreach(dir launch models resource worlds)
                              install(DIRECTORY ${dir}/
                              DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir})
                              endforeach(dir)


                              IP属地:陕西15楼2021-03-08 14:37
                              回复