Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

28. September 2016

 

Unity have released a new patch, 5.4.1p3.  This one is entirely composed of bug fixes, including:

Improvements
  • IL2CPP: Added an option to link.xml files to ignore missing assemblies.
Fixes
  • (830443) - AI: Fix for regression where a pushed passive NavMeshAgent would sometimes move to its origin after navmesh carving.
  • (755398) - AssetBundles: Fixed high CPU usage while downloading asset bundles.
  • (779052) - Editor: Fixed a crash when registering undo for null object.
  • (821728) - Editor: Fixed an extra erroneous characters in path passed to PostProcessBuild callbacks.
  • (818346) - Editor: Fixed path error when building into the same folder again.
  • (764857) - Editor: JavascriptPackageManager now supports UNC path on Windows.
  • (732717) - Editor: Fixed an issue with [FormerlySerializedAs] not working with scripts assigned to prefabs.
  • (826406) - Graphics: Fix for incorrect calculation of projection matrix on some platforms.
  • (none) - Graphics: Fixed an Assert in AssignProjectorQueuesJob about calling GetRenderJobThreadCount() when not on the main thread. Triggers when running gfx jobs in scenes with projectors.
  • (none) - Graphics: Fixed large delta values in the the motion vector matrix when a camera is enabled after being disabled.
  • (832155) - GUI: Fixed the regressions introduced in 5.4.1f1 and 5.4.1p1 where GUI.DrawTexture & GUI.DrawTextureWithTexCoords appeared lighter in Linear color space.
  • (827851) - Input: Mouse position is now updated but not clamped when outside of game window.
  • (811959, 815928) - iOS: Fixed a crash when killing the app while a WWW Request was in flight.
  • (820863) - iOS: Fixed the appearance of apps freezing when locking/unlocking the device.
  • (773660) - SpritePacker: Fixed an issue where TightRotateEnabledSpritePackerPolicy flipped sprites in playmode.
  • (none) - Tizen: Resolved an error that didn't call OnApplicationQuit() when TaskManager killed the app.
  • (814084) - tvOS: Fixed the issues when menu button was clicked while playing videos.
  • (747529) - tvOS: Fixed the UI to correctly activate tvOS keyboard.
  • (825406) - tvOS: Fixed the issue of UnityEngine.Apple.TV.Remote API not working in editor.
  • (642194) - VCS: Marked some VCS settings as private.
  • (826132) - VR: Removed audio output warning when Unity Audio is Disabled.
  • (818044) - WebGL: Fixed compressed build files (.*gz) creation if they already exist.
  • (814388) - WebRequest: More correctly follow the HTTP Specification for sending POST data during a Redirect.
  • (827748) - Windows Store: UnityEvent.Remove listener will work correctly when .Net Native is enabled.
  • (833091) - Windows: Fixed Unity crashing when initializing UnityEngine.Windows.Speech.KeywordRecognizer with an array that contains null string as one of its items
  • (791722) - WWW/UnityWebRequest: Fixed the issue of handling multiple headers with the same name in server responses.
Known Issue
  • 2D: Error "Thread::EqualsCurrentThreadIDForAssert(Thread::mainThreadId)" is spammed to console if 'Sprite Renderer' is enabled. This issue will be fixed in the next release.

As always the patch is available for download here.

GameDev News

28. September 2016

 

The Banshee Engine is an open source LGPL licensed 2D/3D game engine written in C++.  It just saw the release of version 0.4.  I took a look at a previous version of the Banshee engine available here or embedded below if you want more information of this under development game engine.  The 0.4 release brings a number of new features, summarized nicely on /r/gamedev:

Hi guys, Banshee is an open source game engine that I’m building. Some of its major features are C# scripting, fully featured editor, modern C++14 core and focus on performance, modern technologies and quality design.

I have just released a new update for it, which adds some very important new systems:

Audio system supporting multi-channel audio, 3D spatialization, streaming, .OGG/.MP3/.FLAC/.WAV format support, with both OpenAL and FMOD backends

Animation system with support for GPU accelerated skinned skeletal animation, blend (morph) shape animation, animation events, additive animations, 1D/2D blending and root bone animation

