Is there something you want to see happen in the WA Games Space?

A photograph oh a room filled with game developers from Western Australia, taken following the Perth Games Festival

Let’s Make Games Wants YOU!

Let’s Make Games is currently looking for new members to fill key posts within the organisation. From the Operational Team (where you can make things happen like meetups, news articles and such), to the Committee (shaping the direction of the organisation), and most notably the Chairperson (keeping LMG organised & on track).

Whether you are passionate about making games of all types (video games, board games, pen’n’paper games and more!), or are just the kind of person who wants to use your skills to support others in the game-making space, WE WANT YOU!

Help guide the vision of the non-profit body that’s dedicated to helping local Game Devs (in all their guises) get the most out of their industry. Let’s Make Games is a volunteer, industry-targeted group built up of enthusiastic figures from within the Perth games ‘scene’ and we would love to see more people from across WA join us in sharing what our state has to offer. We are inclusive and non-discriminatory; if you would like to get involved but require additional support to do so or have any related queries, we are more than happy to assist.

Join us! Ask us how! Simply get in contact with Jess from the Operational Team via jess@letsmakegames.org to find out more, or to raise your hand to get involved in the local community through LMG.

A large group photograph of the volunteers and organisers of the 2017 Perth Games Festival! URL links to larger version of image on Flickr, which can be downloaded free.

You too can be super awesome like these volunteers from the 2017 Perth Games Festival! What kind of events or initiatives do YOU want to see happen?

Lifting deprecated OpenGL code to modern equivalent

OpenGL 3.0 to OpenGL 3.3+

OpenGL has been around a long time. This has necessitated some pretty aggressive, or we could call it, slightly odd, deprecation over time. This was necessary to keep API relevant.

Until version 3.0, all versions of OpenGL were fully backwards compatible with earlier ones.

OpenGL 3.1 is just awkward and short-lived, it is probably not worth explaining; we'll ignore it.

In 3.2, OpenGL was effectively split into two profiles, core and compatibility. An implementation was only required to define core, so compatibility is not guaranteed to be available.

On some platforms, like Windows, developers will find that they have access to the compatibility profile and they can gracefully or incrementally move functionality towards the new standard. On other platforms, like Apple OSX there is a hard cut. They chose to support OpenGL 2.1, and the pretty much ignored the in-between, and then, made the jump to OpenGL 3.3. Apple also chose to only implement OpenGL 3.3 core. This means there is no graceful support of older functionality.

Developers finding themselves having to lift OpenGL code in their title or package may benefit from the reference table below. It roughly details the mapping between OpenGL 2.1 era functionality and how to replace it in OpenGL 3.3 core and higher.

Hopefully useful for others as well as us!

Deprecated functionalityReplaceable by (in OpenGL 3.3)
Fixed function pipelineShaders
glRotate*/glTranslate*/glScale*
/glMatrixMode/glLoadMatrix/glMultMatrix etc.
Use you own matrix math or known open source libraries. Did you really use it anyway?
glTexEnvfTexture blending should now be done in fragment shaders.
gluBuild2DMipmaps Use the GL_GENERATE_MIPMAP texture parameter or the glGenerateMipmap function. Set the max mipmap level and the base mipmap level using

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4);
glEnable(GL_POINT_SMOOTH)Emulate this in a shader if you miss it
glEnable(GL_TEXTURE_2D)No longer. Ue glActiveTexture(GL_TEXTUREn) and bind the texture to the n-th texture unit.
glVertex*/glColor*/glNormal*/glTexCoord*Use vertex buffer objects (VBO) and vertex attribute objects (VAO) to control vertices. Draw using the glDraw{Arrays, Elements, RangeElements, InterleavedElements} family of functions.
glPolygonMode(GL_FRONT, GL_LINE) or glPolygonMode(GL_BACK, GL_LINE) In OpenGL 3.0 or above, core profile, only the combined front and back face enumerant is valid, offering a single mode enumerant GL_FRONT or GL_BACK results in an INVALID_OPERATION. Therefore the only valid call is glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

Job Opportunity: Platform Engineer

A military commander looks out the window of a space vessel, watching as a smaller craft explodesStudio logo: Black Lab Games

