Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

16. February 2016

 

Flixel was/is a popular game engine written for the Flash programming language.  It unfortunately hasn’t been updated in many years.  However HaxeFlixel is a port of Flixel to imagethe Haxe cross platform programming language which is very much in fact under active development.  In fact, HaxeFlixel 4.0 was just released today!  This is also the biggest released they have ever done, so HaxeFlixel is still very much alive.

 

From the release:

We are proud to announce the release of HaxeFlixel 4.0.0! This is without a doubt the biggest release yet, with nearly 2000 new commits on the core repository alone since the last release.

The highlights of this release are:

  • an improved API structure
  • a refactored rendering system
  • a much improved gamepad API
  • improved HTML5 support
  • improved OpenFL Next compatibility
  • an improved debugger console (now using hscript) with auto-completion
  • over 20 new demos
  • ...and much more

For a more in-depth breakdown of the changes, have a look at our changelog. If you are mostly interested in the breaking changes to upgrade a project using HaxeFlixel 3.3.x, please refer to theupgrade guide.

We would like to thank all contributors who helped with this release in any way, as well as our Patreon supporters. Check out the Financial Summary 06/15 - 02/16 blog post on Patreon if you're wondering what we do with your donations.

Going forward, there are two things we want to foucs on:

  • A stable API - Breaking changes should be the exception and only happen in major releases. This also means following semantic versioning more closely.
  • More frequent releases - 4.0.0 took longer than it should have. We aim to have smaller releases in the future, but release more frequently.

The HaxeFlixel team

 

I know I’ve said this a few times, but I really do intend to do more Haxe content in the near-ish future.

GameDev News ,

16. February 2016

 

The next version of OpenGL has been in the works for a very long time, and has taken many forms.  Previously known as GlNext, the project was instead renamed to Vulkan when AMD released the Mantle API.  Vulkan is much lower level than even OpenGL, leaving much more in the hands of the developer.  On the other hand, the vast majority of game engines have announced support for Vulkan so most developers wont have to get their hands dirty to support Vulkan.  However to fully support Vulkan, it needs to be supported in the drivers.  nVidia has already released a driver, as have AMD, although theirs is more of a beta at this point.

The full press release from the Khronos group is available here and excerpt below:

Vulkan is the result of 18 months in an intense collaboration between leading hardware, game engine and platform vendors, built on significant contributions from multiple Khronos members. Vulkan is designed for portability across multiple platforms with desktop and mobile GPU architectures. Vulkan is available on multiple versions of Microsoft Windows from Windows 7 to Windows 10, and has been adopted as a native rendering and compute API by platforms including Linux, SteamOS, Tizen and Android.

By placing an unprecedented collection of Vulkan-related materials into open source, including the full Vulkan conformance tests, the specification source, and a rich set of software tools, Khronos is enabling strong community participation to drive API consistency and ecosystem evolution. All Khronos open source projects are available here: https://github.com/KhronosGroup.

“Vulkan has a huge potential! We’re only scratching the surface of what can be done with it, and porting The Talos Principle to Vulkan should be seen as a proof of concept,” said Dean Sekulic graphics engine specialist at Croteam. “Vulkan in just one sentence? The endless war between performance and portability is finally over!”

Vulkan minimizes driver overhead for optimal graphics and compute performance and provides the direct GPU control demanded by sophisticated game engines, middleware and applications. Simpler, more predictable drivers provide performance and functional portability across a wide range of implementations. A key advantage of Vulkan over OpenGL is the ability to generate GPU work in parallel using many CPU cores, making Vulkan particularly useful for CPU-bound developers, eliminating a bottleneck in applications from diverse domains including games, computer-aided design and mobile apps.  Vulkan complements the traditional OpenGL and OpenGL ES APIs that provide a higher level of abstraction to access GPU functionality, which may be more convenient for many developers. Khronos will continue to evolve OpenGL and OpenGL ES in parallel with Vulkan to meet market needs.

“The Vulkan working group has been driven by more positive developer energy than any other Khronos project, resulting in the release of specifications, conformance tests, and open source SDK and compiler components in just 18 months,” said Neil Trevett, president of the Khronos Group and vice president at NVIDIA. “Vulkan does not replace traditional APIs, but it provides another choice for developers. In the right hands, Vulkan’s multi-threading and explicit resource management can enable a new class of smooth, high-performance engines and applications.”

