Gobbo Games Indie Game Developer & Creator of Board Games
Don't wanna be here? Send us removal request.
Text
Bug Tracking for HAZ
One of the core features we wanted to implement on HAZ was to provide testers and players an easy way of logging bugs or suggestions while in the game. We investigated a lot of different options and even tried writing our own system but eventually settled on a Bug Tracking Plugin that integrated directly with Trello.
The in-game bug tracker is pretty simple to use, call it up, fill in six fields and create the bug. This process automatically takes a screen shot, records the map and exact world location, and then sends it up to Trello.
Developers can deal with the bugs directly in the editor and don’t have to worry about leaving the editor to see the bug, they merely load up the bug manager and then either spawn the bug markers or teleport to the bug location.
The beauty of this system is that the developers can manage the full lifecycle of the bug from this window and can even update the patch notes at the same time. This ensures that we have the latest fixes noted down and that all team members can focus on their tasks without having to get distracted.
Once again the patch notes are stored on Trello and we have incorporated those patch notes in to the main menu of the game through the release cycle. This allows us to focus on features and not worry about managing the admin side of releasing patch notes to the players.
We are also able to show where the various bugs are on the map in the editor, these are not viewable in game but does give us a nice indication of where the majority of bugs are so that we can focus all efforts on that area if necessary or even at worse case scenario shut that area down for maintenance ... in a manner of speaking.
It was a natural choice to start using this tool as we already use Trello for our user stories. The plugin can be found on the Unreal Engine Marketplace: https://www.unrealengine.com/marketplace/en-US/product/bug-tracker
If you want to learn more about HAZ, join our discord: https://discord.gg/jrKNUms
0 notes
Text
Riders of Asgard on Steam...
18 months ago, Karl and I started working on this project and I am happy to announce that the game is finished and ready to be released on Steam on the 31st March 2017. We have learnt a lot on the way with regards to Unreal Engine 4, Steam Integration, and other things ... but most importantly we have learnt a lot about ourselves ... but that is a story for another time.
So where are we with regards to the game?
The game is complete and includes all the features we initially planned to include. From a game mechanics point of view, the primary driver of the game are the Secret Crates and Gold Chests ... these drive all other features of the game. The player is able to choose from a host of visual upgrades, new special tricks, new players, and of course BMX upgrades ... each of these are unlocked by finding Secret Crates or racking up some gold. Once they are unlocked, they can be purchased with your gold and equipped in the profile screen.

Gold also plays another important driving factor in the game, it allows you to unlock new levels and thus allows you to experience the journey of your Viking Biking from their home Village of Ugadale all the way to The Floating Hills. We are planning on releasing more levels after release but as of now the game includes 10 levels of varying difficulty and theme.

We have catered for new players and experienced players by not only providing a tutorial that takes you through the basic controls but also the ability to enable Auto-transfers and tweak your riders Auto-leveling. The game also has full controller support for those of you that have a game controller equipped on your PC.

What about Steam support?
The game not only supports Steam Achievements and Steam Trading Cards, but it also supports Steam Cloud for your save files, so you will never loose your progress.
We have 21 Steam Achievements with plans to add more achievements in future updates and these range from landing on your head the most times to completing your first challenge level.

We have 10 trading cards that can be collected which will lead you to achieve "The Viking Explorer" badge. These Trading Cards will allow you to unlock 8 Profile Backgrounds and 9 Emoticons. There are the usual 5 levels of badges as well as the ultimate foil badge.

Do you have other features?
We have our version of leader boards. Due to the different type of game modes available, we have created our own leader boards and these can be viewed inside the game. The game modes include: Score, Survival, Challenge, and Free Ride.