Black Lab Games, WA’s premier strategy game studio, are on the look out for a Platform Engineer. If you want to join a great team of developers, check out the details from the studio below. Application close Thursday, May 31st!

“We are a Perth-based game developer that specialises in strategy games. In 2017, we partnered with UK publisher Slitherine Games and Universal Studios to release “Battlestar Galactica Deadlock” on PC, Xbox One and PlayStation 4.

We are looking for an enthusiastic Unity programmer to join our team. The initial contract is for 6 months, with the potential for extension. You will be responsible for creating and maintaining all aspects the non-PC versions of existing and unannounced games.

This is an on-site role in our studio in the Perth northern suburbs.”

Responsibilities:

  • Ensure the games run at their absolute best on current generation console platforms
  • Manage the task of porting games to new platforms
  • Develop tools and technology to assist design and QA team implement gameplay features
  • Enhance and add features to existing game systems
  • Collaborate with other engineers and developers, and abide by teams standards and best practices

Assets:

  • Experience developing games or software with the Unity3D game engine
  • Experience working with non-PC devices, such as embedded systems or mobile devices
  • Double bonus points if you’ve worked with a current generation console!
  • Either a BS in Computer Science, or equivalent experience.

 

If this sounds like your kind of gig, be sure to send your resume to the Black Labs via jobs [AT] blacklabgames.com.au before May 31, 2018. Good luck soldier!

Fizzle: The Unity Modular Synthesizer

Available on GitHub: https://github.com/simonwittber/fizzle

A unique ID for your Serialized classes in Unity.



Note, the GetHashCode() method will probably return a unique ID. There is a very remote chance you will get a clashing ID.


Update:After further experiments, I believe this does not work well enough to be generally useful. Unity, we need a new serialization system!

Free Game Dev Coworking Space

A television mounted to the wall, with the text "loading.space" with an image of a progress bar filling up beneath it. URL links to game dev coworking space facebook page

Introducing Loading Space!

Let’s Make Games are returning in 2018 with an exciting co-working hub known as LOADING SPACE! This weekly event means everyone can get together, work on cool stuff, and just generally enjoy being a developer in Perth.

What: Loading Space Coworking Thursday
Who: Any and all game-makers (devs, hobbyists, students & more!)
When: Thurs, 10am – 9:30pm (All ages welcome, but 18+ from 6:30pm)
Where: 48 Lake St, Northbridge
Cost: Free!!

For updates, join the Loading Space Facebook page or follow us on Twitter.

What do I need to bring?

If you want to join us just bring what you need to work on, be it tech or analog (pen and paper is still awesome).  Let us know if you need a loaner laptop or PC as we do have some limited capacity there.

Loading Space is operated by Let’s Make Games and powered by Stirfire Studios.  We are able to run this initiative thanks to a group of dedicated and reasonably cool volunteers. We will be looking to grow this space over time, so if you’re a developer or studio interested in seeking a long-term work space solution, email the group at  loading.space@letsmakegames.org

Synthesizing Sound Effects in Unity3D.

I have built a Synthesizer for creating sound effects in Unity. It fills a similar niche to SFXR/BFXR, but aims to have more quality and versatility. It's fully modular, with all parameters able to be modulated via the Unity AnimationCurve.

I have called it 'Fizzle'.

Source coming soon.

Supercharged Gizmos for your SceneView

This code shows how I use the [DrawGizmo] attribute to create special gizmos for my components, which only appear when you're actually near the component.


A Unity wizard to generate a palette from a source image.

Perth band release their second music video game, Bones Burial Service

A top-down game screenshot, a man holds a shovel and stands over a hole in the dirt with a rolled up carpet in it.

Perth punk band Furniture are at in again, having released a new ‘music video game’ to accompany their EP Sorry bout the Mess” Following on from their first light-hearted title Derek’s Gonna Make it Rain, Bones Burial Service takes a sinister turn and tasks you with some criminal level discarding.

“Furniture’s Bone Disposal Service, is darker in tone, pitting the player and a ute tray full of bodies against security guards, the Australian bush and a ticking clock, while the vocals howl over the song’s frenetic refrain: I’m breaking / my bodies got a lot of bones.”

Bones Burial Service is out now for free on Android. You can also check out Furniture’s official EP announcement here or head on over to BandCamp to catch their tunes.