Animation editor with support for creating custom animation curves, animation events, animating scene objects and animating arbitrary script variables

Read the full release notes.

The engine is still in pre-alpha state since there are a few important features missing, but it is nearing its first stable release, hopefully in mid-2017. In the coming months I will be adding Vulkan support, physically based renderer, followed by Mac/Linux ports.

I’m also happy to announce that the project has attracted some community members that have started working on new features and other improvements. As the community grows you can expect even more content in future updates.

 

To learn more about this interesting engine, check out the video below.

GameDev News

27. September 2016

 

Hot on the heels of the GameMaker Bundle, ClickTeam Fusion is now available as a Humble Game Bundle.  Humble game bundles are a charity program with a  variety of different rewards based on different levels of donations, with the donor given the option of deciding how the donation itself is allocated between the Humble team, the developers who contributed rewards and the supported charity.  This particular humble bundle is in support of the Josh Farler Foundation which works to raise fund for transportation, food and housing for cancer patients undergoing treatment.

The actual bundle is built around Clickteam Fusion, a game engine which requires no coding.  Perhaps the most famous game made with the Clickteam Engine is the Five Nights at Freddy’s horror series, the 3rd version of which is actually included in this bundle.  Other items in the bundle include several games which include source code, the HTML5 and iOS exporters and more.  Additionally the Standard addition of Clickteam that comes with this bundle includes a credit for the developer version, described below:

Note: When you redeem your Clickteam Fusion 2.5 Standard Steam key, you'll also receive a Steam coupon for $50 off of an upgrade to Clickteam Fusion 2.5 Developer, where you'll get access to exclusive developer features! This discount expires November 1st, 2016 at 7:00pm Pacific.

 

The full contents of this bundle can be seen in the graphic below:

image

 

Click here for more details of the bundle.

GameDev News

27. September 2016

 

Today saw a new released of the Lua powered Defold game engine.  The primary addition of this release was Spine support was added directly to the GUI.  Spine is a 2D IK based animation system I covered in detail in this post.  Of course I also have alogo-text-below complete Defold game engine tutorial series if you are interested in learning more.  I also did this hands-on video with the Defold game engine.

 

Back to release 1.2.89 details.  Not a huge release by any means, here are the complete release notes:

 

We have now added support for Spine nodes in GUI scenes. Similar to the component version, this creates a GUI node for each bone in the spine instance, which come in handy when you want to parent other nodes to your spine bones. A couple of new script functions has been added to the gui.* namespace, such asgui.get_spine_bone, gui.play_spine and gui.cancel_spine. The argument list for the two latter functions are the same as for their spine.* counterpart, except they take a GUI node as first argument; namely a spine GUI node.

The profiler (toggled via toggle_profiler) has been fixed and should now display the same information on all platforms.

We have also worked on memory leaks and performance issues which will result in better performance for all games, especially those with massive amounts of game objects.

Engine

  • DEF-1528 - Added: Spine support in GUI
  • DEF-2111 - Fixed: Spine events were incorrectly sent to the completion callback
  • DEF-2034 - Fixed: Profiler missing some information on different platforms
  • DEF-2084 - Fixed: Missing GUI node size enums in script
  • DEF-1983 - Fixed: Memory leak when creating and/or deleting game objects

GameDev News

26. September 2016

 

From the publisher (but not developer) that create the popular JRPG development kit RPG Maker, RPG Creator has just been released.  RPG Creator is a iOS only tool for creating and sharing JRPG style games.  It does not have interop with the desktopRPGCreator product, being a completely distinct product at least for now.  Here are details from the announcement blog:

RPG Creator is a completely separate product from the RPG Maker series for PC, with a different development team (and company).

We believe that in the future, RPG Making should be a fluid experience. In the experience we dream of, you would be able to start a project on your PC, draw maps and event on your tablet, record sound effects or voice acting lines on your phone and then bring it all together on your PC again to finish up and send out to every platform. This is the first step towards that goal.

If RPG Creator proves to be popular, we will invest more heavily into it’s development, such as looking at ways of integrating it with RPG Maker as well as creating an Android version.