In Score mode, you have two minutes to rack up the most amount of points on the level. A continuous run is the key here as it will ensure you keep the points rolling in. At the end of the 2 minutes, your highest scoring continuous run will be kept and pushed on the leader board. The trick here is combinations and not crashing.
In Survival mode, you have a full special bar that you need to keep filled up as it depletes over time. Perform tricks and combinations to keep the special bar full and as long as it is full and you don't crash your time will count up. The rider that can survive the longest will get on to the leader board. The trick here is making sure you don't crash and performing enough combinations to keep the bar full.
In Challenge mode, you have to complete the four challenges on the level in the quickest amount of time. Each level has 4 challenges and some of those challenges are unique per level. Achieve the four challenges in the quickest time and you will get on the leader board. The trick here is making sure you know what challenges are for the level and then doing the bare minimum to complete them.

In Free Ride mode, you can freely ride around the level and practice your tricks and runs. In this mode you are not able to get on the leader board.
What about social media?
After every run, no matter what mode (except Free Ride) you will be presented with the end run screen, it is on this screen that you will be able to share your score on our official Twitter page ... just look for the button.

As with any project we do, we have an official Twitter account as well as an official Facebook page. The game also has a Steam Community page and we are contemplating adding Steam Workshop support in the future. There will also be extra features added to the Social Media support eventually.
What about updates?
We will always support bug fixes and will ensure that the game is the best that we can make it. We have also decided that we will provide new content and updates for at least 6 months after the launch of the game, if the demand for the game is good than this update window could be extended indefinitely.
Even if the window does pass, we will still do our best to provide new content and updates on a semi-regular basis.
How much will the game cost?
The base game will be launched at $14.99 and will include a 15% discount for the first week after launch.
We are also going to provide a DLC for the soundtrack that will be released for $3.99 and we will also include a bundle that will incorporate the base game and the DLC and will save you 20% on the total package.
Where to from here?
Besides looking at our next project, we have also gotten in touch with Microsoft and signed up to release the game on Xbox. We are currently negotiating to also support the Playstation framework and hopefully these will become an option in the near future ... so yes ... we are planning a console port.
We hope that everyone will enjoy the game as much as we have enjoyed making it and I hope to see your name on the leader board.
0 notes
Text
Riders of Asgard - Back-end
In my last article, I spoke about game analytics and how I am using them for Riders of Asgard. In this article I am going to speak about the back-end services and how I went about implementing them.
The back-end system for Riders of Asgard is primarily responsible for the leader boards system and the hints and tips that are displayed on the loading screens. Furthermore it handles the sharing of high scores and Tweets the high scores to the official Riders of Asgard Twitter page (@ridersofasgard). It also periodically does a geo-lookup on the IP Address of a player and sets the country flag accordingly, as can be seen in the screen shot below.
Core Web Service
The core of the back-end service is a RESTful web-service built using Java and Spring Boot. Spring Boot is part of the Spring Framework which is currently owned by Pivotal. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
Included with the base Spring Boot application, I am using Data JPA with the Repository Pattern, Thymeleaf, Web, and Web Jars. All these are connected to a MySQL server. Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.
It makes it easy to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services. This is an umbrella project which contains many sub projects that are specific to a given database. The projects are developed by working together with many of the companies and developers that are behind these exciting technologies. Coupled with the Repository Pattern means that the service is able to scale with the system as the project grows, MySQL no longer able to cope, no problem add the PostreSQL connector and restart the application.
The Repository Pattern allows the repository to mediate between the data source layer and the business layers of the application. It queries the data source for the data, maps the data from the data source to a business entity, and persists changes in the business entity to the data source. A repository separates the business logic from the interactions with the underlying data source or Web service.
Spring Web forms the basis of the web-service and is tightly coupled with WebJars. WebJars are client-side web libraries (e.g. jQuery & Bootstrap) packaged into JAR (Java Archive) files which allow us to explicitly and easily manage the client-side dependencies in JVM-based web applications.
Thymeleaf is a Java XML/XHTML/HTML5 template engine that can work both in web (Servlet-based) and non-web environments. It is better suited for serving XHTML/HTML5 at the view layer of MVC-based web applications, but it can process any XML file even in offline environments. It provides full Spring Framework integration. In web applications Thymeleaf aims to be a complete substitute for JSP, and implements the concept of Natural Templates: template files that can be directly opened in browsers and that still display correctly as web pages.

