We added support for floating monsters (Lost Souls, Cacodemons, etc.) however v2.0 only spawns Lost Souls. We also added the Chainsaw due to popular demand, so you can saw “Pinkies” to the tune of I Sawed Demons.
Adding the Chainsaw required some changes to the sound effects implementation, so we refactored this code quite a bit. The Vanilla Doom code handles the playing and stopping of sounds, and the unique sound effects of the Chainsaw make use of this, particularly the switching between the idle, attack and hit frames of the Chainsaw. So we had to do some work in the sound code to replicate this same behavior in ARThings. We also updated ARCore to v1.17 in this version.
Anyways below are 2 videos that showcase these features:
We recently released v1.9 of ARThings, which included a couple of new features (addition of a new monster and weapon) and some under-the-hood improvements.
We also introduced 3 new achievements and some game difficulty balancing. We discovered some major bugs (pre v1.9) with monster spawning that made the game incredibly difficult – monsters spawn too frequently, and these bugs are fixed in v1.9.
Below is a clip of a pre-alpha version of v1.9 showcasing a rough implementation of the Plasma Gun:
Below are the full release notes, we hope you enjoy!
Added spawning of Baron of Hells
Added spawning of Plasma Gun when killing Baron of Hells
Reduced the frequency of Chaingunners spawning
Added gib animation for Zombies, Imps and Shotgun Guys
Added some logic to make missiles explode when too far
Fixed thrust and friction implementation that was not working before
Added 3 new achievements – Picking up Plasma Gun, Killing Baron of Hell (Boss) and Gibbing a monster
Added spawning of Blue Armor
Added spawning of clips, 4 shotgun shells and cells
Fixed bug of monsters spawning when they’re not supposed to
This is a light release and the last one before the start of 2020. We introduced 2 Leaderboards:
Most kills in a single round.
Total kills for all rounds.
We also display Top kills in a single round in the HUD (displayed in green color).
I took a video of v1.8 today, which includes footage of unlocking some achievements – including unlocking and picking up the Super Shotgun before I was mowed down by demons:
While developing an Android app with Google Play Game Services integration a developer needs the following for testing Game Services features:
1. Ability to test in a Android debug app (signed with debug certificate) with unpublished achievements using a tester account.
2. Ability to test in a Android release app (signed with release certification), fully signed by Google Play with a published Game Services configuration.
Google provides some documentation on how to setup Game Services for Android. This documentation clearly outlines the configuration process:
However, despite these guides some developers might face some stumbling blocks along the way. After dealing with this myself, I’ve outlined below some general guidelines on how accomplish the configuration for both Android debug and release apps published to Google Play.
Testing in Debug Mode
To test in debug mode, you need to create a Linked App inside the Game Services configuration that corresponds to your Android debug app. The Client ID used by this Linked App needs to use the SHA1 fingerprint of the Android debug keystore (debug.keystore). Typically, for Windows users this keystore is located in the following path:
C:\Users\{your Windows username}\.android\debug.keystore
To find the fingerprint of this keystore all you need to do is run the following in the command prompt:
You can then copy paste the SHA1 fingerprint into the SHA1 fingerprint of the Client ID needed by Game Services and you should be good to go.
If for some reason you can’t find the keystore there’s another way to find out the SHA1 fingerprint based on the Android app’s generated apk. The Android SDK Build Tools come with a nice little tool called “apksigner” that can be accessed through the command line via the following path
C:\Users\{your Windows username}\AppData\Local\Android\sdk\build-tools\{version}
The “apksigner” tool takes the path of an apk and returns information about the certificate that the apk was signed with. Below is an example of the command line:
The above instructions also apply for Release Mode, but with one small change: You need to use the SHA1 fingerprint of the certificate that Google Play uses to sign the release apk with in Google Play (called the “App signing certificate”, NOT the certificate you use to bundle your apk in release mode (called the “Upload Certificate”) from the “Build -> Generate Signed Bundle / APK” option in Android Studio.
Getting the SHA1 fingerprint of the App signing certificate is very simple. Go to Google Play Console, click on your app and navigate to the “Release Management -> App signing” section. In the “App signing certificate” section (screenshot below), use the SHA1 certificate fingerprint (masked in the screenshot below) for your release app Client ID.
The important thing here is to use SHA-1 fingerprint of the App signing certificate, NOT the Upload certificate.
In a nutshell, here’s the overall approach:
Testing Game Services for debug Android: Create a Linked App using using a Client ID using the SHA1 fingerprint of Android’s default debug keystore (debug.keystore).
Testing Game Services for release Android app in the Play Store: Create a Linked App using a Client ID using the SHA1 fingerprint of the “App signing certificate”.
After a small period of development hell, we finally released ARThings v1.6 last Saturday. This release is a big step into making ARThings more of a game experience versus just a mere technical demo. We’ve still got a long way to go, but we’re ok with taking baby steps and experimenting with new features.
The main addition in v1.6 is the integration of Google Play Game Services, supporting the following 3 achievements:
Killing 30 monsters in a row without dying
Picking up the Chaingun
Picking up the Super Shotgun
Below are the full v1.6 release notes:
1. ARCore 1.13 update
2. Google Play Game Services integration with 3 achievements
3. AR Session filter -> limited camera capture rate to 30fps and prevented the use of depth sensor
4. Added the Super Shotgun (awarded as a gift but won't give you spoilers on how to get it!)
2. HUD changes
Version 1.6 ended up having a bug with Google Sign In, so we made an emergency v1.7 release with the following changes:
1. ARCore 1.14 update
2. Google Play Game Services update to 19.0.0
3. Disabled AR Session filtering -> camera capture rate and use of depth sensor is not limited anymore
4. Settings menu -> Added Player Id to Signed In message
5. Settings menu -> Added icon to achievement button
6. Settings menu -> Positioned Sign Out button at the bottom
7. Updated Sign In error dialogs to display more informational messages
8. Sign out -> Updated sign out handling code
9. Game Services -> Released achievements buffer to fix memory leak
10. Fixed memory leaks in Game Services static member variables
Below is a short video of v1.7 – it doesn’t showcase all the features of this release (like the Super Shotgun) since I was killed repeatedly before I was able to unlock it but I’ll post a video of the Super Shotgun soon!
We are happy to announce the official release of FilmScout for iOS and Android.
FilmScout lets you keep track of your favorite filmmaker’s projects. You can search for information on your favorite movies and TV shows, check the filmmaking team, explore their works, and follow them to keep track of their upcoming projects.
Right now, you can track filmmakers in the following roles:
– Director – Screenwriter/Writer – Composer – Cinematographer/Director of Photography – Editor
Feel free to write to us with any feedback you have!
Today I’m going to share with you how to handle AWS SNS notifications in a Ruby on Rails app. An SNS topic publishes every message it receives to every subscriber, and our app is subscribed to receive these messages via HTTP.
SNS messages come in 2 types:
SubscriptionConfirmation: Is sent when a subscription is created to confirm that the endpoint is up an running. The confirm_subscription method handles this.
Notification: Once the subscription is confirmed, all the following messages will be of this type. These are the messages that are sent to a topic and then fanned out to every subscriber out there.
The verify_request_authenticity method is called first to verify the authenticity of the SNS message. It checks that the message is not empty and verifies its origin using the MessageVerifier class. Finally, the create method parses the message content accordingly.
I hope this can be of great help to everyone out there. Feel free to comment if you have any questions or feedback.
# frozen_string_literal: true
# Notifications coming from SNS
class NotificationsController < ActionController::Base
before_action :verify_request_authenticity
# @url /notifications
#
# @action POST
#
# Broadcasts a SNS message to an ActionCable channel
#
#
def create
case message_body['Type']
when 'SubscriptionConfirmation'
confirm_subscription ? (head :ok) : (head :bad_request)
when 'Notification'
message = JSON.parse(message_body['Message'])
BroadcastExecutionNotificationJob.perform_later(message)
head :ok
end
end
private
def verify_request_authenticity
head :unauthorized if raw_post.blank? || !message_verifier.authentic?(raw_post)
end
def raw_post
@raw_post ||= request.raw_post
end
def message_body
@message_body ||= JSON.parse(raw_post)
end
def message_verifier
@message_verifier ||= Aws::SNS::MessageVerifier.new
end
def confirm_subscription
AWS_SNS_CLIENT.confirm_subscription(
topic_arn: message_body['TopicArn'],
token: message_body['Token']
)
true
rescue Aws::SNS::Errors::ServiceError => e
Rails.logger.info(e.message)
false
end
end
Helldorado Team’s Doom WAD portfolio hasn’t been particularly illustrious. In fact until this year its been nonexistent. Can we recall the overly hyped Confessions from the Flesh – announced back in May of 2006 but cancelled after only 2 days of development?
Let’s recount Helldorado Team’s various attempt at WAD building for a moment:
Exhumed – began in 2012 as a single map for ZDoom. Much more progress was made compared to Confessions but after 3 weeks the team lost interest. Development resumed in December 2018 but yet again scope creep derailed the project when the team tried to incorporate countless features to showcase GZDoom advanced capabilities. The project was shelved by end of December.
Septic Shock – After Exhumed, the development team decided to keep it simple. The goal was to build a single Boom-compatible map for Doom 2 and avoid the development pitfall every Doom mapping newcomer faces – getting carried away with ZDoom features. Development began in January 1st 2019 but the project was put on hold in mid February due to other priorities.
Despite the aforementioned facepalms, we’re proud to celebrate the breaking of this vicious cycle. Today we release Helldorado Team’s first Doom WAD – The Breach. It’s a Boom-compatible 2-map WAD for Doom 2. You can download the WAD by downloading the breach.rar file from the original Doomworld thread:
How to play? If you are newcomer to Doom and its source ports, you can download a Doom source port such as PrBoom+ or GZDoom and drag and drop breach.wad over to the source port executable. The WAD requires Doom 2 so make sure Doom2.wad is in the same folder as the source port executable.
It’s been a little bit over a month but finally v1.4 is out. We already covered what’s new on our previous sneak peek post, but below is a laundry list of some of the major changes:
Added the Imp monster
Added player damage and player death, plus player’s ability to retry after dying
Random spawning of health and armor items
Some changes to the HUD
Check out some of the action below, any feedback is welcome for v1.5!