Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

10. October 2016

 

Bullet is a popular open source C++ based 3D physics engine available on Github under the zlib permissive license, a very liberal open source license.  They just released version 2.84.   This release brings a few new features:

  • pybullet -- python bindings
  • VR support for the HTC Vive
  • VR support for the Oculus Rift
  • support for Inverse Kinematics

 

The following video demonstrates the new python bindings in action, using inverse kinematics and running on an HTC Vive.

GameDev News

10. October 2016

 

Another patch has been released for the popular Unity game engine.  This patch, 5.3.6p7 is primarily composed of 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.
  • (824107) - Android: Fixed a crash on Android when using the FrameDebugger.
  • (832271) - Audio: Fixed a memory leak when quickly loading and unloading lots of audio assets.
  • (834100, 833996) - Canvas: Fixed a regression introduced in 5.3.6p4 where non-native fullscreen player appeared darker when Canvas was present, in Linear color space.
  • (748499) - Editor: Fixed the recursive directory copy situation.
  • (779052) - Editor: Fixed a crash when registering undo for a null object.
  • (832155) - GUI: Fixed a regression introduced in 5.3.6p4 and 5.3.6p5 where GUI.DrawTexture & GUI.DrawTextureWithTexCoords appeared lighter in Linear color space.
  • (815783) - IL2CPP: Allownow Monitor.TryEnter to correctly obtain a previously taken lock that has been released, which did not work in some cases.
  • (826624) - IL2CPP: Corrected the stack state handling during code conversion for some box opcodes.
  • (834376) - IL2CPP: Removed an unnecessary assert when GC.Collect(1) is called. The call will still have no impact though.
  • (811959, 815928) - iOS: Fixed a crash when killing the app while a WWW Request was in flight.
  • (none) - iOS: Fixed the run loop mode warning on iOS 10 devices.
  • (820863) - iOS: Fixed the appearance of apps freezing when locking/unlocking the device.
  • (820162) - UAP: Fixed the incorrect language being returned when system language was Spanish(Argentina).
  • (832104) - UAP: Fixed an incorrect resolution being reported when the composition scale changed and the game window was minimized.
  • (803937) - VR: Fixed a crash when an invalid Oculus plugin is used. Throws warning instead.
  • (826132) - VR: Removed an audio output warning when Unity Audio is Disabled.
  • (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. Previously events were not removed as expected.

 

As always, the patch is available for download here.

GameDev News

10. October 2016

 

Shiva is a Lua powered 2D/3D game engine with a full editing environment.  Shiva 2.0 has been in development for some time now and Beta 7 was just released.  There are several new features in this release, excerpted from the release notes:

New Plugin Support

ShiVa 2.0 now has a fully functioning plugin module that allows you to build multi platform libraries directly from inside the editor. Our script editor is now also capable of loading and editing native code files, such has .h and .cpp. In essence, you will never have to tab out of ShiVa for any of your coding needs starting with beta 7! The option for using an external IDE such as Visual Studio, Xcode or Android Studio still does exist of course, and we provide projects and solutions for all these IDEs as well as generic makefiles.

The plugin structure has also changed quite a bit. It is now much easier to include 3rd party libraries thanks to the new Framework system. If you want to learn more, please have a look at our plugin documentation. Another very cool feature of the new plugin system is initial HTML5 support for Windows and OSX. Yes, that is correct: You can now use native code inside your web applications! The feature is still WIP and has known rough edges, but we would very much like all of you to try it out and give us lots of feedback.

 

New Material Editor

This release also includes the first chunk of the material editor. Materials from ShiVa 1.9.2 can be loaded by the module, edited and assigned to objects, just like you used to in the old editor. The terminologies for certain features have changed a bit, but we are confident that you will feel right at home after a few minutes. Please understand that we are still working on making PBR materials as easy to edit as Standard materials, which means it does not ship in beta 7. However we will include it in one of the next betas.

 

Engine Updates

Beta 7 comes with updates and bugfixes for our engines to make them compatible with the latest versions of iOS, Xcode, Android Studio and Visual Studio. For instance, our WinRT port now builds in VS2015 update 2+ by default, which means the UWP project we were talking about in beta 6 is now finally available to everyone at a click of the export button - no special project modifications necessary. iOS 10 support and Android 6/7 have been added as well.

 

Shiva 2.0 beta is only available to existing Shiva 1.x licenses.

GameDev News

8. October 2016

 

Welcome to the next chapter in the on-going Closer Look At game engine series.  The Closer Look series is aimed at informing you quickly if a given game engine is a good fit for you or not.  It’s a combination of overview, review and getting started tutorial that should give you a quick idea of a game engines strengths and weaknesses.  Today we are looking at Clickteam Fusion, a codeless game engine that has been around in one form or another for over 20 years.  I have to admit up front, this guide isn’t as in-depth as previous entries as I am rushing a bit to get it out to you.  This is because as ofctf25 publish date (Oct 6/2016) Clickteam Fusion 2.5 is heavily discounted in the Humble Bundle.

 

As always, there is an HD video version of this guide available here.

 

About Quickteam Fusion

 

Quickteam Fusion is a 2D cross platform game engine that takes a codeless approach in a similar vein as Construct2 or Stencyl.  First released as Klik and Play in 1995, it was later rebranded The Games Factory, then Multimedia Fusion then finally Clickteam Fusion.  Clickteam tools run on Windows, and via various add-ons and modules is capable of targeting Windows, iOS, Android, Flash, HTML5 and Mac OS.  Note that several of these modules have an additional price tag from the base package.  In terms of pricing, here is the current ( 10/6/2016 ) from Steam.

image

 

Please note however that those prices are in Canadian dollars.  Also Clickteam is frequently discounted up to 75% or more, so do not ever pay the full price.  The free version is mostly full functioning minus extensibility and the ability to generate a game that runs outside of Clickteam itself, along with a few in game resource limitations.  The Developer Upgrade removes the requirement to display that the game was authored in Clickstream ( via Splash screen, credits, etc ) as well as adding some more controls inside the engine, most of which aren’t game related.

 

There are some fairly successful games that have been authored using Clickteam Fusion, the most famous of which is the Five Nights at Freddy’s series.  Other games include The Escapists, Freedom Planet and a few dozen more games available on Steam, Google Play or the iOS App Store.  So this is a production ready game engine, although only suited for 2D games.

 

Inside Clickstream Fusion

 

The strength of Clickteam is certainly the tooling it comes with.  All work in Clickstream Studio is done in the editor:

image

 

One of the biggest faults against Clickstream has got to be it’s aging UI.  While not particularly attractive, it is for the most part effective.  On the left hand side you’ve got the Workspace Toolbar, which can be thought of as your scene graph.  “Scenes” in Clickstream are somewhat confusingly referred to as Frames.  You game is made up on one or more frames, and when you select a frame you see the level editor shown on the right.  This is used for placing and interacting the various items that compose your scene frame.  On the bottom left you see the Properties panel, this changes based on what object is currently selected.  Also shown here is the editor for Active objects.  Actives are very important to CTF as we will see shortly.  There are also windows for controlling layers, for selecting built in assets, etc.  Windows can be undocked, pinned and move about the interface easily.

 

CT1

 

The primary editing service can be used to easily create levels or maps via simple drag and drop.

CT2

 

You can also insert new items into the frame:

image

 

Then choose from the dozens of built-in object types available:

ctf3

 

Perhaps 90% of the time, what you are going to use is an Active object, which is essentially Clickteam’s version of Entity or Sprite.

image

 

Double click the newly created Active and you get the active editor:

image

 

This tool combines several different tools into one.  There is a full paint package in here with fairly advanced tooling.  There are tools for doing common tasks like setting the Active’s pivot point and direction of facing, and there are tools here for defining and previewing animations.

 

In addition to the built in objects, there are several other extensions that can be added using the Extensions manager:

image

 

Additionally Clickteam offer a store for additional extensions that are both freely available and for sale:

image

 

Confusingly there is no direct integration between the store and Clickteam.  Therefore you have to download and manually install extensions and assets purchased this way.  The Store’s contents are mostly free and also showcase games created using Clickteam, tutorials, game code and more.

 

“Coding” in Clickteam

At this point you should have a pretty good idea how you compose the assets of your game to create levels… how do you actually add some logic to it?  That is done using these four tools:

image

Left to right they are the Story Board editor, Frame Editor, Event Editor and Event List Editor.

 

Story Board Editor

image

This one is pretty simple.  It’s just a top level overview of the Frames that make up your game.  Remember your game is ultimately composed of multiple frames, like so:

image

 

Frame Editor

image

The Frame Editor is simple the level editor we’ve already taken a look at.

 

Event Editor

image

 

This is where the “coding” happens.  Essentially its a top down flow chart/graph of events that happen in your game and what those events happen to.  Here for example is the “code” to select a Flying Saucer Active in the game “Saucer Squad”:

image

On the left hand side are the events (38 and 39, 36 is a group heading and 37 is simply a comment).  That first event triggers when the user left clicks on the Saucer object.  The right handle side of the screen shows the action that occurs when that happens.

image

 

So for the event on Line 38, then the user clicks the left mouse button on Active type Saucer, it plays the sound sample Button_1, among other actions.  It’s essentially these events and actions you use to create your game.  Let’s create a very simple example… lets create an action that simple plays a sound effect when the frame (scene) is created.

First select Insert->Condition

image

 

This will bring up the conditions dialog:

image

 

In this case I clicked the Storyboard Controls (the chessboard/horse icon), then chose Start of Frame.  The creates a new action that will fire when the frame is started.  Now to the right hand side, select the space below the Speaker icon, like so:

image

 

Right click and all of the available options will be displayed:

image

 

Next the appropriate editor will be shown

image

 

Event List Editor

This editor performs the same functionality as the Event Editor, but instead of in a somewhat unwieldy grid view, it represents the events in a much more readable list form:

image

 

One last editor of note is the expression editor, for creating much more advanced logical conditions:

image

 

Individual entities within the frame can also have their own events, set in the properties panel of the selected item:

image

Clicking edit will bring you back to the exact same interface we just discussed.  Also in the properties panel you can define variables:

image

 

These values can then be interacted with in other event controllers.

 

Community and Documentation

Documentation in Clickteam is decent.  Built in there is an integrated CHM based help system, as well as 4 multipart tutorial games to get started.  There are also a wealth of tutorials available to download (mostly free) on the Clickteam store.  There are also a fair number of Clickteam tutorials on YouTube, although many of them are quite awful.  There is an active forum as well as a wiki.  All told, for every problem I faced, I found a solution quickly enough online.

 

Summary

So what ultimately do I think of Clickteam Fusion?  For the most part it is what it’s advertised to be, a code free 2D game creation kit able to target multiple platform.  There is of course a learning curve, but it’s a relatively short one.  As a code focused programmer, I don’t find the coding process extremely productive, but I can see how it would be so for a more visual oriented person and especially for a non-coder.  Clickteam tools are certainly getting a bit long in the tooth, a lot of the legacy cruft is showing it’s age and the UI could certainly use an update.  My biggest hesitation is wondering how well this development system would scale with system complexity.  If you’re game isn’t easily broken into scenes or is sprawling in complexity, I can see Clickteam becoming incredibly cumbersome.  That said, I think this is a successful all in one development tool that can take you a very far way in a very short period of time even with minimal to no development skill.

 

The Video

Programming, Design , ,

6. October 2016

 

Unity just released a new patch, 5.4.1p4.  Composed of the usual slate of fixes and improvements, here they are from the release notes:

 

Improvements
  • Asset Database: Added a new API for getting asset information without loading asset into memory.
  • Graphics: Updated tooltip test for "Box Projection", "Box Offset" & "Box Size".
  • Lighting: Renamed popup menu item from "Default scene parameter" to "Scene Default Parameters".
  • Substance: Improved substance assets processing when switching platforms, upgrading a project and building.
  • tvOS: Added "Require Extended Game Controller" option to player settings.
Fixes
  • (819905) - Animation: The Animation preview will correctly display a preview animation when a model is dragged to the preview area.
  • (832271) - Audio: Fixed memory leak when quickly loading and unloading lots of audio assets.
  • (834100, 833996) - Canvas: Fixed a regression introduced in 5.4.0p4 where non-native fullscreen player appeared darker when Canvas was present, in Linear color space.
  • (814282) - Graphics: Fixed the issue of projectors rendering twice if transparent objects are in the scene.
  • (827364) - Graphics: Fixed a rare deadlock that can happen when graphics jobs are enabled.
  • (815783) - IL2CPP: Allow now Monitor.TryEnter to correctly obtain a previously taken lock that has been released, which did not work in some cases.
  • (826624) - IL2CPP: Correct the stack state handling during code conversion for some box opcodes.
  • (834376) - IL2CPP: Removed an unnecessary assert when GC.Collect(1) is called. The call will still have no impact though.
  • (none) - IOS: Fixed an iOS 10 warning for improper use of runloop.
  • (830528) - IOS: Fixed the Remote notification detection code.
  • (830273) - Metal: Fixed grab pass combined with image effects appears darker.
  • (818563) - Metal: Fixed an issue whereby view was not scaling properly when using Screen.SetResolution in fullscreen mode.
  • (822217) - Substance: Fixed an asset import crash.
  • (820301) - Substance: Fixed a crash when switching build platform.
  • (820162) - UAP: Fixed an incorrect language being returned when system language was Spanish(Argentina).
  • (832104) - UAP: Fixed the issue of incorrect resolution being reported when the composition scale changed and the game window was minimized.
  • (818294) - UI: Fixed the Canvas related crash when some elements are being deleted.

 

As always the patch can be downloaded here.

GameDev News

Month List

Popular Comments

A quick look at Tiled. An open source 2D level editor
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


15. April 2014

 

One very common requirement for even the most simple game is a level editor.  The level of sophistication required varies massively from game to game but a lot of the functionality is pretty common.  At the very base level, you need a tool to layout the graphics that make up your world.  Slightly more advanced, you need to define layers, properties and collision volumes.  Often people roll their own solution but you certainly don’t have to.  One very popular 2D level editor is Tiled Map Editor which exports in TMX format, perhaps the most supported 2D game format ( Cocos2D, LOVE, LibGDX and many others all support TMX out of the box ).  As I am going to be writing a tutorial about using tiled maps in LibGDX, I figured I would give a quick introduction to Tiled first.  Keep in mind, we are only going to scratch the very surface of what Tiled is capable of.

 

First off, download and install Tiled.  It has binaries available for Windows and Mac and a source (and daily builds) release available for Linux.  You can download Tiled here.  The documentation is available here.

 

The Tiled UI is pretty straight forward, although it looks quite different across platforms.  Today I will be using the MacOS version.

 

T1

 

A tiled map is fundamentally simple.  You are basically making a grid of tiles.  A tile is a fixed size image within a larger image.  The larger image is called a tile sheet.  It’s somewhat like working with legos to make a level.  Here is an example tilesheet ( taken from here ):

 

Tilesheet

 

It’s a 512x512 image composed of a number of tiles that we are going to paint our level with.

 

Now that we have our tiles, let’s create our map.  Tiled has the ability to create Orthogonal ( straight on or “top down” perspective maps ) or IsoMetric ( angled perspective ).  In this example we are creating a Orthogonal map.  Next you need to decide how many tiles your map consists of in each direction.  Yes, tiled maps are always rectangular in shape.  Finally you need to decide your tile dimensions in pixels.  Looking at the tile map above it isn’t clear how large each tile is, but that is because some of the larger constructs are actually composed of a number of tiles.  You will see how that works in a few seconds, for now simply select 32x32 pixels for tile size and 32x32 tiles for map size.  In real pixel terms, this makes our map 1024 pixels by 1024 pixels.

 

T2

 

Now we need to load our tile set into Tiled. Select Map->New Tileset

 

T3

 

Now in the resulting dialog name it and otherwise we keep the defaults.  Our tile set is made up of 32x32 tiles, so those values work.  The background colour is used if you use a particular colour colour to mark transparency.  In this case we are using the alpha channel to determine transparency, so we don’t need to set a colour value.

 

T4

 

Now if you look at the bottom corner of Tiled you will see a grid of tiles available.  You simply select a tile, then paint in the right window with it.  

 

T5

 

Let’s start by quickly paint our entire map with a grass tile.  Click a grass tile in the tile sets window, like so:

 

T6

 

Now in the left hand window, select the Fill Tool ( or hit F ), then click in the window, and it will be filed with the tile selected filling our level with a nice grass base.

 

T7

 

Now lets say we want to quickly fill in some roads.  The road tile is actually composed of four separate tiles.  This is easily handled in Tiled, simply click the top left tile in the tile set window, then holding SHIFT, click the bottom left, like so:

 

T8

 

Now you can draw with all four tiles at once by simply clicking on the map.  First select the Stamp tool, then draw out the tiles as you desire:

 

T9

 

So, what about the tiles with transparent sections like these ones?

 

T10

 

Well these are designed to be layered over top of other tiles.  Which leads us nicely to layers.  If you have ever used Photoshop or GIMP, you probably already have a pretty good understanding of layering.  Basically layers are drawn over top of lower layers.  So for example, what you draw in Layer 2 is drawn over top of what you draw in Layer 1.  

 

Right now, we only have a single layer, let’s add another one.  In the top menu, select Layer->Add Tile Layer.

 

T12

 

Now in the Layers panel you should see a second layer available.  Clicking the checkbox to the side of the layer shows/hides it’s contents.  Clicking the layer itself makes it active.  Click Tile Layer 2.

 

T11

 

You can now paint “over” the grass and road layer, like so:

T13

 

Congratulations, you’ve just created your first map.  Now we simply save it.  

 

T14

 

 

Next we will take a look at using this map in code in LibGDX.

Programming ,

blog comments powered by Disqus

Month List

Popular Comments