Back-end Service
The foundation of the back-end service is an Ubuntu droplet running on Digital Ocean. DigitalOcean, Inc. is an American cloud infrastructure provider headquartered in New York City with data centers worldwide. DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers. As of December 2015, DigitalOcean was the second largest hosting company in the world in terms of web-facing computers.
On top of our droplet we have deployed Docker containers for Java and MySQL that run the Spring Boot Web-service and MySQL database respectively. Docker is an open-source project that automates the deployment of applications inside software containers. Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run: code, run time, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
Docker provides an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines.
This abstraction allows us to run multiple web-services and databases on the single droplet if required and when necessary we can scale up the droplet seamlessly without it affecting the individual systems running in their Docker containers. Furthermore we can move the containers to separate servers if required and if a container gets compromised or unstable, it will not effect the other containers on the system.

Continuous Integration
The entire system is designed with Continuous Integration in mind and is driven from the DevOps mindset. In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. Grady Booch first named and proposed CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day - perhaps as many as tens of times per day. We use a combination of Jenkins and Artificatory for our system.
Jenkins helps to automate the non-human part of the whole software development process, with now common things like continuous integration, but by further empowering teams to implement the technical part of a Continuous Delivery. It is a server-based system running in a servlet container such as Apache Tomcat. It supports SCM tools including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC, and can execute Apache Ant and Apache Maven based projects as well as arbitrary shell scripts and Windows batch commands. The creator of Jenkins is Kohsuke Kawaguchi. Released under the MIT License, Jenkins is free software.
As the first, and only, universal Artifact Repository Manager on the market, JFrog Artifactory fully supports software packages created by any language or technology. Artifactory is the only enterprise-ready repository manager available today, supporting secure, clustered, High Availability Docker registries. Integrating with all major CI/CD and DevOps tools, Artifactory provides an end-to-end, automated and bullet-proof solution for tracking artifacts from development to production.
All the Continious Integration is driven from our Gitlab Community Edition server. GitLab is a web-based Git repository manager with wiki and issue tracking features, using an open source license, developed by GitLab Inc. The software was written by Dmitriy Zaporozhets and Valery Sizov from Ukraine. The code is written in Ruby. Later, some parts have been rewritten in Go. As of Dec 2016, the company has 150 team members and more than 1400 open source contributors. It is used by organisations such as IBM, Sony, Jülich Research Center, NASA, Alibaba, Invincea, O’Reilly Media, Leibniz-Rechenzentrum (LRZ) and CERN.
Part of our DevOps process is the abundant use of Unit Tests and Integration Testing that is run on Jenkins using the Maven build tool. On a successful build, the relevant Docker Container is informed that there is an update and it will schedule the update when the system is not being utilised. Should the system end up being more than three versions behind, we will manually schedule the upgrade by bringing up a brand new Docker container with the new version and decommissioning the current one.
DevOps (a clipped compound of development and operations) is a term used to refer to a set of practices that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use. Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.
Maven is a build automation tool used primarily for Java projects. The word maven means "accumulator of knowledge" in Yiddish. Maven addresses two aspects of building software: first, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant, it uses conventions for the build procedure, and only exceptions need to be written down. An XML file describes the software project being built, its dependencies on other external modules and components, the build order, directories, and required plug-ins. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code and its packaging.

