A month has gone by and I committed a horrible blogging sin – no updates. I have not set an official schedule for myself, and I have several articles in the queue pending some clean-up and review, but are ready to publish. In addition to some longer hours at my day job, I have been spending time on the Project Spark beta.
Project Spark is a “game creation” game for the Windows and XBox platforms. It allows you to use in-game assests to create a world, the objects in it and program behaviors for those objects. For people who don’t want to start from scratch, there is the option to auto-generate worlds and most of the objects come with default “Brains”, which allows you to drop them in a game without additional work to get them functional.
At a higher level, I was interested in Project Spark as a platform and I wanted to share my thoughts from participating in the beta since late last year.
A little background first – I loved Adventure Construction Set on my Commodore 64 many years ago and years later Unlimited Adventures, which both allowed you to create your own world, characters and adventures. Most recently (but apparently a while ago – tempus fugit) I had played Neverwinter Nights both single and multiplayer, using my own creations as well as some built by the very enthusiastic community.
Overview
Project Spark reminds me a great deal of the games I mention in the background above. The two primary use-cases are people who want to play the myriad games possible on the platform, and the people who want to create those games. I don’t have a good feel for the overlap of those two groups from the forums, but in these early days – especially during the closed beta – the group was pretty much the same.
What has truly stunned me is the incredible number of game types already. The basic game-play is third-person adventure, as that is how most of the defaults are set. However, even during the Alpha people were creating top-down shooters, side-scrollers, first person games and classics like Tetris and Pac-man clones! This is a testament to the community and this type of platform.
The only problems overall are the search functions and the controls. A game like this relies on having lots of choices – but those options do you no good unless you can actually find them when you want. Whether it is finding a game you think you will enjoy, a prop to drop in your world or the right Tile for the Brain you are programming, there are limitations that get in the way. Fundamentally, the results are inconsistent and I often find myself trying again, or sorting through way too many items. As far as the controls go, the game is supported on myriad platforms. As a result, it supports the keyboard-n-mouse of traditional computers, the controllers of consoles and even touch for devices that support it. The issue arises when the game is developed to specifically utilize a single control type, which happens rapidly when not using the defaults, which locks you into certain platforms. I highlight these two issues because there isn’t a simple solution that will work for most situation, so it is likely to continue to plague the game.
Free-to-Play (Freemium) model
The game is currently free (and I don’t believe it will change post-beta) for Windows 8.1 and the XBox One game console. That gets you the basic platform, a set of general fantasy props, sample Brains and terrain features. Looking at the current creations, this is enough to create the standard fantasy adventure game. As mentioned above, what is truly impressive to me is how far people have pushed this – there are versions of Tetris, Pac-man, Halo and several top-down shooters. So, even the free game provides a lot of options.
However, someone has to pay to support the game, whether it is the development or the ongoing support – such as the servers and bug-fixes required. That appears to be the largess of Microsoft and the micro-transactions related to additional content. This Down Loadable Content (DLC), with one exception at the moment, can be unlocked through playing the game. Additionally, you can play games with this locked content, but you cannot modify their levels or use it in your levels. How this plays out in the long term remains to be seen.
Crossroads
Project Spark includes a play mode called Crossroads, which allows the player to create a game by making a series of decisions either before the game or even during the game. At the beginning, you pick the type of terrain (including DLC for deserts and arctic environments) and the time of day. Currently there is only one game type (generic Adventure, which is a series of quests) but other options appear as “Coming Soon”. You then get to pick a couple of “home base” buildings and their placement.
Then the more traditional part of the game begins. During play, you will be prompted for more options, such as what side-quests you want or what the final quest is. You can also select your Champion, which is a special character you play as your avatar. However, most of the play is the standard third-person adventure – run around and interact with things. Some of the interaction is with items and non-player characters, but the classic fight the enemy (you get to pick the type of foe at a few points) with a variety of weapons is of course there.
Crossroads is an interesting part of Project Spark. It is very good at getting a player into the game, to the point that I would start a new player there before pushing the tutorial or getting them to play a community created game. Playing through a Crossroads level gives you a very good idea of what the basic point of the platform is and provides you a populated base world to start with.
There are I few things I would like as a game creator. First is that you cannot replicate many of the best aspects of Crossroads in your game. The biggest thing would be the world creation options, which have a really nice side-to-side scrolling selection process with images. I am not aware of any way to replicate the exact polished look using the existing tools/options. It would be perfect for picking characters in pretty much any game.
Champions are the second issue, highlighted most by Crossroads. While you can create them in your game, you have no access to either the “character cards” displaying the attributes of the Champion nor the code that powers them. For a game based on creating and sharing, it seems strange that the primary player avatars are locked out.
Tools and Creating Games
While the game can be enjoyed by only playing, the primary purpose is to create and share games. Community content is critical to the success of this platform so the tools provided are key to whether this takes off or withers.
The work space is a view of the world you are creating. When specific objects are selected and examined, such as when programming the Brain, there is an overlay with the relevant information. Most of the interaction is select (press button or click with mouse), scroll, or direction on the various radial menu. In the general view, where you will be doing most of your terrain creation, painting and object placement, there is a list of tools down the left side and a box with options across the bottom. Generally, everything is reasonably available when you need it.
Most of my work this year has been done with the controller, but I had used my Surface Pro 2 exclusively during the early parts of the beta. I have found certain activities are better on mouse and keyboard or via a controller depending on the activity, but neither feels optimal. The camera controls, as with most tools that manipulate a 3D environment on a 2D screen, leave much to be desired – especially when using a controller. Touch was horrible when I first started, but improved during the beta. The controller has some odd choices for action buttons, and even now I find myself pulling the wrong trigger or pushing the wrong button especially when trying to hold the bumpers which serve as “shift” keys in the UI.
Koding
Every object which isn’t as visual or aural effect has a Brain. The Brain contains code, called Kode, which is an extension of the Kodu language. It is primarily an event based language. Basically, each line has a WHEN side that serves as a trigger, and a DO side which changes something in game. Commands are Tiles, selected from a series of radial menus nested up to three deep. These lines can be nested under the previous line, representing a child that triggers only if the parent triggers. The Brain has multiple pages, of which only one is active – allowing for limited object oriented or state-space design.
There are a wide variety of conditions for the WHEN side. The three that I have primarily used are player input, sensor or variable changes and the timers. By selecting the specific keys, mouse/controller buttons or touch event, you can trigger the DO side based on player input. For example, making the player move around is as simple as WHEN [Left Stick Tile] DO [Movement] or fight with WHEN [Left Mouse Button] DO [Attack]. Kode has the concept of boolean, numeric, text, object and set variables. Boolean can be used on the WHEN side directly and the others can be compared in pretty traditional ways, with equals, greater than, etc. Sensors are interesting because the in game objects can detect other objects and do something as a result, a simple example is getting a peasant to turn towards the player when they “See” them.
Currently the beta is missing a lot of documentation. Hopefully they are working on that and it will not be as big an issue as it is now. That would go a long way to resolving the other issue I have – my (rather ridged) programming background has me making some assumptions about how the lines should fire. Specifically, there is no guaranteed order within the same page. The biggest offender is the “for each” which does not iterate in a specific order, and appears to miss some objects in the list on occasion.
Connexions Connection
You may have noticed this post appears under the Connexions category. One of the design goals is to get Connexions on a variety of platforms, allowing you to move your world and character with as little pain as possible. So, what types of concessions would be necessary to make Project Spark one of those platforms?
First, it is impossible to implement an import function, so even if you had your setting and/or character in a data format, you would still need to recreate it in the game itself. Unfortunately, that incurs the second issue – the tools to build user interfaces (UIs) are horrible. There is no text field, and positioning more than a few UI items on the screen requires a lot of code and trial and error. It would be great to have a “canvas” element, which would basically be a 2D object you can put in front of the camera. It would be even better if there were standard interface widgets, such as text boxes, up/down number fields, sliders etc.
Another issue is the limited number of assets to customize your character and setting. Currently, Project Spark supports a cartoon-like fantasy setting with most of the objects in game, such as the Peasant and Knight characters, the Bandit and Goblin enemies and the rustic props and buildings. That is one of the more interesting aspects of the platform – they can extend it to other genres and have made statements suggesting that is the plan.
However, if the question is limited to: “could you run the Connexions rules on Project Spark?” the answer would be a tentative “yes”. I am very confident that The Basics could be implemented, as nothing would really stress the Kode language. It would become much trickier when adding the additional rules beyond The Basics such as steps for cooperative skills and combat. Some of them simply do not make a “fun” game from a single-player 3rd person adventure perspective, others seem like a lot of work for very little gain.
Final Word
I don’t have a Final Word for Project Spark yet, since it is still in beta. It has an amazing amount of promise, but as with anything that does, the ultimate result is only what they can deliver. In addition to Team Dakota getting the game right, there is also a dependency on the community. That is likely to be the source of really great content and they have already proven very dedicated and clever.
Latest posts by Larry (see all)
- Warframe Missions: Part 2 – Other Inner Planet Missions - December 22, 2015
- Review: Assassin’s Creed Black Flag - November 22, 2015
- Warframe Missions: Part 1 – the Basic Missions - November 19, 2015