Vulkan uses the Khronos SPIR-V™ intermediate representation defined by Khronos with native support for shader and compute kernel features. SPIR-V splits the compiler chain, enabling high-level language front-ends to emit programs in a standardized intermediate form to be ingested by Vulkan. Eliminating the need for a built-in high-level language source compiler significantly reduces GPU driver complexity and will enable a diversity of language front-ends. Additionally, a standardized IR provides a measure of shader IP protection, accelerated shader load times and enables developers to use a common language front-end, improving shader reliability and portability across multiple implementations.

Vulkan’s layered design enables a common, extensible architecture to install tool layers for code validation, debugging and profiling during development without impacting production performance. Khronos’ open source materials enable SDKs and tools to be built for any platform.

GameDev News

15. February 2016

 

The Spring Engine has seen a pair of release candidates in the last week, RC 2 and RC 3 of version 101. 

Spring is a versatile 3D RTS game engine. Using extensively Lua for scripting game-specific code to make nearly every aspect of the engine customizable, from GUI, to unit AI, to pathfinding.

In terms of the recent release candidates, the contained the following.

Release Candidate 2

  • Ground decals offsets and issues
  • Unit reflections glitches
  • SetCameraState graphical glitch
  • Failed shader validation in ATI
  • No lighting when advunitshading is off
  • Activated/deactivated callin spam when non-fighter plane is guarding
  • Hovercrafts failing to land
  • Unitscript callin StopMoving() called twice for planes

Release Candidate 3

  • Various gunships/plane landing/vibrating bugs
  • Custom commands with queue=false partially clear the queue
  • Refractive water doesn't show submerged things with dual screen minimap on Left
  • LuaUI crash on GetConfigData error
  • Flickering with shadows off and /water 4
  • Line build shows differrent positions than ones that are actually issued in commands.

Spring can be downloaded here.

GameDev News

14. February 2016

 

Another preview release of Unreal 4.11 has been released, this one with some significant new animation functionality.

With the fifth Preview release of 4.11 now available to download from the launcher, developers can now check out the new animation updates including; marker based syning for animations and Anim Dynamics Skeletal Control for Animation Blueprints (a brand new self-contained and simple physics simulation node allowing for dynamic motion to be procedurally added to skeletal meshes without having to use a full physics solution),

Of course, this release also brings several bug fixes, including:

Fixed! UE-23373 [CrashReport] Crash occurs opening some animations - TSharedMapView<FName,FString>::Find()
Fixed! UE-26336 Crash importing a skeletal mesh while the same mesh is open in Persona
Fixed! UE-26230 Selecting a component on an instance crashes the editor.
Fixed! UE-26203 Crash Occurs When Using Move Component To and Overlap Event
Fixed! UE-26103 CLONE - Right clicking text fields causes window to shrink
Fixed! UE-26004 Crash when redoing a paste of a copied event node
Fixed! UE-25677 Unable to package code projects for HTML5 emcc link command line is very long
Fixed! UE-25571 Can't Launch On or Package code templates on iOS
Fixed! UE-25593 UnrealHeaderTool does not detect program plugins enabled by default
Fixed! UE-25332 Can't paste a hierarchy of UMG widgets into a Panel widget after deleting previous child
Fixed! UE-26466 PhysX libraries version mismatch
Fixed! UE-26547 Crash in editor while compiling in Event Graph (One off crash)
Fixed! UE-26432 Memory leak in instanced static mesh (e.g. foliage) lightmap building
Fixed! UE-25948 [CrashReport] UE4Editor_Engine!NewObject<UGameInstance>() [uobjectglobals.h:1130]
Fixed! UE-24553 Auto Convex Collision will cause crash when using significantly small meshes
Fixed! UE-25006 Merge bug fix for Vertex Colors in UI Materials into 4.11
Fixed! UE-24967 Integrate D3D12 update from MS
Fixed! UE-24038 Setting ComponentTick as a Hide Category in an Actor Component Blueprint corrupts the BP and causes a crash when opened after an editor restart
Fixed! UE-26134 Add missing GetNoAffinityMask
Fixed! UE-26129 OpenRead of a file in OBB but outside of a PAK starts with wrong seek location
Fixed! UE-26112 Widget Component blurry in when set to masked
Fixed! UE-26106 AddToPlayerScreen not respecting camera aspect ratio lock
Fixed! UE-26033 Blueprints: SPaletteItemVisibilityToggle crashing on a bogus weakobject pointer
Fixed! UE-26021 SOverlay will not call paint for a child slot if that slot's rectangle does not intersect the overlay's clipping rectangle
Fixed! UE-26005 Undoing and redoing the addition of an add component node creates an invisible node in the blueprint graph
Fixed! UE-25989 PhysX crash closing QAGame on Mac
Fixed! UE-25932 Making changes to a character's variables in the constructor is not updating correctly
Fixed! UE-25905 CouchKnights fireball fires twice
Fixed! UE-25850 Launch on Apple TV fails due to version mismatch
Fixed! UE-25688 Some ContentExamples maps have player start outside level boundary
Fixed! UE-24584 CRASH: User Defined Structs can have object references in a Map be set on the structure
Fixed! UE-25599 [CrashReport] Auto-Convex Collision Generation crashing with specific Mesh
Fixed! UE-25506 Vehicle Template's dashboard view camera on ground in VR
Fixed! UE-25550 The diff tool causes crashes
Fixed! UE-25507 Vehicle Advanced Template's dashboard view camera on ground in VR
Fixed! UE-25367 Camera position too low in ShowdownVRDemo Cinematic
Fixed! UE-25333 Mac project packaged in Shipping does not have a UE4 icon
Fixed! UE-25235 Collision volumes don't keep their color in cooked game
Fixed! UE-21503 Importing multiple SpeedTree assets that use the same texture will not assign correctly
Fixed! UE-26298 In 4.11.0-preview-3 FBox2D is not backward compatible
Fixed! UE-25411 Tappy Chicken does not display a numerical score on iOS
Fixed! UE-22118 Renaming component causes Engine/Transient save error
Fixed! UE-25848 Dbuffer Decals only render in one eye in stereoscopic with instanced stereo
Fixed! UE-26277 Infinite loop in SMultiLineEditableText::MoveCursor when using Ctrl+Up/Down
Fixed! UE-23921 Crash when setting a structure's variable to a custom enum named Color
Fixed! UE-25747 StrategyGame and Sun Temple levels render as black on the several Mobile devices

You can download the preview release using the Epic launcher.  Of course, there be dragons with these releases, so it’s for the brave or foolish only.

GameDev News

14. February 2016

 

A new version of Love, the popular Lua based 2D game engine, was released today.  Release 0.10.1 brings:

Additions
Bugfixes
  • Fixed a Lua error in the no-game screen if the window's height is too small.
  • Fixed the default error handler to reset the mouse Cursor.
  • Fixed love.filesystem functions crashing when called if liblove is used directly without calling love.filesystem.init.
  • Fixed audio on Android to pause when the app is inactive, and resume when the app becomes active again.
  • Fixed Source:setRelative to set the relative state of playing Sources to the passed value rather than an old cached one.
  • Fixed the Video decoding thread hanging after Video:seek or when a Video finishes.
  • Fixed Video:isPlaying to always return false after it finishes playing.
  • Fixed RandomGenerator:random crashing if a nil 'self' is used.
  • Fixed loading BMFont files which have characters with 0 width or height (a space character, for example).
  • Fixed love.graphics.newFont causing crashes if FileData is passed in.
  • Fixed love.graphics.clear(colortable) causing crashes on OpenGL ES 2 systems when a Canvas is active.
  • Fixed love.graphics object creation functions (e.g. love.graphics.newImage) to error instead of crash, if called before a window has been created.
  • Fixed a driver bug on some Android devices which caused all objects to show up as black.
  • Fixed a driver bug on Windows with AMD graphics cards where love.graphics.clear would not always work.
  • Fixed Shader:sendColor incorrectly converting alpha values from sRGB to linear RGB when gamma-correct rendering is enabled.
  • Fixed love.graphics.newMesh(vertices) double-converting colors from sRGB to linear RGB when gamma-correct rendering is enabled.
Other changes
  • Updated the Windows executable to prefer the high-powered AMD graphics card on systems which have switchable Intel+AMD GPUs.
  • Updated love.touch.getTouches to return the list of IDs in the relative order that the touches initially happened (i.e. the first ID in the list is the least recently pressed touch that is currently active), instead of being in a random order.
  • Updated the error messages caused by invalid or bad arguments to ImageData and SoundData methods to be more descriptive.