Conclusion
So some of you reading this may have noticed a trend towards Java and Open Source solutions, this was a conscious decision that we made. I have always advocated for Java and Open Source solutions in the enterprise and my drive in Gobbo Games is to show that these technologies can be used in an enterprise without the need to pay exorbitant license fees.
0 notes
Text
Game Analytics for Riders of Asgard
In the last couple of releases, I included some analytics for Riders of Asgard so that we could start working out trends and identifying areas that we can focus on or improve.
The core of the system uses Google Analytics which has a plugin on Unreal Engine and you merely need to wire up the various events and/or screens and the system happily starts logging to you Google Analytics system.
Here are some of the results that are quite interesting. Countries: This has allowed me to identify the core languages that we should focus for I18N (Internationalization) support.
Overview: So here we can see that we have sessions every day, which means people are playing the game every day but our new visitors value is quite low. So although we are retaining our existing players we are not hooking as many new players as we would like ... now there are various factors here but it might be time for a small scale marketing campaign to see if we can improve these numbers.
Pages (Screens): So here we can track where the players are spending most of their times and obviously the new map that was just released (Shipyard) is getting the most activity. It seems as if the village map is absent from the list and so maybe it is time to tweak the map a little ... once again there are various factors that may be involved here and we would have to track the trends over a longer period (this is just a month) before we absolutely decided to change something.
So as you can see, from briefly analysing some of the data I have been able to decide on a few ways forward with regards to the project. The trends that I see on Google Analytics also match what I am seeing from the Game Jolt page with regards to people constantly playing the game ... so this means we are getting the plays we need ... which makes me happy. 8-}
So in my opinion, analytics are pretty important for your game. If you do implement it, implement it earlier rather than later as you will get more meaningful data in the long run. I have found the analytics invaluable in helping us shape the game from a navigation and user experience point of view all the way to the content we provide. As a Business Analyst once said ... some analytics is better than no analytics. 8-}
0 notes
Text
Riders of Asgard - Making the Game More Accessible
Riders of Asgard gives a lot of control to the player, but this brings with it quite a steep learning curve. See how we went about making the game more accessible without sacrificing any depth.
From the start we set out to give the player as much control over their character as possible. This makes for really deep gameplay and lets players develop their own play style, and find unique routes through the levels. Unfortunately this also makes the learning curve pretty steep.
We didn't want to make the game easier by making the level run on only one 2d plane, as this would take away one of the major features that makes the game unique, challenging and a lot of fun. In the following images you can see how this gives you a lot of options from a single starting point:


As you can imagine in the following image there are quite a few different options for the player to find and discover themselves.

A lot of players struggle getting to grips with all the different mechanics of the game, as it can be pretty intimidating having to learn all the concepts at once.
After a lot of feedback from players we have come up with a way to ease new players into the game without sacrificing any of the depth.
Because we allow players to select their own transfer directions through the level, there is a lot to think about when playing. A solution we’ve come up with, is to create an Auto-Transfer-Assist system that the player can enable in the Options Menu. When activated the player will transfer automatically and follow a path set up by us.

This allows players to get comfortable with the basics of the game like jumping, riding and doing tricks, while the system takes care of the transferring. This also serves as a way to show player what types of transfers are possible in the game, as you can combine different transfers as well.
We also added a new Level to the game that will be a bit simpler than the current first level, as we found that the jump in difficulty from the tutorial to the first level was a bit too big. This level to sits in the 1-0 position and is also available from the World Map.


All these new features as well as Local Multiplayer will be available in the upcoming release, that will be out next week! It will be another FREE Alpha version and will available for download on our website - http://www.ridersofasgard.com/
Thanks for your continued support!
0 notes
Text
The Birth of Riders of Asgard
From a simple rolling ball, to a slightly less simple set of shapes vaguely resembling a BMX, take a look at how Riders of Asgard went from it's inception to a Bone-cracking Viking Bmx game!
Riders of Asgard has come a long way to where is is today. We have gone through various changes, and have tried to include the community everywhere we can. So please join us for a quick look at how the game came to be.
The Game started out as a simple rolling-ball skatepark game, as we were in the mood for a skating or BMX game, and the Tony Hawk games of late were pretty disappointing.

We really enjoyed getting all the physics and controls working, and making it feel good.
After getting the ball rolling (pun intended), we wanted to make it feel more like a BMX game, so we needed a new model.
We put one together with simple shapes, and it immediately made the game feel much nicer. You could spin around and flip forwards and backwards.

After playing around with this little blocky guy for a while, we wanted to learn how to import 3D models and use them in game (everything up to this point were just BSP shapes). So we found a 3D model of a BMX and managed to get that into the game.
We also learned a little bit about Blender and made a Halfpipe to ride in, and added some assets from the Free Infinity Blade collection released on Unreal MarketPlace, just to see how that would work.