To help spread the word about RPG Creator, we’ve got a few events going on.

RPG Creator Rebate
RPG Creator is Free to Play (ad supported) but you can also pick up the “Premium” version which has some extra features. As a special thank you to the RPG Maker community, we’ve set up a Rebate. If you purchase the Premium version of RPG Creator, simply forward a copy (or screenshot) of your receipt to games@degica.com and we’ll set you up with a $5 credit for the RPG Maker Web store.

 

I created a quick hands-on video of the new free to download iPad app in action available here or embedded below.

GameDev News

Month List

Popular Comments

LibGDX Video Tutorial: Scene2D Grouping and Hit tests
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


20. January 2015

 

In this third part of multiple part video tutorial looking at using Scene2D we look at creating Groups for organizing Actors, as well as hit testing, making it possible to select actors available in your scene.  All of the code is included below.  For an HD version of the video click here.

 

 

Groups

package com.gamefromscratch.group;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Group;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.utils.viewport.ScreenViewport;

public class GroupDemo extends ApplicationAdapter implements InputProcessor {
   Stage stage;

   @Override
   public void create () {
      stage = new Stage(new ScreenViewport());
      Group group =  new Group();

      Image tableImg = new Image(new Texture(Gdx.files.internal("table.png")));
      Image aceImg = new Image(new Texture(Gdx.files.internal("ace.png")));
      Image kingImg = new Image(new Texture(Gdx.files.internal("king.png")));

      tableImg.setName("table");
      aceImg.setName("ace");
      kingImg.setName("king");

      group.addActor(tableImg);
      group.addActor(kingImg);
      group.addActor(aceImg);

      stage.addActor(group);

      kingImg.setPosition(300,150);
      aceImg.setPosition(400,150);

      Gdx.input.setInputProcessor(this);
   }

   @Override
   public void render () {
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      stage.act(Gdx.graphics.getDeltaTime());
      stage.draw();
   }

   @Override
   public boolean keyDown(int keycode) {
      Group group = (Group)stage.getActors().first();
      Image ace = (Image)group.findActor("ace");

      if(keycode == Input.Keys.RIGHT)
         if(Gdx.input.isKeyPressed(Input.Keys.CONTROL_LEFT))
            ace.setRotation(ace.getRotation() + 1f);
         else
            group.setRotation(group.getRotation() + 1f);

      if(keycode == Input.Keys.LEFT)
         if(Gdx.input.isKeyPressed(Input.Keys.CONTROL_LEFT))
            ace.setRotation(ace.getRotation() -1f);
         else
            group.setRotation(group.getRotation() - 1f);

      if(keycode == Input.Keys.UP)
         group.setColor(group.getColor().r,group.getColor().g,
               group.getColor().b,group.getColor().a + 0.1f );

      if(keycode == Input.Keys.DOWN)
         group.setColor(group.getColor().r,group.getColor().g,
               group.getColor().b,group.getColor().a - 0.1f );

      if(keycode == Input.Keys.NUM_1)
         ace.setZIndex(ace.getZIndex() -1);
      if(keycode == Input.Keys.NUM_2)
         ace.setZIndex(ace.getZIndex() +1);

      return true;
   }

   @Override
   public boolean keyUp(int keycode) {
      return false;
   }

   @Override
   public boolean keyTyped(char character) {
      return false;
   }

   @Override
   public boolean touchDown(int screenX, int screenY, int pointer, int button) {
      Vector2 coord = stage.screenToStageCoordinates(new Vector2((float)screenX,(float)screenY));
      Actor hitActor = stage.hit(coord.x,coord.y,false);

      if(hitActor != null)
         Gdx.app.log("HIT",hitActor.getName());

      return true;
   }

   @Override
   public boolean touchUp(int screenX, int screenY, int pointer, int button) {
      return false;
   }

   @Override
   public boolean touchDragged(int screenX, int screenY, int pointer) {
      return false;
   }

   @Override
   public boolean mouseMoved(int screenX, int screenY) {
      return false;
   }

   @Override
   public boolean scrolled(int amount) {
      return false;
   }
}

Programming , , ,

blog comments powered by Disqus

Month List

Popular Comments