If you are interested in learning more about Love and Lua I featured it in this multi-part video tutorial series for beginning gamedev.

GameDev News ,

Month List

Popular Comments

Creating a game sprite: Modelling in Blender Part 3: More box modelling
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


Home > Art >

16. August 2013

 

Now we are going to continue adding details.  Frankly the only reason for Part 2 and Part 3 being separate is space, the process continues and remains nearly identical.  This is also the part that requires the most artistic ability, having an eye for where to add detail and where not to.  In the end, we will mostly be using the same basic tools, extrudes and edge loops.

 

Adding the Air Intake

Let’s start off by adding the air intake.  We want to start here because we have a single face to work with, which wont be true in a few minutes.  Ideally you want to sketch in the major details before you start adding a bunch of geometry.

Select the polygon at the front and to the over from the cockpit.

This guy:

image

 

Press I to inset the face, then move the mouse until its set in about 15%, left click when done, like so:

image

 

EDIT: Oops, I totally forgot to extrude the intake at this stage… see “Fixing my Oops” later on to see the step.  You could have done it before adding the wing and it would be marginally easier. In the end, the results are exactly the same.  If you are wondering… why didn’t he?  It was mostly because I forgot to do it at the time, and it would change all of the geometry in the screen shots so I’ve just gone with an edit instead.

 

Adding the Wings

 

Now we want to add the front and rear wings ( well, rear stabilizer to be more correct ) to the plane.  This is accomplished with a series of loop cuts.

We want to apply two cuts down the side for the top and bottom of our wings.  Here they are in the side view in X-Ray (Z) mode.

image

 

Or slightly easier to see selected at an angle:

image

 

Now add a vertical edge loop at the front and back of both the forward and rear wings, like so:

image

 

Now before we create our wing, we want to flatten/straighten the polygons that make up our wing.  This part may seem a bit unintuitive, but it is handy.  First you need to select the faces you want to align:

image

 

Now switch from Global to Normal mode.  This makes the X,Y,Z values become relative to the selected face, not global values.

image

 

Now we want to Scale to 0 along the X axis.  ( Press S then Z then 0 ) then left click to apply.  It should before perfectly flat, but a bit off.

image

 

NOW SWITCH BACK TO Global! And rotate about the Z axis ( R then Z ) until its back in line with the rest of the mesh.  Then Translate along the X ( G then X then move mouse ) axis until the faces are budging slightly out from the side, like so:

image

 

 

With the faces still selected, press extrude and pull the wing out to roughly match the reference image:

image

 

Now using a combination of transforms, scales and rotations, move the wing to match the reference image.  I also thinned the wing slightly by bringing the bottom edges of the wing up toward the top edges.  In the end it should look like:

 

image

 

image

 

Now we repeat the same process for the rear wing.  Fortunately it’s a single polygon right now, so we don't need to flatten it, simply extrude it and move to match the reference image.

 

image

 

 

Fixing my oops…

 

At this point I noticed I forgot a step back when I created the intake.  Keep in mind, this would better be done at the stage when the air intake was a single face ( before we did a number of loop cuts ).  We can however fix it now.  The end result is identical.

Grab the face/faces that make up the inside of the air intake we modelled earlier:

image

The only real difference is, now  there are three faces, while if you performed this before the edge loops where added for the wings, there would have been only one face to work with.

Extrude these faces ( E ) and pull it back within the mesh. 

image

 

Move and scale as required to keep it somewhat centered within the rest of the tail geometry.  In the end, the intake should look like:

image

 

Ok… mistake corrected, now lets create the tail section.

 

Creating the tail.

First create a pair of loop cuts along the tail, like so:

image

 

Now selected the following faces:

image

 

And in the side view, extrude along the Z axis, like so:

image

 

Now in edge mode, move the top most edges to look like this:

image

 

Creating the tail wing

Finally, lets create the tail wing.

 

First select this face:

image

 

 

Extrude it inward along the X axis ( E then X ) like so:

image

 

Since we are modelling about the origin, I switch to Vertex mode and select each vertex of the face, and in the Properties(N) window, set the X value to 0.  As you can see, the wing joins up perfectly with the mirrored image:

image

 

At this point our jet is starting to look much more jet like

image

 

Most of the shape is there now, just need to shape the cockpit and engine, then its mostly a matter of cleaning up.


Click here for the Next Part


Art ,

blog comments powered by Disqus

Month List

Popular Comments