We then needed to add a rider on to the BMX to try and add tricks. We found a blue clay looking rig online and put it in there. We also learned how to animate it in Blender and import the animation into Unreal.
This added a whole lot to the feel of the game and it was fun riding and jumping in the Halfpipe. We then decided to try our hand at making our own little guy to ride the BMX.


After playing around a bit more and fine tuning controls and physics, we somehow decided to try and make it a Viking Themed BMX game (not sure if it was a moment of insanity or genius ... you decide). We wanted to include some more fantasy based Special Tricks and making it a Viking game felt like a good option. Also Vikings are cool!
So we changed the character to a little Viking guy, and also made a Viking BMX for him to ride.


We also made a new level and started adding more gameplay elements and tricks.

We made a Main menu "world" that transitions into our World-Map where you select stages.


We added a Profile Page as well, where the player can spend collected gold on various items like Helmets, Shields, Bike frames, and Wheels, to customize your viking and improve your Stats!

And that is where we currently are in development, and you can try the game for free by downloading it from http://www.ridersofasgard.com/
We are currently working on an Online Leaderboard system, so that player can compete for high scores with other players across the world.
We are also busy working on the Local and online Multiplayer modes. The split screen mode is working well already, and we are just ironing out some minor issues.

It is already a lot of fun riding with another Player and trying to knock them off their bike! We have a lot of multiplayer modes planned and will be revealing more very soon.
Thanks for taking the time to look at how Riders of Asgard is being made!
We need all the support and feedback we can get, so please give the Alpha demo go and let us know what you think, and how we can improve the game further. We have a Windows, Mac and Linux build available.
And please remember to head over to our Greenlight page and give us your vote, to help us make Riders of Asgard available on the Steam store as quickly as possible.
0 notes
Text
Riders of Asgard - Multiplayer and Leaderboards
We have been hard at work preparing the Multiplayer system and getting the Leaderboards integration ready for Riders of Asgard. We now have some screenshots to show you of the work done so far.
Before we begin, remember that we are still on Steam Greenlight and can use all the votes you can give us. We are confident that we will get green lit, but we just want to make sure.
Before we start with discussing the Leaderboards and how the scoring system works, lets talk about Multiplayer.
Multiplayer: Multiplayer can be handled in two ways, Local Multiplayer where the screen is split. This is limited to two players per machine and will allow you to use any combinations of keys and controllers, although we advise you use game controllers and a nice big screen.
Online Multiplayer can be played locally through through your LAN or via the Internet. This functionality will all be handled via Steam Sessions and we are quite excited about this feature.


Leaderboards and Scoring: The leaderboards and scoring systems is tightly integrated with the levels and the challenges on the levels, so we will first talk about the challenges.
Each level in the game will have 4 challenges allocated to it in categories ranging from Easy, Medium, and Hard difficulties. You have to complete the four challenges on whatever level you choose in order to unlock the next level. In multiplayer mode there are no challenges and all levels are unlocked. The leaderboard has a challenges section and you will be added to this based on the time it takes you to complete the challenges. You can take as many attempts as you want but once you complete the fourth challenge, all the time of the runs are added together to get your total time to complete all challenges. So if you manage to complete the 4th challenge 1 minute in to your 3rd run ... your time for all 4 challenges will be 5 minutes. This time and your challenge level will be recorded on the leaderboard.
So the trick is to complete the challenges as quickly as possible to get ranked higher on the leaderboard. You can also go back and complete the challenges in the other difficulty levels if you want to. The leaderboard also has sections for highest score and best score for an individual run. These have their own sections on the leaderboard and gives you another way of ranking up on the system and challenging your friends to beat you. Finally the multiplayer mode uses the same highest score and best score system except now you have to deal with other riders on the track at the same time, and this is what makes it more challenging. The leaderboard will indicate whether the scores were achieved in multiplayer or single player. Remember that the Free Ride mode does not allow you to get a highest score or complete the challenges but you are able to get points for best score in a single run. We hope you like these features that we are working and as usual we value any input or comments you may have, please email us at [email protected]
Finally we leave you with more screenshots from the new features.






1 note
·
View note